Есть ли способ поделиться configMap в kubernetes между пространствами имен? - PullRequest
1 голос
/ 04 апреля 2019

Мы используем одно пространство имен для среды разработки и одно для промежуточной среды. Внутри каждого из этих пространств имен у нас есть несколько configMaps и секретов, но есть много общих переменных между двумя средами, поэтому нам хотелось бы иметь общий файл для них.

Есть ли способ поместить базовую configMap в пространство имен по умолчанию и ссылаться на него, используя что-то вроде:

- envFrom:
    - configMapRef:
        name: default.base-config-map

Если это невозможно, нет ли другого способа, кроме дублирования переменных через пространства имен?

1 Ответ

0 голосов
/ 04 апреля 2019

Kubernetes версии 1.13 и ниже

Они не могут быть общими, поскольку к ним нельзя получить доступ из модулей за пределами его пространства имен.Имена ресурсов должны быть уникальными в пространстве имен, но не во всех пространствах имен.

Обходной путь - копировать его.

Копировать секреты между пространствами имен

$ kubectl get secret <secret-name>  — namespace=<source-namespace> — export -o yaml |\ kubectl apply — namespace=<destination-namespace> -f -

Копировать конфигурации между пространствами имен

$ kubectl get configmap <configmap-name>  — namespace=<source-namespace> — export -o yaml |\ kubectl apply — namespace=<destination-namespace> -f -

Kubernetes версии 1.14 и выше

Флаг export устарел в 1.14 Устаревать флаг --export из команды get # 73787 Вместо этого можно использовать следующую команду:

kubectl get secret <secret-name> — namespace=<source-namespace>  -o yaml | sed ‘s/namespace: <from-namespace>/namespace: <to-namespace>/’ | kubectlcreate -f

Если кто-то все еще видит необходимость в флаге, сценарий экспорта был написан @ zoidbergwill , который делает это хорошо.

...