Я хотел бы использовать HELM для принудительного повторного развертывания развертывания на Openshift.
Я использую «image@latest» для развертывания, так как хочу иметь самый последний образ при каждом развертывании, но я не хочу иметь триггер изменения образа, потому что я не могу контролировать, как часто меняется образ, и я может потребоваться изменить некоторые вещи в диаграмме (например, config-maps) перед развертыванием новой версии образа. Поэтому я не хочу иметь триггер изображения для развертывания.
По сути, я хочу, чтобы он переустанавливался, когда я этого хочу, а не автоматически, и я бы предпочел сделать это с помощью helm, и я попытался с помощью helm upgrade
.
В настоящее время у меня есть триггер изменения конфигурации, поэтому, если я изменяю диаграмму (содержащую конфигурации), развертывание выполняется повторно. Но если в диаграмме ничего не изменится, я не нахожу способа заставить переразвернуться через Helm.
Есть ли способ сделать это?
Мне удалось найти решение.
Я добавил spec-template-metadata-annotations
следующее:
timestamp: {{ now | quote }}
По сути, это приводит к тому, что диаграмма всегда меняется, что вызывает повторное развертывание каждый раз, когда я запускаю обновление helm.
Нет, мы хотим всегда иметь самое последнее изображение.
как это timestamp
связано с тегом latest
???
это не так, мы просто хотим повторно развернуть любой образ с последним тегом, но для этого helm должен обнаружить изменение в диаграмме, и поэтому нам нужна временная метка, чтобы заставить что-то измениться... так как значение "сейчас" всегда разное.
Вы можете использовать эту аннотацию в манифесте развертывания для принудительного развертывания изменений в ConfigMap.
kind: Deployment
spec:
template:
metadata:
annotations:
checksum/config: {{ include (print $.Template.BasePath "/configmap.yaml") . | sha256sum }}
...
Вот источник
Это сработает... но лучше работать с соответствующими тегами вместо
latest
. У вас есть CI\CD для тегирования?