Vault source: настройка и тесты

Документ описывает source.type: vault и быстрый стенд на Docker для экспериментов.

Что делает provider

vault source читает секреты из Vault KV и формирует JSON-артефакт с snapshot:

Конфиг source

Пример:

source:
  type: vault
  config:
    address: http://127.0.0.1:18200
    token_env: VAULT_TOKEN
    mount: iobackup
    kv_version: 2
    include_paths:
      - ""
    timeout: 30s

Поля:

Docker-стенд тестового Vault

Файлы:

Запуск:

docker compose -f ./examples/dev/vault/docker-compose.yml up -d

Сид тестовых секретов:

chmod +x ./examples/dev/vault/seed-dev.sh
VAULT_ADDR=http://127.0.0.1:18200 VAULT_TOKEN=root ./examples/dev/vault/seed-dev.sh

Проверка:

curl -sS -H "X-Vault-Token: root" \
  "http://127.0.0.1:18200/v1/iobackup/metadata/?list=true"

Пример backup job

Готовый пример (каталог всех job-примеров):

Запуск:

export VAULT_TOKEN=root

go run ./cmd/iobackupctl --server http://127.0.0.1:8735 --token-env IOBACKUP_API_TOKEN \
  job submit ./examples/vault.local.yaml

go run ./cmd/iobackupctl --server http://127.0.0.1:8735 --token-env IOBACKUP_API_TOKEN \
  job run vault-local

Проверка артефакта:

go run ./cmd/iobackupctl --server http://127.0.0.1:8735 --token-env IOBACKUP_API_TOKEN artifact list

Остановка стенда:

docker compose -f ./examples/dev/vault/docker-compose.yml down -v