Как мне найти версию карты "из" при обновлении руля? - PullRequest
0 голосов
/ 01 августа 2020

Я использую helm, встроенный в объект Release.isUpgrade, чтобы гарантировать, что init-контейнер запускается только при обновлении.

Я хочу запускать init-контейнер только при обновлении с определенного c Версия карты.

Можно ли получить версию карты «из» при обновлении руля?

1 Ответ

0 голосов
/ 02 августа 2020

Не похоже, что эта информация публикуется либо в объекте .Release , либо через информацию, доступную для задания перехвата .

Вероятно, вы захотите ловушка перед обновлением, а не контейнер инициализации. Если у вас есть несколько реплик в ваших развертываниях, контейнер инициализации будет работать на всех из них; даже если у вас есть только один, если узел, на котором он находится, выйдет из строя и будет заменен, при замене будет повторно запущен контейнер инициализации. Перехватчик перед обновлением будет запускаться только один раз, независимо от того, как настроены соответствующие развертывания.

Этот перехватчик будет отдельным модулем (и потребует написания кода), поэтому внутри него вы можете делать все, что захотите. Вы можете предоставить ему доступ для чтения к Kubernetes API, чтобы, например, получить определение существующего развертывания, а затем посмотреть на его метки или тег изображения контейнера, чтобы узнать, какая версия диаграммы / приложения работает сейчас. (Есть стандартные метки , которые могут помочь с этим.) Вы также можете сделать шаг обновления просто поиском собственных выходных данных: если объект X должен существовать, создайте его, если его нет, не фокусируясь на указать c версии.

...