sub*_*rat 0 kubernetes kubernetes-helm
我有一个预安装挂钩,它创建一个动态 PVC,如下所示
kind: PersistentVolumeClaim
metadata:
name: my-dynamic-pv
annotations:
"helm.sh/resource-policy": keep
"helm.sh/hook": "pre-install"
spec:
storageClassName: {{ .Values.persistence.storageClass }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
Run Code Online (Sandbox Code Playgroud)
我想在重新启动时保留相同的 PVC,这就是我提供"helm.sh/resource-policy": keep. 我能够在第一次启动服务时使用预安装挂钩创建 PVC。但随后的安装/重新启动失败并出现错误Error: persistentvolumeclaims "my-dynamic-pv" already exists。
有没有办法忽略此故障并继续 helm 安装?
在命令中使用--no-hooksflaghelm来忽略钩子。
$ helm install --help | grep "no-hooks"
--no-hooks prevent hooks from running during install
$ helm install <NAME> <CHART> --no-hooks
Run Code Online (Sandbox Code Playgroud)
您可以helm lookup在创建 pvc 之前使用函数检查 pvc 是否存在。
{{- $mypvc := (lookup "v1" "PersistentVolumeClaim" .Release.Namespace (printf "my-
dynamic-pv")) }}
{{- if not $mypvc }}
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
name: my-dynamic-pv
annotations:
"helm.sh/resource-policy": keep
"helm.sh/hook": "pre-install"
spec:
storageClassName: {{ .Values.persistence.storageClass }}
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
{{- end -}}
Run Code Online (Sandbox Code Playgroud)
有关 helm 查找功能的更多信息 - Helm 模板功能
我正在使用 helm 3.2.1。您可能需要一个近似版本才能使用查找功能。
| 归档时间: |
|
| 查看次数: |
8123 次 |
| 最近记录: |