我在Openshift 3.9中有一个项目/命名空间。它具有一个Mysql db pod,凭据详细信息存储为secrets
。
在部署Springboot应用程序时,在Openshift UI中,我更改了Deployment Configuration
以将动态变量从我的APP映射到Mysql机密。
现在,我想自动化此步骤,以及如何在使用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-
答案 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>