Как изменить размер ПВХ для statefulset с помощью helm chart для новых выпусков и сохранить значение для существующих выпусков

#kubernetes #kubernetes-helm #kubernetes-statefulset

#kubernetes #kubernetes-helm #kubernetes-statefulset

Вопрос:

Известно, что изменение размера PVC для существующих statefulset пока невозможно https://github.com/kubernetes/kubernetes/issues/68737

Теперь у меня есть helm chart с statefulset и PVC размером 1 ГБ. При обновлении существующих выпусков я хочу сохранить существующее значение для размера тома, 1 ГБ.

При установке новых выпусков я хочу изменить значение по умолчанию, скажем, на 10 ГБ.

Как я могу добиться этого с помощью той же диаграммы и только со значениями по умолчанию (без предоставления пользовательских значений во время установки)?

Я попытался с:

   volumeClaimTemplates:
  - metadata:
      name: data
    spec:
      accessModes: ["ReadWriteOnce"]
      resources:
        requests:
{{- if .Release.IsInstall }}
          storage: {{ .Values.storage.size }}
{{- end }}
 

который работает для установки с нуля, но затем для обновления атрибут «storage» удаляется helm, и я возвращаюсь к той же ошибке:

 Error: StatefulSet.apps "test" is invalid: spec: Forbidden: updates to statefulset spec for fields other than 'replicas', 'template', and 'updateStrategy' are forbidden
 

Есть ли способ получить / сохранить предыдущее примененное значение изнутри шаблона helm?

Обратите внимание, что я использую helm v2.

Сценарий:

  • У меня есть диаграмма с версиями: 1.0.0, 1.0.1
  • Для версии 1.0.0 .Values.storage.size составляет 1 ГБ
  • Для версии 1.0.1 .Values.storage.size составляет 10 ГБ
  • У меня есть существующий выпуск, A, с версией диаграммы 1.0.0, поэтому размер тома 1 ГБ
  • Имея только значения по умолчанию, определенные в values.yaml, я хочу иметь возможность:
    • обновите выпуск A с версии диаграммы 1.0.0 до 1.0.1, сохранив размер тома (1 ГБ)
    • установите с нуля версию B с версией диаграммы 1.0.1 с размером тома 10

Комментарии:

1. Я не могу понять, когда вы сказали, что хотите сохранить 1 ГБ для текущего выпуска, но 10 ГБ для новых выпусков, потому что, если вы обновляете ту же самую диаграмму, helm попытается обновить все, что было изменено. Не могли бы вы, пожалуйста, уточнить и, если возможно, опубликовать что-нибудь для воспроизведения?

2. обновил вопрос сценарием, дайте мне знать, если это поможет.

3. Возможно, условие «если» для проверки версии диаграммы может решить эту проблему. Это работает для вас?

4. Не совсем, потому что я могу знать только новую версию диаграммы, ту, которую я хочу обновить, а не диаграмму, использованную для установки первой версии выпуска. Потому что это первая редакция выпуска, которая фактически устанавливает размер тома. Правильно?