Я хотел бы предложить вам другой подход. Вы можете включить
. Вы можете использовать эту аннотацию на PV C, она пропустит удаление ресурса при удалении.
helm.sh/resource-policy: "keep"
Здесь является примером:
{{- if and .Values.persistence.enabled (not .Values.persistence.existingClaim) }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: {{ template "bitcoind.fullname" . }}
annotations:
"helm.sh/resource-policy": keep
labels:
app: {{ template "bitcoind.name" . }}
chart: "{{ .Chart.Name }}-{{ .Chart.Version }}"
release: "{{ .Release.Name }}"
heritage: "{{ .Release.Service }}"
spec:
accessModes:
- {{ .Values.persistence.accessMode | quote }}
resources:
requests:
storage: {{ .Values.persistence.size | quote }}
{{- if .Values.persistence.storageClass }}
{{- if (eq "-" .Values.persistence.storageClass) }}
storageClassName: ""
{{- else }}
storageClassName: "{{ .Values.persistence.storageClass }}"
{{- end }}
{{- end }}
{{- end }}
Вы также можете установить его как настраиваемые параметры как здесь , где они реализованы возможность установить значение true или false при установке диаграммы управления.
persistence.annotations."helm.sh/resource-policy"
Вы также можете включить настраиваемые параметры, чтобы задать имя pv c, которое вы хотите использовать здесь как .
В этом примере вы можете установить persistence.existingClaim=mysql-pvc
, например, во время установки графика.
Итак, смешивая все, вы можете получить что-то, что должно выглядеть так, когда вы запускаете установку helm:
helm install --namespace myapp --set existingClaim=mysql-pvc stable/myapp