Openshift - корреляция между конфимапом и стручками - PullRequest
0 голосов
/ 16 января 2019

есть ли быстрый способ / oc, чтобы узнать, какое развертывание использует один или несколько configmap?

В моем случае мне нужно знать, какое развертывание мне нужно развернуть, чтобы применить обновление configmap.

Нет доказательств в файле DC YAML.

Заранее спасибо!

1 Ответ

0 голосов
/ 17 января 2019

С , руководство в 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"}
...