如何解决头盔忽略安装前挂钩失败
我有一个预安装挂钩,它可以创建动态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
我想在重新启动期间保留相同的PVC,这就是我提供"helm.sh/resource-policy": keep
的原因。第一次启动服务时,我可以使用预安装挂钩创建PVC。但是随后的安装/重新启动失败,错误为Error: persistentvolumeclaims "my-dynamic-pv" already exists
。
是否可以忽略此故障并继续进行头盔安装?
解决方法
对--no-hooks
命令使用helm
标志来忽略钩子。
$ helm install --help | grep "no-hooks"
--no-hooks prevent hooks from running during install
$ helm install <NAME> <CHART> --no-hooks
,
您可以使用helm lookup
函数在创建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 -}}
有关头盔查找功能的更多信息-Helm template functions
我正在使用头盔3.2.1。您可能需要一个近距离版本才能使用查找功能。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。