Openshift oc new-app如何映射另一个Pod的秘密?

时间:2019-12-03 18:04:21

标签: openshift openshift-origin openshift-client-tools

我在Openshift 3.9中有一个项目/命名空间。它具有一个Mysql db pod,凭据详细信息存储为secrets

enter image description here

在部署Springboot应用程序时,在Openshift UI中,我更改了Deployment Configuration以将动态变量从我的APP映射到Mysql机密。

enter image description here

现在,我想自动化此步骤,以及如何在使用oc new-app cmd时提及/传递这些秘密。我正在使用以下命令,但不确定如何将变量传递/映射到机密。

oc new-app redhat-openjdk18-openshift~https://github.com/xyzasdkjasnda/openshift-mysql

在某个地方,我看到了以下解决方法

  

oc new-app   redhat-openjdk18-openshift〜https://github.com/xyzasdkjasnda/openshift-mysql   | jq'.items [] | select(.kind ==“ DeploymentConfig”)|   .spec.template.spec.containers [0] .env + =   [{“名称”:“ db_name”,“ valueFrom”:{“ secretKeyRef”:{“ key”:“数据库名称”,“名称”:“ mysql”}}}},{“名称”:“ db_username”, “ valueFrom”:{“ secretKeyRef”:{“ key”:“数据库用户”,“ name”:“ mysql”}}}},{“ name”:“ db_password”,“ valueFrom”:{“ secretKeyRef”:{ “ key”:“数据库密码”,“ name”:“ mysql”}}}]]'   | \       oc apply --filename-

1 个答案:

答案 0 :(得分:0)

尽管oc new-app似乎很方便,但通常最好显式创建一个DeploymentConfig(或Deployment)文件并将其检入代码存储库中。使用oc create -f <deployment-filename>在OpenShift中创建实际对象。

有关如何使用Secrets中的值填充环境变量的信息,请参见Example #3 here

或者,您仍然可以使用oc new-app创建一个新应用程序,包括building it from source code,它将创建DeploymentConfig,然后您可以edit从Secrets配置中添加环境变量。 / p>