0

我正在通过configMap. 还创建一个generate.json文件并通过configMap也安装它。这一切都很好。问题是环境变量没有被文件拾取generate.json

我正在尝试将 configMap 传递的环境变量传递给通过 configMapgenerate.json挂载的环境变量。我的猜测是,该文件generate.json将读取通过 configMap 传递的容器 env vars 并在必要时插入那些。

这是2个配置图

ConfigMap to create the env variables

apiVersion: v1
kind: ConfigMap
metadata: 
  name: config-cm
  namespace: default
data:
  ADMIN_PW: "P@ssw0rd"
  EMAIL: "support@gluu.com"
  ORG_NAME: "Gluu"
  COUNTRY_CODE: US
  STATE: TE
  CITY: SLC
  LDAP_TYPE: opendj
  GLUU_CONFIG_ADAPTER: kubernetes
  GLUU_SECRET_ADAPTER: kubernetes

---

`---configmap to interpolate the created environment vars---`

apiVersion: v1
kind: ConfigMap
metadata:
  name: gen-json-file
  namespace: default
data:
  generate.json: |-
    {
      "hostname": "$DOMAIN",
      "country_code": "$COUNTRY_CODE",
      "state": "$STATE",
      "city": "$CITY",
      "admin_pw": "$ADMIN_PW",
      "email": "$EMAIL",
      "org_name": "$ORG_NAME"
    }

---
apiVersion: batch/v1
kind: Job
metadata:
  name: config-init
spec:
  parallelism: 1
  template:
    metadata:
      name: job
      labels:
        app: load
    spec:
      volumes:
        - name: config
          persistentVolumeClaim:
            claimName: config-volume-claim
        - name: mount-gen-file
          configMap:
            name: gen-json-file
      containers:
      - name: load
        image: gluufederation/config-init:4.0.0_dev
        lifecycle:
          preStop:
            exec:
              command: [ "/bin/sh", -c , "printenv" ]
        volumeMounts:
          - mountPath: /opt/config-init/db/
            name: config
          - mountPath: /opt/config-init/db/generate.json
            name: mount-gen-file
            subPath: generate.json
        envFrom:
        - configMapRef:
            name: config-cm
        args: [ "load" ]
      restartPolicy: Never

预期的结果是文件generate.json应该从环境变量填充/插值到变量。

4

0 回答 0