Флант | Специалисты по DevOps и Kubernetes
1.9K subscribers
341 photos
2 videos
1 file
709 links
С 2008 года внедряем практики для автоматизации процессов разработки и управления инфраструктурами: flant.ru
В канале — наши технические статьи, видео, релизы Open Source-проектов и новости компании.

RU-чат: t.me/+_eOEtncbZ1hkZDNi
Download Telegram
В lockgate, нашей Open Source-библиотеке для организации блокировок на языке Golang (используется в werf), появился новый тип локов — на базе HTTP-сервера, который может использовать для их хранения память или Kubernetes. Подробности — в README проекта: https://github.com/werf/lockgate
У k8s-image-availability-exporter — нашего Prometheus exporter'а для отслеживания образов, используемых для ресурсов Kubernetes, но отсутствующих в реестрах контейнеров, — появился Helm-чарт. Подробности смотрите в репозитории: https://github.com/flant/k8s-image-availability-exporter (а о самом проекте в целом мы рассказывали здесь: https://habr.com/ru/company/flant/blog/495358/).

За появление этого чарта (и его последующее тестирование не только в Helm v3, но и v2) мы очень благодарны сторонним энтузиастам!
В werf — нашей Open Source-утилите для CI/CD — представлена ранняя поддержка Helm 3. Мы не торопились с ней, потому что ключевые фичи нового Helm'а уже были реализованы нами внутри werf (ещё до выхода Helm 3), но пользователи всё равно просили и ждали.

Из других изменений в werf — стабилизация публичного сервера синхронизации для распределённого режима работы и альфа-версия нового алгоритма очистки стадий и образов.

Подробности см. в прикрепленном сообщении и по ссылкам из него.
Forwarded from Timofey Kirillov
⛵️⛵️ Базовые команды Helm 3 доступны в альфа-канале werf через подкоманду werf helm-v3. Добавлена поддержка отслеживания вывода деплоя через kubedog в эти команды. Пример использования:

werf helm-v3 upgrade --namespace myproj myproj . --install --create-namespace --atomic --wait 

Поддерживаются все аннотации werf, связанные с отслеживанием ресурсов: https://ru.werf.io/documentation/reference/deploy_process/deploy_into_kubernetes.html#%D0%BD%D0%B0%D1%81%D1%82%D1%80%D0%BE%D0%B9%D0%BA%D0%B0-%D0%BE%D1%82%D1%81%D0%BB%D0%B5%D0%B6%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F-%D1%80%D0%B5%D1%81%D1%83%D1%80%D1%81%D0%BE%D0%B2

Данная поддержка подкоманд Helm 3 может быть полезна уже сейчас всем тем, кто использует команду werf helm deploy-chart для Helm 2. А мы продолжаем работу по переходу на Helm 3 для команд werf deploy/dismiss и поддержкой остальных доработок (секреты, поддержка replicas autoscaler для 3-way-merge managed fields, adoption ресурсов, автоматическое добавление произвольных аннотаций и лейблов в ресурсы чарта и пр.).

🗞📰 Подпишись на issue, чтобы следить за дальнейшими работами по Helm 3: https://github.com/werf/werf/issues/1606

🌏🪐 Доехала до stable версия werf, которая использует публичный сервер синхронизации для распределённого режима работы. Подробнее в предыдущем посте: https://xn--r1a.website/werf_ru/13337

🧹🧹 Новый алгоритм очистки стадий и образов на основе истории git включён по умолчанию в alpha канале (начиная с версии v1.1.22-alpha6) для любых стратегий тегирования. В дальнейшем эта версия распространится и на другие каналы. Рекомендуется ознакомиться с новыми настройками и логикой работы на страницах: https://ru.werf.io/documentation/configuration/cleanup.html и https://ru.werf.io/documentation/reference/cleaning_process.html#%D0%B0%D0%BB%D0%B3%D0%BE%D1%80%D0%B8%D1%82%D0%BC-%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D1%8B-%D0%BE%D1%87%D0%B8%D1%81%D1%82%D0%BA%D0%B8-%D0%BF%D0%BE-%D0%B8%D1%81%D1%82%D0%BE%D1%80%D0%B8%D0%B8-git.

🐎🐎 Начаты работы по параллельной сборке образов, объявленных в werf.yaml.

Скоро:
⛵️⛵️ Полная поддержка Helm 3.
🐎🐎 Параллельная сборка образов, объявленных в werf.yaml.
🧤🧹 Доделки связанные с авто-очисткой локального хоста от старых docker-образов при использовании распределённой сборки.
🐳 Официальная поддержка запуска werf в docker (docker-образ с werf, возможность работы в Kubernetes — пока в привилигерованном режиме, документация).
Оказывается, прошлую версию нашего плагина для Grafana — statusmap panel (https://github.com/flant/grafana-statusmap) — скачали более 2 миллионов раз! Интересно, каких показателей достигнет новый релиз, представленный в прошлом месяце…
Уже сегодня начинается главное мероприятие по Kubernetes, которое вынужденно перешло в виртуальное пространство: KubeCon + CloudNativeCon Europe 2020.

Компания «Флант» участвует в нём с докладом про одну из своих Open Source-разработок — shell-operator. Он прозвучит в четверг (20 августа): https://kccnceu20.sched.com/event/cfea816a0ae640df39193f45baf18cc1
Первые отзывы в Twitter на выступление компании Флант на KubeCon Europe 2020. Само видео мы, конечно, опубликуем при первой возможности.
Forwarded from Timofey Kirillov
Helmfile теперь можно использовать с werf!

Доступно в alpha / beta каналах в версии 1.1.22.

1. Устанавливаем последний helmfile.
2. Устанавливаем плагин helm-diff (его требует helmfile для helm):

source $(multiwerf use 1.1 alpha --as-file)
werf helm-v3 plugin install https://github.com/databus23/helm-diff


3. Подготавливаем helmfile.yaml:

repositories:
- name: stable
url: https://kubernetes-charts.storage.googleapis.com
releases:
- name: mytraefik
namespace: aaa
createNamespace: true
wait: true
chart: stable/traefik
labels:
name: traefik-public
version: 1.86.2


4. Устанавливаем переменную окружения WERF_HELM3_MODE=1 — это превратит cli-интерфейс бинарника werf в совместимый с helm-3, затем запускаем helmfile с опцией --helm-binary.

source $(multiwerf use 1.1 alpha --as-file)
export WERF_HELM3_MODE=1
helmfile -b $(multiwerf werf-path 1.1 alpha) apply


5. Проверяем установленный релиз:

export WERF_HELM3_MODE=1
werf list --namespace aaa
# или
unset WERF_HELM3_MODE
werf helm-v3 list --namespace aaa


Есть нюансы:
- helmfile не поддерживает live-вывод, когда вызывает helm/werf и печатает на экран вывод только когда helm/werf завершится;
- для получения вывода kubedog надо использовать флаг wait: true в манифесте helmfile (это соответствует стандартному helm-флагу: helm upgrade --wait или werf helm-v3 upgrade --wait);
- несмотря на отсутствие live-вывода в helmfile использование werf всё равно полезней, т.к. в итоге этот вывод будет получен, и werf как обычно завершит процесс деплоя если обнаружит ошибку (fail fast);
- для получения live-вывода рекомендуется использовать чистый werf.

Полная поддержка helm-3 в стандартных командах werf deploy/dismiss — скоро.
Испанский DevOps-инженер Miguel Fontanilla написал замечательную обзорную статью и мини-руководство по нашей утилите werf для сборки образов и их деплоя в Kubernetes. Прочитать (и поделиться с англоязычными коллегами) можно здесь: https://kubesandclouds.com/index.php/2020/09/01/werf-gitops/