Wardhold

Агент

Сервер без Kubernetes — тоже потребитель секретов

Между кластерами и пайплайнами живёт огромный слой обычных машин: легаси-VM, docker-compose, юниты systemd. Для них есть агент — тот же бинарь в долгоживущем режиме, который держит файлы и окружение процесса в актуальном состоянии.

Один YAML — и файл всегда свежий

url: https://app.wardhold.ru
token_file: /etc/wardhold/agent.token
poll_interval: 30s

files:
  - secret: backend/db
    path: /run/wardhold/db.env
    format: dotenv          # dotenv | shell | json | template

exec:
  command: ["myapp", "--config", "/etc/myapp.conf"]
  env_from: [backend/db]    # в окружение, не на диск
  on_change: restart        # restart | signal:SIGHUP | none

Запись атомарна: сначала временный файл с нужными правами, потом переименование. Права выставляются до появления данных, по умолчанию — 0600.

Как агент ведёт себя в бою

Ротация без гонокработает

Опрашиваются метаданные; содержимое запрашивается только при смене версии и именно той версии, которую агент увидел. Опрос метаданных не засоряет журнал чтений содержимого.

Отказ хранилища не роняет сервисработает

При ошибках агент живёт на последнем известном состоянии и повторяет попытки с растущей паузой. Файлы не обнуляются, процесс не перезапускается впустую.

Нет кеша на дискеработает

Единственная материализация значений — сами приёмники. Класть их на tmpfs — рекомендация из документации.

Проверка подписи ответовв плане

Ключ инстанса и конверт подписи уже реализованы на сервере; закрепление ключа агентом — следующий шаг.

Разовый прогон тоже умеет

Ключ --once делает один проход: получить значения, отрендерить файлы, выйти. Удобно как подготовительный шаг соседнего юнита systemd, если долгоживущий процесс в схеме не нужен. Пример юнита есть в документации.

Начать

Аккаунт в облаке — за минуту

Регистрация открыта: почта и пароль. Организация, проект и личный сейф создаются сразу, платить за личное использование не нужно.