core.augur
Read-probe живого доступа к внешней системе (Vault / Prometheus / ELK) через брокер Augur. Soul-side.
В отличие от обычной модели (всё внешнее резолвится сервером до отправки шага на хост), core.augur.fetch запрашивает значение в момент применения на хосте — для случаев, которые нельзя отдать заранее: короткоживущий dynamic-secret, live-метрика как условие шага, чтение из ELK в ходе прогона. Запрос идёт через Keeper — внешний credential на хост не попадает.
Verb-модуль: единственное состояние — fetch. changed=false всегда, конструктивно.
| State (verb) | Назначение | changed |
|---|---|---|
fetch | Запросить значение из внешней системы у брокера Augur в момент apply. | false всегда (read-probe не меняет хост). |
Параметры
Заголовок раздела «Параметры»| Param | Тип | Обяз. / дефолт | Описание |
|---|---|---|---|
omen | string | required | Имя внешней системы (Omen), к которой запрашивается доступ. |
query | string | required | Запрос: KV-путь (Vault, в т.ч. #field-проекция), PromQL (Prometheus), index-query (ELK). Сверяется против allow-list на Keeper-е. |
Контракт ошибок
Заголовок раздела «Контракт ошибок»Шаг падает (значение не отдаётся) при любом из:
- denied — авторизация Keeper-а отклонила (Omen не найден / хост не имеет доступа / query вне allow-list);
- error — сбой исполнения на Keeper-е / внешней системе (недоступна);
- default-deny — отсутствие явного
okтрактуется как запрет; - брокер недоступен в прогоне (push-режим без активной сессии);
- таймаут / разрыв до ответа.
Сообщение об ошибке несёт имя Omen-а для диагностики, но не query и не само значение.
# Live-чтение dynamic-secret в момент apply (данные приходят через Keeper).- name: Fetch DB credentials at apply time module: core.augur.fetch register: db_creds params: omen: vault-prod query: database/creds/app-role#password
- name: Write app config module: core.file.rendered params: path: /etc/app/config.yml template: app-config.tmpl vars: db_password: "${ register.db_creds.value }"- Master-credential на хост никогда не попадает — хост получает только значение inline через Keeper.
- Авторизация — на Keeper-е, не на хосте. Хост шлёт запрос; Keeper сверяет идентичность хоста (из mTLS-сертификата) → права → allow-list. Любая непройденная проверка → отказ без значения. Default-deny: отсутствие явного
okникогда не «продолжает». - Минимизация секрета в диагностике — в сообщения об ошибке не уходят ни
query, ни значение, ни токен. - Output: при
ok—inline_dataкак есть: скаляр заворачивается в{ "value": <scalar> }, map — натуральный объект. Проекцию#fieldделает Keeper — хост получает уже спроецированное значение.
См. также
Заголовок раздела «См. также»- Каталог core-модулей
core.http/core.exec— другие read-probe (changed=false).core.vault.kv-read— keeper-side чтение Vault с audit-event-ом.