Автоматическое развертывание развертываний
Чтобы обновить ресурс при изменении Secret или Configmap, вы можете добавить аннотацию контрольной суммы к вашему развертыванию
kind: Deployment
spec:
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
Вы можете вернуться к ваша предыдущая конфигурация с командой отката руля
Обновление:
Предполагая, что ваша конфигурационная карта создана с использованием файла values.yaml
, вы можете добавить _helper.tpl function
{{- define "mychart.configmapChecksum" -}}
{{ printf "configmap-%s" (.Values.bar | sha256sum) }}
{{- end }}
И используйте {{ include "mychart.configmapChecksumed" . }}
как имя configmap и ссылку в развертывании.
configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: {{ include "mychart.configmapChecksumed" . }}
annotations:
"helm.sh/resource-policy": keep
data:
config.properties: |
foo={{ .Values.bar }}
deployment.yaml
...
volumeMounts:
- name: config-volume
mountPath: /etc/config
volumes:
- name: config-volume
configMap:
# Provide the name of the ConfigMap containing the files you want
# to add to the container
name: {{ include "mychart.configmapChecksumed" . }}
Обратите внимание, что вы должны сохранить аннотацию "helm.sh/resource-policy": keep
в Configmap, сообщающую рулю не удалять предыдущие версии.
Вы не можете использовать {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
как имя configmap напрямую, потому что рендеринг руля завершится ошибкой с
error calling include: rendering template has a nested reference name