Развертывание невозможно воссоздать во время обновления Helm, поскольку не удалось заменить PersistentVolumeClaim и Service.

У меня есть приложение, которое использует диаграммы Helm для развертывания. В первой команде helm upgrade --install все работает, как ожидалось, но во второй раз у меня возникает эта ошибка:

Error: UPGRADE FAILED: failed to replace object: PersistentVolumeClaim "logs" is invalid: spec: Forbidden: is immutable after creation except resources.requests for bound claims && failed to replace object: Service "application" is invalid: spec.clusterIP: Invalid value: "": field is immutable

вот мой application-deployment.yaml:

apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: application
  name: application
spec:
  selector:
    matchLabels:
      app: application
  replicas: 1
  strategy:
    type: Recreate
  template:
    metadata:
      labels:
        app: application
    spec:
      imagePullSecrets:
        - name: aws-registry
      containers:
      - image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
        imagePullPolicy: Always
        name: application
        resources: {}
        volumeMounts:
        - mountPath: /app/var/logs
          name: logs
      restartPolicy: Always
      volumes:
      - name: logs
        persistentVolumeClaim:
          claimName: logs

вот application-service.yaml:

apiVersion: v1
kind: Service
metadata:
  labels:
    app: application
  name: application
spec:
  ports:
  - port: 9000
    protocol: TCP
    targetPort: 9000
  selector:
    app: application

а вот logs-pvc.yaml:

apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: middleware-logs
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 400Mi
status: {}

Я понятия не имею, как решить эту проблему, невозможно, чтобы однажды созданный ПВХ или сервис не мог быть изменен, поэтому я предполагаю, что я делаю что-то не так, но не уверен, что именно.


comment
Я подозреваю, что попытка заставить status: быть пустым в самой последней строке вызывает хотя бы часть этого; помогает ли удаление этой строки?   -  person David Maze    schedule 03.11.2020
comment
@DavidMaze Я уже пробовал это, и это вообще не изменило ошибку   -  person Most31    schedule 03.11.2020
comment
Проблема заключалась в том, что я выполнял обновление с параметром --force   -  person Most31    schedule 03.11.2020
comment
@ Most31 вы решили убрать флаг --force из команды? Пожалуйста, опубликуйте ответ с объяснением, как вы ее решили. Примерно --force вы можете проверить это link, объясняющее, как это работает.   -  person Mr.KoopaKiller    schedule 05.11.2020