fix(hermes): убрать optional у secretKeyRef — схема app-template 5.2.1 его не разрешает #73

Merged
hermes merged 1 commit from refs/pull/73/head into main 2026-09-20 19:08:42 +00:00
hermes commented 2026-09-20 19:08:02 +00:00 (Migrated from git.grachevko.ru)

Что чиним

После мёржа #70 реконсиляция упала (8 попыток, HelmRelease в UpgradeFailed):

Helm upgrade failed for release grachevko/hermes with chart app-template@5.2.1:
values don't meet the specifications of the schema(s) in the following chart(s):
app-template:
- at '/controllers/hermes/containers/app/env/HERMES_DASHBOARD_OIDC_CLIENT_ID':
  'anyOf' failed ... additional properties 'valueFrom' not allowed

Причина: у env.<KEY>.valueFrom.secretKeyRef в этой версии чарта нет свойства optional. Проверено по первоисточнику — values.schema.json из артефакта чарта в кэше source-controller (http://source-controller.flux-system.svc.cluster.local./ocirepository/flux-system/app-template/sha256:1cf49aeb…tar.gz):

"secretKeyRef": { "type": "object", "additionalProperties": false,
  "properties": { "name": {...}, "key": {...} }, "required": ["name", "key"] }

optional в схеме есть только у envFrom[].secretRef. Под из-за этого и не перезапускался: релиз остался на версии v6, то есть работающая инсталляция не пострадала, но и RO rootfs/API/OIDC не применились.

Правка

Убраны два optional: true у secretKeyRef (client-id и client-secret). Цена: под ждёт появления Secret hermes-oidc, а не стартует без него — Secret уже собирается ExternalSecret из Vault kv/ai/hermes, где ключ oidc-client-id есть.

Как проверено

values из этого файла прогнаны против values.schema.json чарта app-template 5.2.1 локально (jsonschema 4.26.0): SCHEMA OK. Схема сохранена в /opt/data/cache/scratch/app-template-5.2.1.schema.json — тот же приём заложен в задачу #72 (валидировать values в CI, чтобы такое ловилось до мёржа, а не реконсиляцией).

После мёржа

Ожидается: Helm upgrade проходит, под пересоздаётся (strategy Recreate), отрабатывает initContainer fix-run, стартует gateway с readOnlyRootFilesystem: true и drop: ALL, поднимается API-сервер на 8642, дашборд регистрирует OIDC-провайдер Zitadel.

## Что чиним После мёржа #70 реконсиляция упала (8 попыток, `HelmRelease` в `UpgradeFailed`): ``` Helm upgrade failed for release grachevko/hermes with chart app-template@5.2.1: values don't meet the specifications of the schema(s) in the following chart(s): app-template: - at '/controllers/hermes/containers/app/env/HERMES_DASHBOARD_OIDC_CLIENT_ID': 'anyOf' failed ... additional properties 'valueFrom' not allowed ``` **Причина:** у `env.<KEY>.valueFrom.secretKeyRef` в этой версии чарта нет свойства `optional`. Проверено по первоисточнику — `values.schema.json` из артефакта чарта в кэше source-controller (`http://source-controller.flux-system.svc.cluster.local./ocirepository/flux-system/app-template/sha256:1cf49aeb…tar.gz`): ``` "secretKeyRef": { "type": "object", "additionalProperties": false, "properties": { "name": {...}, "key": {...} }, "required": ["name", "key"] } ``` `optional` в схеме есть только у `envFrom[].secretRef`. Под из-за этого и не перезапускался: релиз остался на версии v6, то есть работающая инсталляция не пострадала, но и RO rootfs/API/OIDC не применились. ## Правка Убраны два `optional: true` у `secretKeyRef` (client-id и client-secret). Цена: под ждёт появления Secret `hermes-oidc`, а не стартует без него — Secret уже собирается ExternalSecret из Vault `kv/ai/hermes`, где ключ `oidc-client-id` есть. ## Как проверено `values` из этого файла прогнаны против `values.schema.json` чарта app-template 5.2.1 локально (jsonschema 4.26.0): **`SCHEMA OK`**. Схема сохранена в `/opt/data/cache/scratch/app-template-5.2.1.schema.json` — тот же приём заложен в задачу #72 (валидировать values в CI, чтобы такое ловилось до мёржа, а не реконсиляцией). ## После мёржа Ожидается: `Helm upgrade` проходит, под пересоздаётся (strategy Recreate), отрабатывает initContainer `fix-run`, стартует gateway с `readOnlyRootFilesystem: true` и `drop: ALL`, поднимается API-сервер на 8642, дашборд регистрирует OIDC-провайдер Zitadel.
Sign in to join this conversation.
No reviewers
No labels
No milestone
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
grachevko/home-ops!73
No description provided.