微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Airflow KubernetesPodOperator:如何访问传递给Pod的秘密?

如何解决Airflow KubernetesPodOperator:如何访问传递给Pod的秘密?

我试图在气流中将秘密变量传递给我的 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",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 脚本访问这个变量?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。