0

我正在尝试将秘密变量传递给我KubernetesPodOperator的气流

这是我所做的:

  1. 创建一个secret.yaml如下所示的文件
apiVersion: v1
kind: Secret
metadata:
  name: my-secret
type: Opaque
data:
  SECRET_1: blabla 
  SECRET_2: blibli 
  1. 应用秘密:
kubectl apply -f ./secret.yaml
  1. 从我的 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 脚本访问这个变量呢?

4

0 回答 0