Как вы уже написали ( отсюда ), Helm вычислит хэш SHA-256 файла неопознанного шаблона, который не изменится при обновлении значения.
Если ваша ConfigMap когда-либо будет содержать только это единственное значение, вы можете вместо этого использовать хэш этого значения:
checksum/config: {{ sha256sum .Values.image.tag }}
Вы можете разбить содержимое ConfigMap на отдельный обновляемый шаблон:
{{/* _config_map.tpl */}}
{{- define "config-map-contents" -}}
image.tag: {{ .Values.image.tag }}
{{- end -}}
{{/* my-configmap.yaml */}}
apiVersion: v1
kind: ConfigMap
metadata:
name: my-configmap
data: {{ include "config-map-contents" | nindent 2 }}
{{/* in the pod spec */}}
checksum/config: {{ include "config-map-contents" | sha256sum }}
В конце дня вам нужно что-то в спецификации модуля, чтобы изменить его, чтобы Kubernetes снова его развернул.В Helm вы можете более непосредственно поместить значение в переменную окружения, не проходя через ConfigMap, что даст правильный эффект:
env:
- name: IMAGE_TAG
value: {{ .Values.image.tag }}
Или, если это действительно тег изображения, просто измените целевое изображениеконтейнер в модуле вызовет повторное развертывание:
image: {{ printf "%s/%s:%s" .Values.image.repository (.Values.image.image | default "myimage") .Values.image.tag | quote}}