Commit Graph

15 Commits

Author SHA1 Message Date
OdooSky v3
ec63eca5ba feat(chart): expose Odoo runtime knobs (B-1) — version 0.1.11
- Adds odoo.{workers,limitTime*,limitMemory*,maxCronThreads,serverWideModules,dbFilter,extraArgs} knobs
- New instance.odooArgs helper renders flags only when set
- Empty odoo block byte-identical to previous chart output
2026-05-13 21:42:33 +02:00
OdooSky v3
4a8dc61a92 feat(chart): rip out pg dual-mode shim — ESO-only (0.1.8)
A-Chunk 3 finalisation. All live instances are migrated to ESO,
and Tower 0.77.2 makes the migrate + template-deploy paths also
emit ESO-shape overlays (wizard always has). The
`{{- if not .Values.postgres.passwordVaultPath }}` shim in
postgres-secret.yaml has zero remaining production callers.

Changes:
  - DELETE templates/postgres-secret.yaml (dual-mode legacy path)
  - DELETE _helpers.tpl `instance.pgPassword` (only consumed by
    postgres-secret.yaml; no other callers)
  - UNWRAP templates/postgres-password-externalsecret.yaml — the
    outer `{{- if .Values.postgres.passwordVaultPath }}` conditional
    is removed; the template now renders unconditionally and the
    chart's `required` directive on tenant.id is the new boundary
    (chart render fails loud if Tower forgot to populate it)
  - SIMPLIFY values.yaml — drop the legacy `postgres.password` field
    and the dual-mode documentation. `passwordVaultPath` stays as an
    operator-visible advisory string but the chart hardcodes the
    path shape from tenant.id + instance.code

Chart 0.1.7 → 0.1.8. helm template + helm lint verified locally;
helm template with tenant.id missing fails loud with a clear
error pointing the operator at the chart line + the source of the
missing value.

The live instances (erp/erp18v3/v19) carry tenant.id + passwordVaultPath
in their overlays already; this chart version produces the same
manifests for them on next ArgoCD reconcile — no observable change.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 13:56:40 +03:00
OdooSky v3
96071aec8e feat(chart): pg password via ExternalSecret/OpenBao (A-Chunk 1)
Per-instance Postgres password sourced from OpenBao via External
Secrets Operator. Dual-mode for the migration window:

  - postgres.passwordVaultPath unset → legacy postgres-secret.yaml
    renders with .Values.postgres.password (helm lookup + random
    fallback, bit-exact existing behaviour for live instances).
  - postgres.passwordVaultPath set → postgres-password-externalsecret.yaml
    renders an ExternalSecret that produces the same <release>-pg
    Secret (POSTGRES_USER/PASSWORD/DB) from OpenBao path
    `tenants/<tenant.id>/instances/<instance.code>/pg`.

Exactly one of the two templates ships per instance (mutually
exclusive `if`s on .Values.postgres.passwordVaultPath). The Postgres
StatefulSet envFroms <release>-pg unchanged.

OpenBao policy already grants the per-cluster ESO read on
`v3/data/tenants/<tenantID>/*` (buildEsoPolicy in tower's
openbao_auth_setup.go) — the new instances/<code>/pg subpath is
covered. No policy change required.

A `required` directive on the ExternalSecret asserts tenant.id is
present when passwordVaultPath is set — fails loud at helm template
time if Tower forgot to populate it.

deletionPolicy: Retain on the ExternalSecret. Postgres PGDATA on
disk hashes to the password in the Secret; an accidental ESO
removal must not cascade into the Secret disappearing.

Chart 0.1.6 → 0.1.7. Verified locally: helm template both modes,
helm lint clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-12 12:56:54 +03:00
OdooSky v3
965a650b10 feat(chart): pin 19.0 / 17.0 / 16.0 in pinnedTags map 2026-05-06 13:55:58 +02:00
OdooSky v3
93473919ae feat(platform): pinnedTags map — chart resolves major to exact nightly 2026-05-06 13:11:47 +02:00
OdooSky v3
3eaa6381db feat(platform): pin Odoo + postgres to mirror — fix rolling-tag regression 2026-05-06 11:57:49 +02:00
OdooSky v3
6425526314 feat(chart): air-gap-friendly Odoo + Postgres image refs (B.10) 2026-05-05 17:59:17 +02:00
OdooSky v3
8ab695b93d fix(ingress): gate tenants-default-retry middleware on values flag (B.11) 2026-05-05 17:53:06 +02:00
00c9be8fdf chart: sizes table now includes per-tier PVC defaults (filestore + database) 2026-04-27 17:16:48 +00:00
043be6ff47 chart: realistic sizes table (tiny=sandbox, small=recommended minimum) 2026-04-27 14:58:51 +00:00
Tower Deploy
bad53c4636 Addon initContainer materialization: per-addon image runs as initContainer + copies content into shared emptyDir mounted at /mnt/extra-addons 2026-04-27 00:59:51 +03:00
git_admin
3a63da9609 Backups: pg_dump → S3 (MEGA S4); drop local PVC 2026-04-26 21:17:34 +03:00
git_admin
24f879db01 Add daily backups (CronJob + dedicated PVC, 7-day retention) 2026-04-26 21:01:17 +03:00
git_admin
97666c4e2f Add named sizes table (tiny/small/medium/large) 2026-04-26 20:04:39 +03:00
git_admin
a915b31588 Initial chart import from local infrastructure/ 2026-04-26 17:46:59 +03:00