Ошибка возврата даты развертывания патча kubectl - PullRequest
0 голосов
/ 09 июля 2020

Когда я пытаюсь

kubectl patch deployment my-node-app -p "{\"spec\":{\"template\":{\"metadata\":{\"labels\":{\"date\":\" date + '% s' \"}}}}}" -n my-namespace

, я получаю ошибку ниже:

The Deployment "my-node-app" is invalid: spec.template.labels: Invalid value: " date + '% s' ": a valid label must be an empty string or consist of alphanumeric characters, '-', '_' or '.', and must start and end with an alphanumeric character (e.g. 'MyValue', or 'my_value', or '12345', regex used for validation is '(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])?')

Что мне не хватает в моем коде?

apiVersion: apps/v1
kind: Deployment
metadata:
  name: node
  namespace: dev
  labels:
    app: my-node-app
spec:
  replicas: 2
  selector:
    matchLabels:
      app: my-node-app
  template:
    metadata:
      labels:
        app: my-node-app
    spec:
      hostNetwork: true
      securityContext:
        fsGroup: 1000
      containers:
      - name: node
        imagePullPolicy: Always
        image: gcr.io/my-repo/my-node-app:latest
        ports:
        - containerPort: 3000
        envFrom:
          - configMapRef:
              name: my-configmap
        resources:
          requests:
            cpu: 100m
            memory: 128Mi
          limits:
            cpu: 2
            memory: 8Gi
      restartPolicy: Always

1 Ответ

0 голосов
/ 09 июля 2020

Вы можете попытаться повторить свою json строку:

echo "{"spec":{"template":{"metadata":{"labels":{"date":"date +'%s'"}}}}}"
-> {spec:{template:{metadata:{labels:{date:date +%s}}}}}

В вашем случае вы хотите выполнить команду date, поэтому:

echo "{"spec":{"template":{"metadata":{"labels":{"date":"$(date +'%s')"}}}}}"
-> {spec:{template:{metadata:{labels:{date:1594299081}}}}}

даже лучше, вы строку json следует заключить в простые кавычки:

echo '{"spec":{"template":{"metadata":{"labels":{"date":"'$(date +'%s')'"}}}}}'
-> {"spec":{"template":{"metadata":{"labels":{"date":"1594299282"}}}}}

Кроме того, вам не нужны кавычки для date +%s

...