OpenShift中能否在DeploymentConfig内使用ConfigMap?
当然可以在DeploymentConfig中使用ConfigMap!
其实DeploymentConfig的核心是定义Pod模板,所以它引用ConfigMap的方式和你给出的Pod配置几乎完全一致——只需要把ConfigMap的引用逻辑放到DeploymentConfig的spec.template.spec下的容器定义里就行。下面给你两种常见用法的示例:
1. 通过环境变量引用ConfigMap
和Pod里的写法完全对齐,你可以单独引用某个键值对,也可以一次性导入ConfigMap里的所有配置:
apiVersion: v1 kind: DeploymentConfig metadata: name: dapi-deployment-config spec: replicas: 1 selector: app: dapi-test template: metadata: labels: app: dapi-test spec: containers: - name: test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "env" ] env: # 引用ConfigMap中的单个键值对 - name: SPECIAL_LEVEL_KEY valueFrom: configMapKeyRef: name: my-configmap # 替换为你的ConfigMap名称 key: special.level # 替换为ConfigMap里对应的键 # 一次性导入ConfigMap的所有键作为环境变量 - name: ALL_CONFIG_VARS valueFrom: configMapRef: name: my-configmap
2. 将ConfigMap挂载为文件卷
如果需要把ConfigMap的内容以文件形式挂载到容器里,写法也和Pod一致:
apiVersion: v1 kind: DeploymentConfig metadata: name: dapi-volume-deployment spec: replicas: 1 selector: app: dapi-volume-test template: metadata: labels: app: dapi-volume-test spec: containers: - name: test-container image: gcr.io/google_containers/busybox command: [ "/bin/sh", "-c", "cat /etc/config/special.level" ] volumeMounts: - name: config-volume mountPath: /etc/config # 容器内的挂载路径 volumes: - name: config-volume configMap: name: my-configmap # 替换为你的ConfigMap名称 # 可选:只挂载特定的键,不写则挂载所有键 items: - key: special.level path: special.level # 挂载后在容器内的文件名
简单来说,DeploymentConfig的template字段就是一个完整的Pod配置模板,所以所有Pod支持的ConfigMap引用方式,在DeploymentConfig里都能直接复用。
内容的提问来源于stack exchange,提问作者Jan Franta
相关产品推荐
相关产品推荐

