我正在尝试将秘密变量传递给我KubernetesPodOperator
的气流
这是我所做的:
- 创建一个
secret.yaml
如下所示的文件
apiVersion: v1
kind: Secret
metadata:
name: my-secret
type: Opaque
data:
SECRET_1: blabla
SECRET_2: blibli
- 应用秘密:
kubectl apply -f ./secret.yaml
- 从我的 DAG 文件中检索秘密:
from airflow.contrib.kubernetes.secret import Secret
from airflow.contrib.operators.kubernetes_pod_operator import KubernetesPodOperator
from airflow.models import DAG
SECRET_1 = Secret(
deploy_type="env", deploy_target="SECRET_1", secret="ai-controller-object-storage", key="SECRET_1"
)
SECRET_2 = Secret(
deploy_type="env", deploy_target="SECRET_2", secret="ai-controller-object-storage", key="SECRET_2"
)
with DAG(...) as dag:
KubernetesPodOperator(
task_id=..,
trigger_rule="all_success",
namespace="default",
image=IMAGE,
startup_timeout_seconds=600,
secrets=[
SECRET_1,
SECRET_2], ...)
所以现在据我了解,我应该SECRET_1
从容器中作为环境变量访问KubernetesPodOperator
但是,我从 python 脚本(带有os.environ["SECRET_1"]
)的第一个任务返回一个错误,表明此环境变量不存在:
KeyError: 'SECRET_1'
那么如何从我的 python 脚本访问这个变量呢?