在 Python 脚本中访问 Openshift Secrets 数据

问题描述 投票:0回答:1

我有一个使用

os.environ.get('env_var_name')
访问我的环境变量的脚本。我可以在本地运行它,但在 Openshift 中,我存储了我的 Secret,其中单个 Secret 包含多个数据值。例如,
Test1
Secret 会将
env_var_1
env_var_2
等作为数据存储在 Secret 中。

我的问题是,如何在 python 脚本中单独访问每个变量?我尝试过类似

os.environ.get(Test1/env_var_1)
os.environ.get(Test1.env_var_1)
之类的方法,但到目前为止都没有成功。如有任何帮助,我们将不胜感激!

python-3.x environment-variables openshift
1个回答
0
投票

正如您所说,您无法使用

os.environ.get()
访问它们,因为该方法从底层操作系统检索环境变量。这就是它在您的开发环境中工作的原因。但它并非来自 OpenShift Secrets。在openShift中,您需要使用OpenShift API或cli工具。在 Python 脚本中,您可以使用 subprocess 模块来运行 shell 命令并捕获输出。

这些内容应该对你有用

secret_name = "Test1"
env_var_name = "env_var_1"

command = f'oc get secret {secret_name} -o jsonpath={{.data.{env_var_name}}} | base64 -d'
result = subprocess.run(command, shell=True, check=True, text=True, capture_output=True)

value = result.stdout.strip()
print(f"The value of {env_var_name} is: {value}")

如果您还没有导入子流程模块,请记住导入。

© www.soinside.com 2019 - 2024. All rights reserved.