sandzhaj.space

Меню
  • главная
  • cтатьи
  • книги
  • про автора
Меню

Заметка про Helm, Secrets и stringData

Опубликовано в 04.05.202305.05.2023 от sandzhaj

Проблема

При использовании Secrets типа stringData обнаружил проблему, что если вы удаляете в inventory какие-либо ключи из этого объекта, то после деплоя helm не удаляет эти ключи в конечном объекте, а оставляет их, удаляя значения. В OpenShift это выглядит так:

Это затрагивает любые чарты, потому что проблема не в рендеринге шаблонов, а в моменте когда helm уже мержит изменение в конечном объекте.

Решение

Добавьте аннотации для таких Secrets. Тогда, перед обновлением ресурса, helm будет его удалять и девиантное поведение исчезнет.

annotations:
  "helm.sh/hook": "pre-install, pre-upgrade, pre-rollback"
  "helm.sh/hook-delete-policy": before-hook-creation
  "helm.sh/resource-policy": keep

Данные аннотации также могут быть полезны для объектов с Immutable полями. Например, мы можем добавить их в route и у нас появится возможность изменять хост в inventory, не удаляя объект руками перед деплоем. Однако, ресурсы, созданные с помощью хука Helm, являются неуправляемыми объектами Kubernetes. Другими словами, удаление Helm-релиза не приведет к удалению ресурсов, созданных с помощью хуков, но все остальные возможности, например Rollback могут работать, если указать аннотации как в примере выше. Между неудаляемым ресурсом командой helm delete и испорченными в редких случаях Secrets выбирать Вам.

  • helm
  • автоматизация
  • Поиск

    Подпишись

    Теги

    bash git helm python zsh автоматизация нейросеть ооп терминал трекинг

    ©2025 sandzhaj.space