0

我有一个 kubernetes cronjob 清单文件。在该文件中,我定义了环境变量。我正在使用 shell 脚本生成 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".

谁能建议我如何解决这个问题?

4

1 回答 1

0

你的语法有错误。

有两种方法,将 valueFrom 用于单个值或 envFrom 用于多个值。

valueFrom 在 env 属性中使用。valueFrom 将从引用的 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
于 2020-03-08T10:12:15.460 回答