kubernetes: как создать и использовать configmap из нескольких файлов - PullRequest
0 голосов
/ 12 февраля 2019

У меня есть документация, касающаяся карты конфигурации:

https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#define-container-environment-variables-using-configmap-data

Насколько я понимаю, я могу создать карту конфигурации (game-config-2) из ​​двух файлов (game.properties и ui.properties)используя

kubectl create configmap game-config-2 --from-file=configure-pod-container/configmap/kubectl/game.properties --from-file=configure-pod-container/configmap/kubectl/ui.properties

Теперь я вижу карту конфигурации

kubectl describe configmaps game-config-2
Name:           game-config-2
Namespace:      default
Labels:         <none>
Annotations:    <none>

Data
====
game.properties:        158 bytes
ui.properties:          83 bytes

Как я могу использовать эту карту конфигурации?Я пробовал так:

    envFrom:
    - configMapRef:
        name: game-config-2

Но это не работает, переменная env не выбирается из configmap.Или я могу иметь два configMapRef под envFrom?

Ответы [ 3 ]

0 голосов
/ 13 февраля 2019

Я не уверен, что вы можете загрузить все пары ключ: значение из определенного файла в файле конфигурации в качестве переменных environemnt в модуле.Вы можете загрузить все пары ключ: значение из определенной конфигурации как переменные environemnt в модуле.см. ниже

apiVersion: v1
kind: ConfigMap
metadata:
  name: special-config
  namespace: default
data:
  SPECIAL_LEVEL: very
  SPECIAL_TYPE: charm
apiVersion: v1
kind: Pod
metadata:
  name: dapi-test-pod
spec:
  containers:
    - name: test-container
      image: gcr.io/google_containers/busybox
      command: [ "/bin/sh", "-c", "env" ]
      envFrom:
      - configMapRef:
          name: special-config
  restartPolicy: Never

Убедитесь, что модуль отображает ниже переменных env

SPECIAL_LEVEL=very
SPECIAL_TYPE=charm
0 голосов
/ 09 апреля 2019

Как упомянул @Emruz_Hossain, если game.properties и ui.properties имеют только переменные env, тогда это может работать для вас

kubectl create configmap game-config-2 --from-env-file=configure-pod-container/configmap/kubectl/game.properties --from-env-file=configure-pod-container/configmap/kubectl/ui.properties
0 голосов
/ 12 февраля 2019

Одним из решений этой проблемы является создание ConfigMap с несколькими ключами / значениями данных:

apiVersion: v1
kind: ConfigMap
metadata:
  name: conf
data:
  game.properties: |
    <paste file content here>
  ui.properties: |
    <paste file content here>

Просто не забудьте символ | перед вставкой содержимого файлов.

...