Неверный тип для io.k8s.api.core.v1.ConfigMapEnvSource получил «массив», ожидаемую «карту» - PullRequest
0 голосов
/ 08 марта 2020

У меня есть файл манифеста kubernetes cronjob. В этом файле я определил переменные окружения. Я генерирую yaml с помощью сценария оболочки, но при использовании yaml с помощью kubectl create -f. Я получаю следующую ошибку проверки

 error validating "cron.yaml": error validating data: [ValidationError(CronJob.spec.jobTemplate.spec.template.spec.containers[0].envFrom[0].configMapRef): invalid type for io.k8s.api.core.v1.ConfigMapEnvSource: got "array", expected "map".

Может кто-нибудь предложить мне, как решить эту проблему?

1 Ответ

0 голосов
/ 08 марта 2020

В синтаксисе есть ошибка.

Существует два подхода, использующих valueFrom для отдельных значений или envFrom для нескольких значений.

valueFrom используется внутри атрибута env. значение ключа из ссылочного configMap.

spec:
  template:
    spec:
      containers:
      - name: ad-sync
        image: foo.azurecr.io/foobar/ad-sync
        command: ["dotnet", "AdSyncService.dll"]
        args: []
        env:
          - name: AdSyncService
            valueFrom:
              configMapKeyRef:
                name: ad-sync-service-configmap
                key: log_level

envFrom используется непосредственно внутри атрибута контейнера .envFrom вставит все ключи configMap в качестве переменных среды

spec:
  template:
    spec:
      containers:
      - name: ad-sync
        image: foo.azurecr.io/foobar/ad-sync
        command: ["dotnet", "AdSyncService.dll"]
        envFrom:
        - configMapRef:
            name: ad-sync-service-configmap
...