Helmwave v0.12.8

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!

Прошло уже 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://github.com/helmwave/deploy-action GitHub Action для helmwave.

  • https://github.com/helmwave/terraform-provider-helmwave Terraform провайдер для helmwave

Принимаем пожелания через Feature request в issues. А обсудить их можно в telegram чате.

Источник: https://habr.com/ru/post/575646/


Интересные статьи

Интересные статьи

Одна из самых важных (на мой взгляд) функций в Битрикс24 это бизнес-процессы. Теоретически они позволяют вам полностью избавиться от бумажных служебок и перенести их в эл...
Helm, как и Docker стал де-факто стандартом в индустрии. Когда мы обсуждаем Kubernetes (52%). И новость, что Docker is deprecated вызвало волну обсуждений в сообществе. Настолько все пр...
Приветствую вас (лично вас, а не всех кто это читает)! Сегодня мы: Создадим приложение (навык) Алисы с использованием нового (октябрь 2019) сервиса Yandex Cloud Functions. Настроим н...
Если честно, к Д7 у меня несколько неоднозначное отношение. В некоторых местах я попискиваю от восторга, а в некоторых хочется топать ногами и ругаться неприличными словами.
Как широко известно, с 1 января 2017 года наступает три важных события в жизни интернет-магазинов.