iac/aero/roles/sarex_stack/tasks
emelinda e1a81d3dd8 Processing: секрет yc-s3 для подов задач workflows
Задача падала ещё до обращения к S3, на разборе конфигурации:
  pydantic ValidationError for S3AccountModel
  Value error, Expecting value: line 1 column 1 (char 0)
  ValueError: SERVICE_S3 is not valid
"Expecting value ... char 0" — это разбор пустоты: файла по пути не было.

Секрет secrets/minio/apps/processing из Vault при этом настроен верно, и
движок его видит (S3_SERVICE_ACCOUNT=/vault/secrets/processing-s3). Но в
поды задач движок его НЕ передаёт — для них у него отдельный механизм,
зашитый в код:

  services[S3Storage] = Service{
      CredentialsName: "yc-s3",
      CredentialsPath: "/etc/sarex/yc-s3",
      Envs: {"SERVICE_S3": `{"service_account":
             "/etc/sarex/yc-s3/yc-s3-service-account.json"}`},
  }
  (pkg/kube_services/services.go)

То есть он монтирует в Job обычный Secret с именем yc-s3 из namespace
задач (JOBS_NAMESPACE=processing). Ни имя секрета, ни путь, ни имя файла
не настраиваются.

vault-agent сюда не дотягивается по построению: поды задач движок создаёт
сам во время работы, аннотаций инжекции у них нет. Поэтому секрет заводит
ansible — tasks/app-secrets.yml, шаблон app-secrets.yaml.j2 и описание в
k8s_file_secrets. Формат содержимого повторяет
engine/yc-s3-service-account.json из compose-стека и совпадает с тем, что
vault-agent рендерит самому движку.

Манифест рендерится, применяется и сразу удаляется — в нём креды открытым
текстом, ровно как у секретов реестра. Namespace объявлен в том же
манифесте: на холодном старте Flux до слоя apps ещё не дошёл, а apply в
несуществующий namespace упал бы. Повторное создание безвредно, так же
заведён namespace vault.
2026-08-09 23:30:53 +03:00
..
app-secrets.yml Processing: секрет yc-s3 для подов задач workflows 2026-08-09 23:30:53 +03:00
databases.yml BIM: расширение ltree и задача досоздания баз в живой СУБД 2026-08-09 21:55:27 +03:00
gitea-sync.yml feat(aero): базовый слой контура — Vault↔k3s, GitOps-синхронизация, выход наружу 2026-08-08 09:36:08 +03:00
main.yml BIM: расширение ltree и задача досоздания баз в живой СУБД 2026-08-09 21:55:27 +03:00
platform.yml Processing: секрет yc-s3 для подов задач workflows 2026-08-09 23:30:53 +03:00
registry-secrets.yml feat(ansible): add private registry configuration for k3s and Flux with secure key handling 2026-08-03 15:40:07 +03:00
registry.yml feat(ansible): add private registry configuration for k3s and Flux with secure key handling 2026-08-03 15:40:07 +03:00
reload.yml Measurements пишет в общий бакет контура + перекат нагрузок в ansible 2026-08-09 11:58:06 +03:00
vault-k8s.yml feat(aero): базовый слой контура — Vault↔k3s, GitOps-синхронизация, выход наружу 2026-08-08 09:36:08 +03:00