Kubernetes: недопустимое значение: «****»: ошибка преобразования fieldPath: метка поля не поддерживается - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь применить нижеприведенное развертывание, но получаю ошибку ниже

«Пример» развертывания недействителен: spe c .template.spe c .containers [0] .env [0 ] .valueFrom.fieldRef.fieldPath: недопустимое значение: «spe c .template.metadata.annotations.configHa sh»: ошибка преобразования fieldPath: метка поля не поддерживается: spe c .template.metadata.annotations.configHa sh

Я пробовал разные способы доступа к fieldPath, например:

spec.template.metadata.annotations['configHash']
spec.template.metadata.['annotations'].['configHash']
spec.template.metadata.['annotations'['configHash']]

Кажется, ничего не работает. Любая помощь будет принята с благодарностью.

Kubernetes - 1.16.8-gke.15

apiVersion: apps/v1
kind: Deployment
metadata:
  name: ecc-web
  labels:
    app: ecc
spec:
  replicas: 1
  selector:
    matchLabels:
      app: ecc
  template:
    metadata:
      labels:
        app: ecc
      annotations:
        configHash: b6651e50d35182bd8fc2f75a5af4aca79387079860fb953896399a1ad16e317d
    spec:
      volumes:
      - name: opt-ecc-logs
        emptyDir: {}
      securityContext:
        fsGroup: 1000
      containers:
      - name: ecc-web
        image: gcr.io/gke-nonprod/ecc:release-11
        envFrom:
        - configMapRef:
            name: env-config
        env:
          - name: CONFIG_HASH
            valueFrom:
              fieldRef:
               fieldPath: spec.template.metadata.annotations.configHash
          - name: DB_PASSWORD
            valueFrom:
              secretKeyRef:
                name: ecc-secret
                key: mysql_svcacct_ecc_dev_password
        ports:
        - containerPort: 80
        imagePullPolicy: Always
        securityContext:
          privileged: true
        volumeMounts:
        - name: opt-ecc-logs
          mountPath: /opt/ecc/logs
      - name: application-log
        image: busybox
        command: ["/bin/sh","-c"]
        args: ["touch /opt/ecc/logs/application.log;chown -R wsapp:wsapp /opt/ecc/logs/;tail -n+1 -f /opt/ecc/logs/application.log"]
        securityContext:
          runAsUser: 1000
          runAsGroup: 1000
        volumeMounts:
        - name: opt-ecc-logs
          mountPath: /opt/ecc/logs

1 Ответ

1 голос
/ 16 июня 2020

Просто используйте:

env:
  - name: CONFIG_HASH
    valueFrom:
      fieldRef:
        fieldPath: metadata.annotations['configHash']

вместо spe c .template.metadata.annotations.configHa sh

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