prole/knoe/core
chrisfu 3312c39b1f feat: GCP/GKE CNPG hardening, Artifact Registry traffic light, and knoe-system namespace fixes
UI screens
- database.py: fix mode detection to use env_key priority (prod→k8s, service→k3s) so stale DEPLOYMENT_MODE never overrides the user's chosen environment
- database.py: Registry status reads ARTIFACT_REGISTRY_AVAILABLE persisted by cluster screen; uses SERVICE_NAMESPACE for Artifact Registry repo name
- cluster.py: add Artifact Registry traffic light (amber→green/red) to prod section; _check_artifact_registry_async persists ARTIFACT_REGISTRY_AVAILABLE into Global cfg
- cluster.py: re-trigger Artifact Registry check after GKE cluster selection so the light re-evaluates once region is available from KUBECONTEXT
- cluster_nodes.py: fix TclError on Python 3.14 — pady=(2,0) tuple → pady=2 scalar
- __init__.py: seed knoe-system namespace when saved value is "default", not only when empty
- services.py: replace hardcoded "Prole DB" log string with dynamic cnpg_cluster name

Core ops
- cloudnative_pg.py: replace one-shot Barman plugin retry with 6-attempt loop; first cert-manager/x509 failure triggers rollout restart + 30 s CA propagation wait; subsequent failures back off up to 60 s per attempt
- cloudnative_pg.py: TLS CA CN now uses cluster_name instead of hardcoded "Prole CNPG CA"
- registry.py, garage_store.py: refactored into per-mode modules (k3d/k3s/k8s registry and garage store, shared _garage_common)

Deploy / config
- deploy/gcp/gke/knoe-db.yaml: GKE-specific CNPG cluster manifest (rw/ro/r on separate nodes with premium-rwo storage)
- etc/init_common_services.sh, modes/k8s/knoe-db/.version: updated for current deploy
- kong-deployment.yaml: updated manifest

Tests
- test_cluster_nodes_render_smoke.py: add pack/grid, winfo_children, winfo_reqheight, update_idletasks, grid_slaves to dummy widgets; monkeypatch tk.Label so CNPG placement render completes without a real Tkinter root

Co-authored-by: Junie <junie@jetbrains.com>
2026-04-04 19:36:08 -07:00
..
ops feat: GCP/GKE CNPG hardening, Artifact Registry traffic light, and knoe-system namespace fixes 2026-04-04 19:36:08 -07:00
__init__.py Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00
actions.py feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
build_context.py Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
cnpg_placement.py Add CNPG placement planner with persistence and integration tests 2026-03-23 00:06:47 -07:00
controller.py Refine installer orchestration and Supabase rendering paths 2026-03-31 23:15:54 -07:00
env.py chore: checkpoint k3s deployment and knoe updates 2026-03-31 23:15:54 -07:00
milestones.py fix(gitlab,infra): ARM64 RPi service cluster – GitLab deploy in gitlab ns on gandalf 2026-04-02 20:15:11 -07:00
monitor.py Refine installer orchestration and Supabase rendering paths 2026-03-31 23:15:54 -07:00
ollama_scan.py Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00
policy.py Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00
prod_config.py feat: GKE production deployment — CNPG + GCS backups + Google Workspace SSO 2026-04-01 10:41:55 -07:00
repair_pipeline_cli.py Refine installer orchestration and Supabase rendering paths 2026-03-31 23:15:54 -07:00
storage_probe.py feat: add storage probing and operational service updates 2026-03-26 09:44:23 -07:00
stream_exec.py Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00
topology.py feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00