1.2. 使用 Red Hat Developer Hub Operator 使用自定义配置运行 Developer Hub
要使用 Developer Hub Operator 使用自定义配置运行 Red Hat Developer Hub,请创建 Backstage 自定义资源(CR):
- 挂载自定义配置映射中置备的文件。
- 注入自定义 secret 中置备的环境变量。
先决条件
-
通过使用 OpenShift CLI (
oc),您可以访问开发人员权限,可以访问一个旨在包含 Developer Hub 实例的 OpenShift Container Platform 集群。 - 您的 OpenShift Container Platform 管理员已在 OpenShift Container Platform 中安装了 Red Hat Developer Hub Operator。
-
您已在 <
my-rhdh-project> 项目中置备了自定义配置映射和 secret。
流程
在
my-rhdh-custom-resource.yaml文件中编写您的 Backstage CR,以使用您的自定义配置映射和 secret。例 1.2. 最少的
my-rhdh-custom-resource.yaml自定义资源示例apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: my-rhdh-custom-resource spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config extraEnvs: secrets: - name: <my_product_secrets> extraFiles: mountPath: /opt/app-root/src replicas: 1 route: enabled: true database: enableLocalDb: true例 1.3.
my-rhdh-custom-resource.yaml自定义资源示例,带有动态插件和 RBAC 策略配置映射,以及外部 PostgreSQL 数据库 secret。apiVersion: rhdh.redhat.com/v1alpha3 kind: Backstage metadata: name: <my-rhdh-custom-resource> spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config - name: rbac-policies dynamicPluginsConfigMapName: dynamic-plugins-rhdh extraEnvs: secrets: - name: <my_product_secrets> - name: my-rhdh-database-secrets extraFiles: mountPath: /opt/app-root/src secrets: - name: my-rhdh-database-certificates-secrets key: postgres-crt.pem, postgres-ca.pem, postgres-key.key replicas: 1 route: enabled: true database: enableLocalDb: false- 必填字段
- 不需要字段。您可以创建一个空的 Backstage CR,并使用默认配置运行 Developer Hub。
- 可选字段
spec.application.appConfig.configMaps- 输入您的配置映射名称列表。
.mount 文件在
my-rhdh-app-config配置映射中。spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config例 1.4. 在
my-rhdh-app-config和rbac-policies配置映射中挂载文件。spec: application: appConfig: mountPath: /opt/app-root/src configMaps: - name: my-rhdh-app-config - name: rbac-policiesspec.application.extraEnvs.envs(可选)输入不是 secret 的额外环境变量,如 代理环境变量。
例 1.5. 注入
HTTP_PROXY、HTTPS_PROXY和NO_PROXY环境变量。spec: application: extraEnvs: envs: - name: HTTP_PROXY value: 'http://10.10.10.105:3128' - name: HTTPS_PROXY value: 'http://10.10.10.106:3128' - name: NO_PROXY value: 'localhost,example.org'spec.application.extraEnvs.secrets输入环境变量 secret 名称列表。
例 1.6. 在 Red Hat Developer Hub secret 中注入环境变量
spec: application: extraEnvs: secrets: - name: <my_product_secrets>例 1.7. 在 Red Hat Developer Hub 和
my-rhdh-database-secretssecret 中注入环境变量spec: application: extraEnvs: secrets: - name: <my_product_secrets> - name: my-rhdh-database-secrets
<my_product_secrets > 是您首选的 Developer Hub secret 名称,在 Developer Hub 中指定 secret 配置的标识符。
spec.application.extraFiles.secrets输入您的证书文件 secret 名称和文件列表。
挂载
postgres-crt.pem、postgres-ca.pem和postgres-key.key文件,该文件包含在my-rhdh-database-certificates-secretssecret 中spec: application: extraFiles: mountPath: /opt/app-root/src secrets: - name: my-rhdh-database-certificates-secrets key: postgres-crt.pem, postgres-ca.pem, postgres-key.keyspec.database.enableLocalDb启用或禁用本地 PostgreSQL 数据库。
禁用本地 PostgreSQL 数据库生成以使用外部 postgreSQL 数据库
spec: database: enableLocalDb: false在开发环境中,使用本地 PostgreSQL 数据库
spec: database: enableLocalDb: truespec.deployment(可选) 输入您的部署配置。
应用 Backstage CR 来启动或更新 Developer Hub 实例。
$ oc apply --filename=my-rhdh-custom-resource.yaml --namespace=my-rhdh-project
1.2.1. 使用 Red Hat Developer Hub Operator 在自定义配置中挂载附加文件 复制链接链接已复制到粘贴板!
您可以使用 Developer Hub Operator 将额外文件(如 ConfigMap 或 Secret)挂载到首选位置的容器。
mountPath 字段指定 ConfigMap 或 Secret 挂载的位置。mount 的行为(无论是包含还是排除 subPath )取决于 key 或 mountPath 字段的规格。
-
如果没有指定
key和mountPath:每个键或值都挂载为带有subPath的文件名或内容。 -
如果使用或不使用
mountPath指定密钥:指定的key或 value 使用subPath挂载。 -
如果只指定
mountPath:包含所有键或值的目录,但没有subPath。
-
OpenShift Container Platform 不会自动更新使用
subPath挂载的卷。默认情况下,RHDH Operator 会监控这些 ConfigMap 或 Secret,并在发生更改时刷新 RHDH Pod。 - 为了安全起见,Red Hat Developer Hub 不授予 Operator Service Account 对 Secret 的读取访问权限。因此,不支持在不指定 mountPath 和 key 的情况下挂载 Secret 的文件。
先决条件
-
您可以使用 OpenShift CLI (
oc)访问包含 Developer Hub 实例的 OpenShift Container Platform 集群。 - 您的 OpenShift Container Platform 管理员已在 OpenShift Container Platform 中安装了 Red Hat Developer Hub Operator。
流程
在 OpenShift Container Platform 中,使用以下 YAML 代码创建 ConfigMap 或 Secret:
例 1.8. 最小
my-project-configmapConfigMap 示例apiVersion: v1 kind: ConfigMap metadata: name: my-project-configmap data: file11.txt: | My file11 content file 12.txt: | My file12 content例 1.9. 最小 Red Hat Developer Hub Secret 示例
apiVersion: v1 kind: Secret metadata: name: <my_product_secrets> StringData: secret11.txt: | secret-content将
configMaps 名称的值设置为ConfigMap 或secret 名称,设置为BackstageCR 中的 Secret 名称。例如:spec: application: extraFiles: mountPath: /my/path configMaps: - name: my-project-configmap key: file12.txt mountPath: /my/my-rhdh-config-map/path secrets: - name: <my_product_secrets> key: secret11.txt mountPath: /my/my-rhdh-secret/path
<my_product_secrets > 是您首选的 Developer Hub secret 名称,在 Developer Hub 中指定 secret 配置的标识符。