README

Утилита forge позволяет динамически обновлять конфигурацию файлов docker compose и docker swarm. Для контроля версий используется хранилище Vault.

Конфигурация

Для работы утилиты необходимо создать конфигурационный файл forge.yml в директории /var/forge/. Пример:

vault:
  url: http://127.0.0.1:8080
  token: vault_token

Docker compose

Спецификация позволяет отслеживать образ и его тег. Пример:

docker-compose.yaml
services:
  registry:
    image: {{.Image}}:{{.Tag}}
    container_name: registry
    restart: unless-stopped
    ports:
      - 5050:5050
    volumes:
      - ./conf:/registry/conf.d:ro
      - registry-data:/registry/var

volumes:
  registry-data:

При инициализации конфигурационного файла в хранилище Vault появится секрет: init_compose

Docker swarm

Спецификация позволяет отслеживать названия образа и его тег и количество реплик. Пример:

При инициализации конфигурационного файла в хранилище Vault появится секрет: init_swarm

Использование

Перед инициализацией конфигурационного файла необходимо создать шаблон и расположить его в каталоге var/forge/templates.

Инициализация конфигурационных файла разрешена только из списка доступных шаблонов.

template

Выводит список доступных шаблонов.

env

init

Сопоставляет шаблон указанного файла и создает vault secret исходя из его спецификации.

параметры:

  • <project> название проекта.

флаги:

  • -t файл конфигурации;

  • -m спецификация файла. По-умолчанию compose. Разрешенные значения: compose | swarm

пример команды:

set

Обновляет параметры модели указанного проекта согласно спецификации.

параметры:

  • <project> название проекта.

флаги:

  • -p параметр, который необходимо обновить. Можно указать несколько.

пример команды:

Для спецификации docker swarm можно обновлять один произвольный параметр или указать сразу два.

get

Выводит информацию о текущей конфигурации указанного проекта.

параметры:

  • <project> название проекта.

флаги:

  • -c вывод конфигурационного файла.

пример команды:

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

versions

Выводит информацию о версиях конфигурации указанного проекта.

параметры:

  • <project> название проекта.

пример команды:

rollback

Откатывает конфигурацию проекта до указанной версии.

параметры:

  • <project> название проекта.

флаги:

  • -v версия конфигурации в Vault.

пример команды:

deploy

enable completion

bash

Last updated