From 36313e8f6f17346c03b3a9460840c00c1736871a Mon Sep 17 00:00:00 2001 From: emelinda Date: Mon, 10 Aug 2026 00:10:31 +0300 Subject: [PATCH] =?UTF-8?q?Processing:=20vault-=D0=B0=D0=BD=D0=BD=D0=BE?= =?UTF-8?q?=D1=82=D0=B0=D1=86=D0=B8=D0=B8=20=D0=B4=D0=BB=D1=8F=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B4=D0=BE=D0=B2=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=20(VA?= =?UTF-8?q?ULT=5FROLE/SA/MOUNT=5FPATH)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Сборка contour_a03d37da-dirty2 умеет не монтировать в Job готовый Secret, а вешать на него аннотации vault-agent — тогда файл с кредами кладёт агент, и Secret в namespace задач не нужен. Так это и работает в UGMK, где никакого yc-s3 в namespace нет. В master workflows-engine этого кода нет (сборка с невлитой ветки), поэтому набор переменных восстановлен по строкам бинарника: VAULT_ROLE, VAULT_SA, VAULT_MOUNT_PATH плюс аннотации role/secret-volume-path/agent-inject-*. В base задан только VAULT_USE=true, остальных трёх нет ни в одном кластере репозитория. Оттого аннотации выходили неполными, агент в под задачи ничего не клал и файл читался как пустой. Значения предварительные: точный путь Vault, который движок запрашивает, будет виден в аннотациях созданного пода задачи — по нему и уточним. --- apps/processing/aero/kustomization.yaml | 40 +++++++++++++++++++++++++ 1 file changed, 40 insertions(+) diff --git a/apps/processing/aero/kustomization.yaml b/apps/processing/aero/kustomization.yaml index 229aba5..d4e957f 100644 --- a/apps/processing/aero/kustomization.yaml +++ b/apps/processing/aero/kustomization.yaml @@ -234,6 +234,46 @@ patches: path: /spec/values/services/backend/envs/71/value/_default value: linux + # --- Vault для ПОДОВ ЗАДАЧ, а не для самого движка ---------------------- + # В сборке contour_a03d37da-dirty2 движок умеет не монтировать в Job + # готовый Secret, а вешать на него аннотации vault-agent — тогда файл + # с кредами кладёт агент, и Secret в namespace задач не нужен вовсе. + # Именно так это работает в UGMK, где никакого yc-s3 в namespace нет. + # + # В master workflows-engine этого кода нет (сборка с невлитой ветки), + # поэтому набор переменных восстановлен по строкам бинарника: + # VAULT_ROLE, VAULT_SA, VAULT_MOUNT_PATH + # vault.hashicorp.com/{role,secret-volume-path,agent-inject-file-*, + # agent-inject-secret-*,agent-inject-template-*} + # yc-s3, yc-s3-service-account.json, /etc/sarex/yc-s3 + # + # В base задан только VAULT_USE=true — остальных трёх нет НИ В ОДНОМ + # кластере репозитория, поэтому аннотации выходили неполными, агент в под + # задачи ничего не клал, и файл читался как пустой: + # ValueError: SERVICE_S3 is not valid + # Expecting value: line 1 column 1 (char 0) + # + # Переменных нет в base, поэтому op: add с "-" (добавление в конец + # списка), а не replace по индексу. + - op: add + path: /spec/values/services/backend/envs/- + value: + name: VAULT_ROLE + value: + _default: processing + - op: add + path: /spec/values/services/backend/envs/- + value: + name: VAULT_SA + value: + _default: processing-vault + - op: add + path: /spec/values/services/backend/envs/- + value: + name: VAULT_MOUNT_PATH + value: + _default: secrets + # S3 из Vault, как у api. - op: add path: /spec/values/services/backend/podAnnotations/_default/vault.hashicorp.com~1agent-inject-secret-processing-s3