18 Commits

Author SHA1 Message Date
OdooSky Tower
3f64281708 feat(tower): GitLab cutover env — TOWER_GIT_HOST + TOWER_GITLAB_* (Phase 2C) 2026-05-20 13:46:55 +02:00
OdooSky v3
e1aa016f06 fix(ops): flip TOWER_OPS_PERSIST_PATH to .db for SQLite mode in 0.76.24 2026-05-07 22:09:34 +02:00
Tower Bot
b2244d0c02 tower 0.61.8 — Phase H substrate completeness
bootstrap.sh now writes /etc/rancher/k3s/registries.yaml BEFORE k3s
starts, mapping the cluster-platform-v3 registry's in-cluster DNS
hostname to the localhost NodePort the host's containerd can reach.
Without this, every Odoo Pod ImagePullBackOffs on its addon
initContainers — caught 2026-04-30 mid-migrate.

ApplyConnectSecrets now also applies docker-mirror-pull (a docker-
config-json Secret in odoosky-system) when the platform-side env
provides DOCKER_MIRROR_{REGISTRY,USERNAME,PASSWORD}. Until today
the customer cluster's BuildKit Jobs sat in Init:0/1 for ~14 minutes
waiting on a non-existent docker-mirror-pull, blocking every
addon-build the migrate flow needs.

Both gaps were silent — neither produced a visible error in Tower's
op log; the cluster sat there waiting on a kubelet that couldn't
resolve and a Job that couldn't mount. Connect now fully provisions
both at substrate setup time, no manual post-step.

Threads:
  - new EnvProvider methods: DockerMirror{Registry,Username,Password}
  - new ConnectSecrets fields + applier method
  - chart values pull from existingSecret keys DOCKER_MIRROR_*
  - bootstrap.sh idempotent registries.yaml + systemctl restart on
    re-Connect to pick up updated routing rules
2026-04-30 12:50:25 +03:00
pro-777
00147789b1 ingress: route /connect and /teardown to backend (customer-facing token endpoints) 2026-04-29 13:57:51 +03:00
340622f113 chart: inject TOWER_VERSION env from image tag
Lets the substrate endpoint surface the running tag without depending on Go ldflag tricks. Single source of truth: bumping the chart tag automatically bumps what the UI displays.
2026-04-29 07:30:12 +00:00
36cbdd4866 tower-tower ClusterRole: add tenant-control rules (services/proxy + workloads + jobs) 2026-04-28 14:00:39 +00:00
389a171093 chart: tower-data PVC for OpStore persistence 2026-04-28 07:47:26 +00:00
d7d9262b89 chart: backend volumeMount + TOWER_OPS_PERSIST_PATH env 2026-04-28 07:47:24 +00:00
1ec53b5291 chart: support imagePullSecrets on tower-frontend 2026-04-27 11:38:16 +00:00
67c4f4a883 chart: support imagePullSecrets on tower-backend 2026-04-27 11:15:29 +00:00
git_admin
8dbd740c4a tower 0.13.0 + tower-ui 0.12.0 — restore any backup, list from S3 2026-04-26 21:43:28 +03:00
git_admin
38cccf89bc tower 0.9.1 — read cluster Secret directly for capacity (RBAC scoped to argocd ns) 2026-04-26 20:49:08 +03:00
git_admin
6150e88ee2 tower 0.9.0 + tower-ui 0.8.0 — capacity bars on Server Detail 2026-04-26 20:47:11 +03:00
git_admin
6d17a877e8 API at /api/* — UI owns clean URLs at /, /instances, /servers 2026-04-26 19:53:51 +03:00
git_admin
b9e47d658c Step 5: tower 0.4.0 — DNS automation via Cloudflare 2026-04-26 19:25:26 +03:00
git_admin
64fb105213 IngressRoute: route /servers to backend 2026-04-26 18:40:42 +03:00
git_admin
753ad486e7 Step 4: enable frontend + path-based routing + tower:0.2.0 2026-04-26 18:17:38 +03:00
git_admin
13a1fcd448 Initial Tower chart 2026-04-26 18:01:44 +03:00