prole/etc
chrisfu 4a8d9cc90d feat: full GKE/prod deployment pipeline from UI to Artifact Registry
## GCP / Cluster Environment Screen
- Auto-populate Cloud tab from conf/prod/gcp.cfg on screen open (org_id,
  billing_account, billing_project, project_id)
- gcloud auth validity checked on screen startup; friendly modal dialog
  streams gcloud auth login output live so user never leaves the app
- Live GKE cluster browser: fetches clusters via gcloud container clusters
  list, displays with checkmark selector, auto-selects saved cluster
- Selecting a cluster runs get-credentials, sets KUBECONFIG/KUBECONTEXT,
  and syncs the region dropdown to the selected cluster's location
- Region dropdown populated live from gcloud compute regions list with
  checkmark on currently selected region; graceful fallback when offline
- New 'GCP Storage' tab with workload->StorageClass mapping (CNPG->premium-rwo,
  Redis/Monitoring->standard-rwo, Garage->garage-hdd) and Fetch from Cluster
- Provider readonly field styled correctly (no solid-black on macOS)
- Stale prole.cfg/conf/prole.cfg symlinks removed; all config I/O now
  resolves env-specific paths via prole_conf.entrypoint_path()

## GKE Autopilot Compatibility (Common Services)
- Synology iSCSI StorageClass and static PVs guarded behind PROLE_MODE!=k8s
  in init_openbao.sh (GKE Autopilot forbids hostPath/iSCSI volumes)
- In-cluster Docker registry (hostPath) skipped in k8s mode; GCP Artifact
  Registry used instead
- Kong renamed knoe-svc-kong in k8s mode; all health-check kubectl calls in
  init_common_services.sh and status_common_services.sh updated accordingly
- DNS endpoints switched from *.prole.org to *.knoe.dev in k8s mode
  (api.knoe.dev, git.knoe.dev, svc.knoe.dev); ingress uses gce class
- New GKE-clean Kong manifests under deploy/opentofu/k8s/manifests/prole/:
  no k3s node affinity, explicit Autopilot resource requests/limits

## Garage S3 Store (GKE)
- New garage-statefulset-gcp.yaml targeting garage-hdd StorageClass
  (pd-standard, avoids SSD_TOTAL_GB quota exhaustion in us-west3)
- New storageclass-gcp-hdd.yaml (pd-standard, Retain, WaitForFirstConsumer)
- GCP StorageClass manifests skipped on re-runs (Autopilot built-ins are
  immutable; skip-if-exists guard added)
- PVC deletion guard extended to cover any storageClass (not just synology)
  so stale claims are cleaned before StatefulSet recreation

## Topology (GKE Autopilot)
- DaemonSet collector skipped in prod mode (forbidden in kube-system by
  GKE Warden); Kubernetes-only node facts path used instead
- All ready GKE nodes assumed cnpg-eligible and monitoring-eligible without
  taint/synology-mount checks (skip_collector + assume_nodes_eligible flags)

## KUBECONFIG / kubectl (k8s mode)
- actions.py: new elif mode==k8s branch sets KUBECONFIG=~/.kube/config
  and injects KUBECONTEXT from prole_cfg_data into script env
- _build_kubectl_cmd falls back to Global.KUBECONTEXT when
  init_cluster.selected_kubectx is empty
- _activate_selected_gke_cluster persists KUBECONFIG/KUBECONTEXT to
  prole_cfg_data and saves prole.cfg immediately after get-credentials

## Database Build Screen (GKE)
- Registry display shows correct Artifact Registry URL
  (<region>-docker.pkg.dev/<project>/<namespace>/knoe-db) in green
- Build+push: gcloud auth configure-docker, auto-creates AR repository
  named after SERVICE_NAMESPACE (e.g. knoe-system) if missing, then
  docker tag + push; falls back to gcr.io if region unavailable
- GCP config loaded from conf/prod/gcp.cfg on every screen entry;
  keys normalised to lowercase so project_id lookup is always consistent

## Config / Namespace persistence
- prole_conf.py activate_environment: symlink creation removed; sets
  CLUSTER_ENV env-var so all subsequent calls resolve correct env directory
- knoe/ui/screens/__init__.py: startup config load uses entrypoint_path()
  instead of hardcoded conf/prole.cfg; seeds SERVICE_NAMESPACE=knoe-system
  for managed envs so Common Services never defaults to 'default'
- cfg.py _save_prole_cfg: saves to env-specific path via entrypoint_path()
- etc/prole_cfg.sh: removed all ln -snf symlink creation

Co-authored-by: Junie <junie@jetbrains.com>
2026-04-04 12:38:16 -07:00
..
lib/shell Rename Prole storage objects to Synology and sync deployment updates 2026-03-22 21:50:02 -07:00
.ollama_parser.py Enhance build system with 'make test' and fix installer test debris. Added 'make test' to Makefile with 'pyconv' (black) integration and coverage summary. Reformatted codebase with black. Fixed 'install.py' test bug where MagicMock objects created directory debris by improving mocking and patching in 'tests/test_navigation.py', 'tests/test_service_layer_navigation.py', and 'tests/test_install_logic.py'. 2026-02-25 14:55:05 -08:00
archive_garage_backup.py Enhance build system with 'make test' and fix installer test debris. Added 'make test' to Makefile with 'pyconv' (black) integration and coverage summary. Reformatted codebase with black. Fixed 'install.py' test bug where MagicMock objects created directory debris by improving mocking and patching in 'tests/test_navigation.py', 'tests/test_service_layer_navigation.py', and 'tests/test_install_logic.py'. 2026-02-25 14:55:05 -08:00
build_db.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
build-a-bao.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
common_core_lib.sh Refactor shell library structure; relocate helpers under etc/lib/shell/ and update references 2026-03-16 21:44:58 -07:00
deploy_pipeline.sh Checkpoint: Refactor installer UI and update Supabase deployment strategy 2026-02-03 14:55:05 -08:00
final_deployment.sh Refactor namespace handling to use prole.cfg as sole source of truth 2026-03-02 18:50:53 -08:00
home.sh Remove prole-db-manager; simplify deployment via prole-authority; fix pg18 downgrade & cluster name 2026-03-01 20:40:44 -08:00
hostprobe-myrddin.yaml Milestone: monitoring deployment + svc firewall persistence 2026-03-19 12:19:02 -07:00
hostprobe-pi.yaml Milestone: monitoring deployment + svc firewall persistence 2026-03-19 12:19:02 -07:00
hosts.txt feat(scripts): introduce DNS sync script for Samba AD and hosts management 2026-01-02 20:56:44 -08:00
init_ansible.sh Summary of recent repairs and infrastructure updates 2026-02-15 17:51:57 -08:00
init_argocd.sh feat: GKE production deployment — CNPG + GCS backups + Google Workspace SSO 2026-04-01 10:41:55 -07:00
init_certmgr.sh Fix installer ctx apply flow and registry namespace 2026-03-07 10:35:27 -08:00
init_cnpg_backup.sh Stabilize CNPG reset/update flow and finalize 3-node recovery 2026-03-27 21:54:53 -07:00
init_cnpg_gke.sh feat: GKE production deployment — CNPG + GCS backups + Google Workspace SSO 2026-04-01 10:41:55 -07:00
init_common_core.sh Checkpoint: cluster env UI layout + k3s common services 2026-02-27 14:35:14 -08:00
init_common_services.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_database_options.sh feat: Add GitOps (Gitea) and Supabase integration, plus database options 2026-02-26 18:32:15 -08:00
init_db_manager.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
init_forego.sh iscsi/installer: provision merlin d004; fix etc script runtime 2026-03-16 21:30:52 -07:00
init_forgejo.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
init_garage_store.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_gitea.sh chore: checkpoint k3s deployment and knoe updates 2026-03-31 23:15:54 -07:00
init_gitlab.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_k3s_registry.sh Fix DB image build and k3s registry/CNPG robustness 2026-03-29 19:35:37 -07:00
init_k8s.sh Remove prole-db-manager; simplify deployment via prole-authority; fix pg18 downgrade & cluster name 2026-03-01 20:40:44 -08:00
init_kdc.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_kerberos_test.sh Refactor shell layout; add shellspec + authority 2026-03-13 09:19:56 -07:00
init_kerberos.sh Make init-script secret checks warning-only and unblock Next 2026-03-31 23:15:54 -07:00
init_knoe_auth.sh Fix kube context handling and monitoring eligibility 2026-03-23 13:50:29 -07:00
init_knoe_users.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_knoe-db-reset.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
init_kong.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_monitoring.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_nginx_ingress.sh Fix kube context handling and monitoring eligibility 2026-03-23 13:50:29 -07:00
init_ollama.sh fix: UI runtime fixes, idempotent k3d KUBECONFIG, Ollama screen redesign, mode-conditional init scripts, Grafana restart, real-time docker build output, shell script fixes, test updates 2026-02-20 23:19:48 -08:00
init_openbao.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
init_opentofu.sh installer: preflight DB secrets + bootstrap OpenTofu password 2026-03-13 16:38:38 -07:00
init_port_forwards.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
init_postgrest.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
init_redis.sh feat: service layer — GitLab, Redis, DB ArgoCD app, Kong, monitoring updates 2026-04-01 20:38:57 -07:00
init_registry.sh Update conf, k8s registry, knoe UI screens, etc init scripts, and scan data 2026-04-02 23:40:16 -07:00
init_service_layer.sh feat: service layer — GitLab, Redis, DB ArgoCD app, Kong, monitoring updates 2026-04-01 20:38:57 -07:00
init_supabase_ports.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
k3d_route_fix.sh Remove prole-db-manager; simplify deployment via prole-authority; fix pg18 downgrade & cluster name 2026-03-01 20:40:44 -08:00
knoe-db-passwwd.sh Rename prole-db to knoe-db, add knoe-auth as cluster-internal KDC 2026-03-22 22:16:21 -07:00
prole_cfg.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
render_manifest.py Rename Prole storage objects to Synology and sync deployment updates 2026-03-22 21:50:02 -07:00
repair_pipeline.sh Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00
set-k3s-token-vault.sh Add prole_cfg.sh sourcing for configuration management 2026-01-30 23:37:32 -08:00
status_common_services.sh feat: full GKE/prod deployment pipeline from UI to Artifact Registry 2026-04-04 12:38:16 -07:00
status.sh Align installer namespace/topology handling and add regression tests 2026-03-29 23:45:56 -07:00
sync-prole-cfg.py Checkpoint: rename installer to knoe + harden db build context 2026-03-22 01:45:21 -07:00