openshift - Openshift oc new-app 如何映射另一个 pod 的秘密?
问题描述
我在 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[] | 选择(.kind ==“部署配置”)| .spec.template.spec.containers[0].env += [{"name":"db_name","valueFrom":{"secretKeyRef":{"key":"database-name","name":" mysql"}}},{"name":"db_username","valueFrom":{"secretKeyRef":{"key":"database-user","name":"mysql"}}},{"name" :"db_password","valueFrom":{"secretKeyRef":{"key":"database-password","name":"mysql"}}}]' | \ oc 应用--文件名-
解决方案
虽然oc new-app
看起来很方便,但通常首选显式创建一个DeploymentConfig(或 Deployment)文件并将其签入代码仓库;用于oc create -f <deployment-filename>
在 OpenShift 中创建实际对象。
有关如何使用 Secrets 中的值填充环境变量的信息,请参见此处的示例 #3 - 这就是“解决方法”的作用。
或者,您仍然可以使用oc new-app
创建新应用程序,包括从源代码构建它,这将创建 DeploymentConfig,然后您可以编辑以从 Secrets 配置中添加环境变量。
推荐阅读
- firebase - dynamic_link_first_open 事件是否也会触发 first_open?
- azure-active-directory - 无法与 AzureB2C 示例中的 WebAPI 通信
- java - Dropbox API v2 用于查找已同步、移动、重命名、复制和删除的文件
- java - 如何使用 Java 10 jdk.incubator.httpclient 中的 HttpRequest.BodyPublisher?
- java - Spring在条件类的子类中注入bean
- vhdl - BIT_VECTOR 和 ARRAY OF BIT 的区别
- notepad++ - (Notepad++) 在两个子字符串之间查找超过一定长度的字符串
- c++ - 在只有一个 const shared_ptr 的 unordered_set 中找到一个 shared_ptr?
- react-native - 如何使用 React Native 获得简单的右滑动画
- node.js - should.throw()、should.Throw() 和 expect to.throw() 有什么区别?