feat(cert-manager): trust-manager + Bundle с внутренним CA #78

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

Закрывает #77 в части механизма (дедлайн по ротации CA остаётся в issue).

Что делает

  • cert-manager/trust-manager — оператор trust-manager v0.25.0 из oci://quay.io/jetstack/charts/trust-manager (тег сверен живым манифестом в quay: слой application/vnd.cncf.helm.chart.content.v1.tar+gzip, version/appVersion = v0.25.0). crds.keep: true — иначе снос релиза унёс бы CRD Bundle вместе с ними; install.crds/upgrade.crds не пишу: CRD идут шаблоном чарта, а не каталогом crds/. app.trust.namespace: cert-manager зафиксирован явно (от него зависит, найдётся ли Secret internal-ca).
  • cert-manager/internal-ca — Bundle/internal-ca: sources = [useDefaultCAs, secret internal-ca/tls.crt], target.configMap.key: ca.crt. Отдельная Kustomization с dependsOn: trust-manager — CRD Bundle появляется только вместе с релизом.

Почему useDefaultCAs обязателен — потребитель подменяет себе SSL_CERT_FILE на этот файл, а это выбрасывает системный стор образа: без публичных корней у приложения отвалится любой внешний https. defaultPackage.enabled: true (дефолт чарта) загружает пакет CA в под trust-manager.

Сверка

  • kubesearch: quay.io/jetstack/charts/trust-manager — 19 деплоев, у свежих 0.24.0/v0.25.0; тег подтверждён в реестре.
  • /opt/data/tools/flate test all -p ./kubernetes/flux/cluster — 86 passed (в выводе ✓ OCIRepository cert-manager/trust-manager).

Следующий шаг (отдельным MR) — Open WebUI в ns grachevko: собственный Cluster/postgres, вход через Zitadel, ключ Hermes API из сгенерированного в кубе Secret — там этот ConfigMap и понадобится.

Что НЕ делает — не трогает текущую копию бандла в томе Hermes (/opt/data/ca-internal-bundle.pem): её можно убрать отдельно, когда захочется.

Закрывает #77 в части механизма (дедлайн по ротации CA остаётся в issue). **Что делает** - `cert-manager/trust-manager` — оператор `trust-manager` v0.25.0 из `oci://quay.io/jetstack/charts/trust-manager` (тег сверен живым манифестом в quay: слой `application/vnd.cncf.helm.chart.content.v1.tar+gzip`, `version`/`appVersion` = v0.25.0). `crds.keep: true` — иначе снос релиза унёс бы CRD `Bundle` вместе с ними; `install.crds`/`upgrade.crds` не пишу: CRD идут шаблоном чарта, а не каталогом `crds/`. `app.trust.namespace: cert-manager` зафиксирован явно (от него зависит, найдётся ли Secret `internal-ca`). - `cert-manager/internal-ca` — `Bundle/internal-ca`: `sources = [useDefaultCAs, secret internal-ca/tls.crt]`, `target.configMap.key: ca.crt`. Отдельная Kustomization с `dependsOn: trust-manager` — CRD `Bundle` появляется только вместе с релизом. **Почему `useDefaultCAs` обязателен** — потребитель подменяет себе `SSL_CERT_FILE` на этот файл, а это выбрасывает системный стор образа: без публичных корней у приложения отвалится любой внешний https. `defaultPackage.enabled: true` (дефолт чарта) загружает пакет CA в под trust-manager. **Сверка** - kubesearch: `quay.io/jetstack/charts/trust-manager` — 19 деплоев, у свежих 0.24.0/v0.25.0; тег подтверждён в реестре. - `/opt/data/tools/flate test all -p ./kubernetes/flux/cluster` — **86 passed** (в выводе `✓ OCIRepository cert-manager/trust-manager`). **Следующий шаг (отдельным MR)** — Open WebUI в ns `grachevko`: собственный `Cluster/postgres`, вход через Zitadel, ключ Hermes API из сгенерированного в кубе Secret — там этот ConfigMap и понадобится. **Что НЕ делает** — не трогает текущую копию бандла в томе Hermes (`/opt/data/ca-internal-bundle.pem`): её можно убрать отдельно, когда захочется.
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!78
No description provided.