Helmwave v0.12.8

—

от автора

Прошло уже 8 месяцев с момента первой и пока единственной статьи о инструменте для композинга helm чартов – helmwave.

За это время:

  • Преодолели планку в 100 звезд;

  • Вышло 7 минорных обновлений;

  • Появился сайт с документацией;

  • Перешли на goreleaser.

Поэтому цель статьи:

  • прервать молчание;

  • рассказать о новых возможностях;

  • поделиться примерами;

  • набрать звёздочек на Github;

  • рассказать про планы на будущее.

Ломая совместимость

Добравшись до 0.11.0 версии. Пришло осознание что так больше продолжаться не может. Все версии до 0.5.0 были проверкой гипотезы. Версия 0.5.0 стала отличным инструментом. Который очень быстро начал обрастать дополнительными фичами. И начиная с 0.12.0 у нас новый ямл для конфигурации.

Было

version: 0.9.6  project: my-project   releases:   - name: my-release     chart: my-chart-repo/my-app     values:       - values.yml     options:       install: true       namespace: my-namespace 

Стало

version: 0.12.8  project: my-project   releases:   - name: my-release     chart:        name: my-chart-repo/my-app     values:       - values.yml     namespace: my-namespace     createnamespace: true     

Поэтому пришлось разделить документацию на до и после.

Также обновился cli. Мы пошли по пути упрощения. И в последних релизах еще избавились от алиасов для команд.

Было

Стало

helmwave render

helmwave yml

helmwave deploy

helmwave up

helmwave plan $sub

helmwave build

helmwave planfile

helmwave build

В планах:

  • helmwave up --build Опции для билда и поднятия одновременно.

  • Вероятно будем избавляться от helmwave.yml.tpl. В пользу только helmwave.yml

Features

Create Namespace с 0.12.x

Раньше helmwave всегда создавал namespace в kubernetes. Теперь эту опцию можно выключить.

createnamespace: false

Plan Diff с 0.12.x

Helmwave сверяет новый план с предыдущим.

Какие изменения отслеживает plan diff?

  • Видит изменение в манифестах. Это удается достичь благодаря helm-diff;

  • Отслеживает новые релизы в списке;

  • Показывает warning если релиз не найден в списке. Позволяет не терять релизы.

Запрос на эту фичу мы получили в нашем телеграм чате.

Открыть asciinema cast

https://asciinema.org/a/433171
https://asciinema.org/a/433171

Планы:

  • Добавить diff с live-окружением.

Remote values с 0.11.x

helmwave теперь умеет забирать values для чартов удаленно.

Какие схемы поддерживаются?

  • Пока только http.

version: 0.12.8  repositories:   - name: bitnami     url: https://charts.bitnami.com/bitnami         releases:   - name: nginx     chart:       name: bitnami/nginx     namespace: test     values:       - https://raw.githubusercontent.com/helmwave/helmwave/main/tests/06_values.yaml 

Планы:

  • Новые схемы s3/consul/etc

  • remote helmwave.yml

depends_on c 0.9.x

Позволяет указать последовательность установки релизов. Примерно как в docker-compose.

Допустим есть 4 приложения. И нужно установить их в следующей последовательности.

Соответсвенно helmwave.yml будет иметь следующий вид:

version: 0.12.8  .options: &options   createnamespace: true   namespace: my-namespace   releases:   - name: queue     chart:       name: some/queue     <<: *options    - name: db     chart:       name: some/db     <<: *options    - name: backend     chart:       name: some/backend     <<: *options     depends_on:       - db@my-namespace       - queue@my-namespace    - name: frontend     chart:       name: some/frontend     <<: *options     depends_on:       - backend@my-namespace 

Как видно из кода выше. Формат зависимостей – $RELEASE_NAME@$NAMESPACE.

Graph view

После того как добавили depends_on. Была добавленна возможность увидеть в консоли порядок деплоя.

Помимо этого. Граф также сохраняется в формате markdown в директории плана.

cat .helmwave/graph.md                                                      # Depends On ...

Kubedog с 0.8.x

Kubedog – библиотека коллег из Фланта для отслеживания ресурсов в kubernetes.

Kubedog глубоко уходит корнями в werf и logboek. Ворфлоу с аннотациями здесь такой же как в werf: Просто добавляете нужную аннотацию к ресурсу.

apiVersion: apps/v1 kind: Deployment ... spec:   template:     metadata:       annotations:         helmwave.dev/show-service-messages: "true" ... 

Планы:

  • Новые аннотации.

  • Более стабильная работа. На текущий момент нужно включать этот функционал отдельно.

Что дальше?

Проект тесно связан с helm. Если появится новый функционал в helm, то будем стараться приносить его и в helmwave.

Пока планируем сфокусироваться на базовых вещах:

  • Больше документации https://helmwave.github.io/docs/;

  • Больше интеграционных-тестов;

  • Больше стабильности.


ссылка на оригинал статьи https://habr.com/ru/articles/575646/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *