在對應project-domain的namespace中,創建工作流使用之secret。
kubectl create secret generic user-info \
--from-literal=user_secret=mysecret \
--from-literal=username=my_username \
--from-literal=password=my_password \
-n flytesnacks-development
在task裝飾子中定義掛載的secret並使用該值。
import os
from typing import Tuple
import flytekit as fl
SECRET_GROUP = "user-info"
SECRET_NAME = "user_secret"
secret = fl.Secret(
group=SECRET_GROUP,
key=SECRET_NAME,
mount_requirement=fl.Secret.MountType.ENV_VAR,
)
@fl.task(secret_requests=[secret])
def secret_task() -> str:
context = fl.current_context()
secret_val = context.secrets.get(SECRET_GROUP, SECRET_NAME)
print(secret_val)
return secret_val