Инструмент консистентной доставки

What you Git
is what you get!*

  • Git — единый источник истины.
  • Сборка. Деплой в Kubernetes. Постоянная синхронизация.
  • Open Source. Написано на Go.

Это GitOps, но по-другому!

Git, будучи единым источником истины, позволяет добиться детерминированного и идемпотентного процесса доставки по всему пайплайну. Возможно применение как из CI-системы, так и с оператором (фича в разработке и будет доступна в ближайшее время).
  • werf интегрирует git, Helm и Docker.
  • Может быть встроена в любую CI/CD-систему (например, GitLab CI)
    для построения пайплайнов, используя предложенный набор команд:
    • werf build-and-publish;
    • werf deploy;
    • werf dismiss;
    • werf cleanup.
  • Open Source, написана на Go.
  • werf — это не SAAS, а представитель высокоуровневых
    CI/CD-инструментов нового поколения.
  • Удобный деплой
    • Полная совместимость с Helm.
    • Простое использование RBAC.
    • Выкаченное приложение в Kubernetes == готовое к использованию.
    • Обнаружение проблем и быстрое завершение проблемного выката.
    • Получение в режиме реального времени информации о процессе деплоя.
    • Настраиваемый детектор ошибок и готовности ресурсов Kubernetes с использованием их аннотаций.
  • Управление всем жизненным циклом образа
    • Сборка образов с Dockerfile либо с нашим синтаксисом, учитывая особенности инкрементальной сборкой (основанной на истории Git), используя Ansible и многие другие особенности сборщика werf.
    • Публикация образов в Docker registry, используя множество различных схем тегирования.
    • Выкат приложения в Kubernetes.
    • Очистка Docker registry, основанная на встроенных политиках и используемых в Kubernetes-кластерах образах приложения.
Узнайте полный список возможностей
Активная разработка
  • 4
    релиза в неделю
    в среднем за прошлый год
  • 1400
    инсталляций
    в больших и маленьких проектах
  • 1470
    звезд на GitHub
    поддержите проект ;)
  • Управление полным жизненным циклом приложения
    Управляйте процессом сборки, выкатом приложения в Kubernetes и очисткой неиспользуемых образов.
  • Удобный деплой в Kubernetes
    Выкатывайте приложение в Kubernetes, используя стандартный менеджер пакетов с интерактивным отслеживанием процесса и получением событий и логов в режиме реального времени.
  • Легко начать
    Начните использовать werf с существующим Dockerfile.
  • Уменьшение размера образа
    Сократите размер, исключив исходный код, инструменты сборки и кэши с помощью артефактов и монтирования.
  • Сборка образов с Ansible
    Используйте популярный и мощный IaaS-инструмент.
  • Инструменты отладки сборочного процесса
    Получайте доступ к любой стадии во время сборки с помощью опций интроспекции.
  • Компактный файл конфигурации
    Собирайте несколько образов, используя один файл конфигурации, повторно используйте общие части с помощью Go-шаблонов.
Растущее дружелюбное сообщество
Мы всегда на связи с сообществом
в Telegram, Twitter и Slack.
Дорожная карта
Цели
  • Полнофункциональная версия werf, хорошо работающая на единственном хосте при выполнении всех операций werf (сборка, деплой и очистка).
  • Проверенные подходы и готовые решения
    для работы с популярными CI-системами.
  • Развитие сборщика. Сборка образов без привязки к локальному Docker-демону и сборка в кластере Kubernetes.
Этапы
  • #1616 Использование 3-х стороннего слияния
    при обновлении Helm-релизов.
  • #1184 Тегирование, основанное на контенте.
  • #2199 Поддержка большинства сервисов,
    предоставляющих Docker registry.
  • #1614 Распределенная сборка с общим Docker registry.
  • #1940 Локальная разработка приложений с werf.
  • #2200 Параллельная сборка образов.
  • #1617 Готовые рецепты для интеграции
    с наиболее популярными CI-системами.
  • #1606 Поддержка Helm 3.
  • #1618 Kaniko-подобная сборка без привязки
    к локальному Docker-демону.
Исчерпывающая документация
Документация содержит более 100 статей, включающих описание частых случаев (первые шаги, деплой в Kubernetes, интеграция с CI/CD-системами и другое), полное описание функций, архитектуры и CLI-команд.