С , руководство в OpenShift 3.9
В DeploymentConfig это Stanza для извлечения всех переменных среды из ConfigMap.
spec:
containers:
...
envFrom:
- configMapRef:
name: env-config
...
Возможно, стоит включить все ваши файлы deployConfigs для ключевого слова configMap
в определенном пространстве имен / проекте, чтобы убедиться, что у вас есть configMaps
$ oc get dc -o json -n $(oc project -q) | grep -A2 configMap
"configMapRef": {
"name": "printenv-config"
}
Предполагая, что внедрение переменных окружения из конфигурационных карт может быть более простым способом сделать это? - но вы также можете передать в jq и выполнить фильтрацию, если ключ массива envFrom
не равен нулю
oc get dc -o json | jq -r '[.items[] | select(.spec.template.spec.containers[].envFrom[]? != null)]' | jq -c '.[] | {namespace: .metadata.namespace, dcname: .metadata.name, configMap: .spec.template.spec.containers[].envFrom[].configMapRef.name}'
Результаты:
{"namespace":"aps-env","dcname":"openshift-tasks","configMap":"another-config-map"}
{"namespace":"aps-env","dcname":"printenv","configMap":"printenv-config"}
В качестве альтернативы вы можете монтировать configMap с помощью монтирования тома, в этом случае Stanza отличается, и вам необходимо соответствующим образом настроить выше
"volumes": [
...
{
"configMap": {
"defaultMode": 420,
"name": "gogs"
},
"name": "config-volume"
}
...
Другой запрос на основе тома, смонтированного configMap
$ oc get dc -o json | jq -r '[.items[] | select(.spec.template.spec.volumes[]?.configMap != null)]' | jq -c '.[] | {dcname: .metadata.name, configMapName: .spec.template.spec.volumes[].configMap.name}' | grep -v null
Результаты:
{"dcname":"gogs","configMapName":"gogs-configmap"}