You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python脚本中访问OpenShift Secrets中的数据?

在OpenShift中从Secret访问环境变量的正确方式

在OpenShift中,单个Secret里的Data项不会自动以Secret名/键或Secret名.键的形式暴露为Pod的环境变量,你需要先在Pod的部署配置(Deployment/DeploymentConfig)里将Secret的Data字段映射为常规环境变量,之后才能在Python脚本中用os.environ.get()访问。

两种常见的映射方式:

1. 逐个映射指定的Data项

在Deployment的容器配置中,为每个Secret Data项单独定义环境变量:

spec:
  template:
    spec:
      containers:
      - name: your-app-container
        env:
        - name: ENV_VAR_1  # 自定义的环境变量名,脚本里用这个名字访问
          valueFrom:
            secretKeyRef:
              name: Test1  # 你的Secret名称
              key: env_var_1  # Secret里的Data键名
        - name: ENV_VAR_2
          valueFrom:
            secretKeyRef:
              name: Test1
              key: env_var_2

配置完成后,在Python脚本中直接访问自定义的环境变量名:

import os

var1 = os.environ.get('ENV_VAR_1')
var2 = os.environ.get('ENV_VAR_2')

2. 导入整个Secret的所有Data项

如果想把Secret里的所有Data项直接作为环境变量导入,可以用envFrom字段:

spec:
  template:
    spec:
      containers:
      - name: your-app-container
        envFrom:
        - secretRef:
            name: Test1  # 你的Secret名称

这种方式下,Secret里的每个Data键会直接作为环境变量名,比如env_var_1会变成环境变量名,脚本中直接用:

import os

var1 = os.environ.get('env_var_1')
var2 = os.environ.get('env_var_2')

注意事项:

  • Secret中的Data值是Base64编码的,但OpenShift在映射为环境变量时会自动解码,你不需要在Python中手动解码。
  • 确保你的Pod所在的Namespace与Secret一致,且Pod拥有访问该Secret的权限(同一Namespace下默认权限足够,除非有特殊RBAC限制)。

内容的提问来源于stack exchange,提问作者Luxo_Jr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 04:02:33