From b1bc1cac39f55bf0aaff079029579d86d99cf7f1 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Wed, 11 Feb 2026 12:28:49 -0500 Subject: [PATCH 01/13] feat: track develop branch for balancer manifests --- .holo/sources/balancer.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.holo/sources/balancer.toml b/.holo/sources/balancer.toml index b433150..bc8533d 100644 --- a/.holo/sources/balancer.toml +++ b/.holo/sources/balancer.toml @@ -1,3 +1,3 @@ [holosource] url = "https://github.com/CodeForPhilly/balancer-main.git" -ref = "refs/heads/main" +ref = "refs/heads/develop" From 5738785e096a7aee3ef0422f59c1eedff7b57557 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:27:22 -0400 Subject: [PATCH 02/13] feat: install cloudnative-pg operator and philly-cluster --- .../cloudnative-pg/_cfp-sandbox-cluster.toml | 1 + .../infra/cloudnative-pg/operator.toml | 4 ++++ .holo/sources/cloudnative-pg-chart.toml | 3 +++ infra/cloudnative-pg/namespaces.yaml | 9 +++++++++ infra/cloudnative-pg/philly-cluster.yaml | 17 +++++++++++++++++ 5 files changed, 34 insertions(+) create mode 100644 .holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml create mode 100644 .holo/branches/k8s-manifests/infra/cloudnative-pg/operator.toml create mode 100644 .holo/sources/cloudnative-pg-chart.toml create mode 100644 infra/cloudnative-pg/namespaces.yaml create mode 100644 infra/cloudnative-pg/philly-cluster.yaml diff --git a/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml b/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml new file mode 100644 index 0000000..df0119e --- /dev/null +++ b/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml @@ -0,0 +1 @@ +# include in cfp-sandbox-cluster diff --git a/.holo/branches/k8s-manifests/infra/cloudnative-pg/operator.toml b/.holo/branches/k8s-manifests/infra/cloudnative-pg/operator.toml new file mode 100644 index 0000000..71776e8 --- /dev/null +++ b/.holo/branches/k8s-manifests/infra/cloudnative-pg/operator.toml @@ -0,0 +1,4 @@ +[holomapping] +holosource = "cloudnative-pg-chart" +root = "charts/cloudnative-pg" +files = "**" diff --git a/.holo/sources/cloudnative-pg-chart.toml b/.holo/sources/cloudnative-pg-chart.toml new file mode 100644 index 0000000..2ed8670 --- /dev/null +++ b/.holo/sources/cloudnative-pg-chart.toml @@ -0,0 +1,3 @@ +[holosource] +url = "https://github.com/cloudnative-pg/cloudnative-pg.git" +ref = "refs/tags/v1.23.1" diff --git a/infra/cloudnative-pg/namespaces.yaml b/infra/cloudnative-pg/namespaces.yaml new file mode 100644 index 0000000..7c8ff7a --- /dev/null +++ b/infra/cloudnative-pg/namespaces.yaml @@ -0,0 +1,9 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: cloudnative-pg +--- +apiVersion: v1 +kind: Namespace +metadata: + name: postgresql diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml new file mode 100644 index 0000000..de11f5b --- /dev/null +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -0,0 +1,17 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Cluster +metadata: + name: philly-cluster + namespace: postgresql +spec: + instances: 3 + imageName: ghcr.io/cloudnative-pg/postgresql:16.1 + storage: + size: 20Gi + bootstrap: + initdb: + database: philly_db + owner: philly_admin + postgresql: + parameters: + shared_preload_libraries: 'vector' From dd47e78d8d78f3e005465d71a609c69690a7cf7f Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:28:42 -0400 Subject: [PATCH 03/13] feat: bootstrap balancer database in philly-cluster --- infra/cloudnative-pg/philly-cluster.yaml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml index de11f5b..da32495 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -10,8 +10,10 @@ spec: size: 20Gi bootstrap: initdb: - database: philly_db - owner: philly_admin + database: balancer + owner: balancer + secret: + name: balancer-db-credentials postgresql: parameters: shared_preload_libraries: 'vector' From dfcbbc6be58fb4ee9098d9e672865e817fce6951 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:29:30 -0400 Subject: [PATCH 04/13] feat: use autogenerated credentials for philly-cluster --- infra/cloudnative-pg/philly-cluster.yaml | 3 --- 1 file changed, 3 deletions(-) diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml index da32495..394b586 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -11,9 +11,6 @@ spec: bootstrap: initdb: database: balancer - owner: balancer - secret: - name: balancer-db-credentials postgresql: parameters: shared_preload_libraries: 'vector' From ae653ea6dad2ee034cdc8420883aab3303dd7dd3 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:30:50 -0400 Subject: [PATCH 05/13] refactor: simplify namespaces and move philly-cluster to cloudnative-pg namespace --- infra/cloudnative-pg/namespaces.yaml | 5 ----- infra/cloudnative-pg/philly-cluster.yaml | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/infra/cloudnative-pg/namespaces.yaml b/infra/cloudnative-pg/namespaces.yaml index 7c8ff7a..e689a91 100644 --- a/infra/cloudnative-pg/namespaces.yaml +++ b/infra/cloudnative-pg/namespaces.yaml @@ -2,8 +2,3 @@ apiVersion: v1 kind: Namespace metadata: name: cloudnative-pg ---- -apiVersion: v1 -kind: Namespace -metadata: - name: postgresql diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml index 394b586..28c4a83 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -2,7 +2,7 @@ apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: name: philly-cluster - namespace: postgresql + namespace: cloudnative-pg spec: instances: 3 imageName: ghcr.io/cloudnative-pg/postgresql:16.1 From 9ad1129090b14768f9cb38cf95369f4560ed04f9 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:31:50 -0400 Subject: [PATCH 06/13] feat: enable multi-tenancy and update CNPG operator to v1.25.0 --- .holo/sources/cloudnative-pg-chart.toml | 2 +- infra/cloudnative-pg/philly-cluster.yaml | 22 +++++++++++++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/.holo/sources/cloudnative-pg-chart.toml b/.holo/sources/cloudnative-pg-chart.toml index 2ed8670..38e08b5 100644 --- a/.holo/sources/cloudnative-pg-chart.toml +++ b/.holo/sources/cloudnative-pg-chart.toml @@ -1,3 +1,3 @@ [holosource] url = "https://github.com/cloudnative-pg/cloudnative-pg.git" -ref = "refs/tags/v1.23.1" +ref = "refs/tags/v1.25.0" diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml index 28c4a83..a5359aa 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -8,9 +8,25 @@ spec: imageName: ghcr.io/cloudnative-pg/postgresql:16.1 storage: size: 20Gi - bootstrap: - initdb: - database: balancer + + managed: + roles: + - name: balancer + login: true + passwordSecret: + name: balancer-db-credentials + postgresql: parameters: shared_preload_libraries: 'vector' +--- +apiVersion: postgresql.cnpg.io/v1 +kind: Database +metadata: + name: balancer + namespace: cloudnative-pg +spec: + name: balancer + owner: balancer + cluster: + name: philly-cluster From 3f2168c31df17d0f63551dab89aa32b5eab1119c Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:32:37 -0400 Subject: [PATCH 07/13] refactor: rename cluster to codeforphilly-cluster --- infra/cloudnative-pg/philly-cluster.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/philly-cluster.yaml index a5359aa..817849a 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/philly-cluster.yaml @@ -1,7 +1,7 @@ apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: - name: philly-cluster + name: codeforphilly-cluster namespace: cloudnative-pg spec: instances: 3 @@ -29,4 +29,4 @@ spec: name: balancer owner: balancer cluster: - name: philly-cluster + name: codeforphilly-cluster From d82b1e61cec82746eca49d09f347530a04458597 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Sat, 18 Apr 2026 19:35:29 -0400 Subject: [PATCH 08/13] feat: use sandbox overlay for balancer --- .holo/branches/k8s-manifests/balancer/manifests.toml | 2 +- balancer/kustomization.yaml | 12 +----------- 2 files changed, 2 insertions(+), 12 deletions(-) diff --git a/.holo/branches/k8s-manifests/balancer/manifests.toml b/.holo/branches/k8s-manifests/balancer/manifests.toml index 8e3f3dc..7ad08d3 100644 --- a/.holo/branches/k8s-manifests/balancer/manifests.toml +++ b/.holo/branches/k8s-manifests/balancer/manifests.toml @@ -1,4 +1,4 @@ [holomapping] holosource = "balancer" -root = "deploy/manifests/balancer/base" +root = "deploy/manifests/balancer" files = "**" diff --git a/balancer/kustomization.yaml b/balancer/kustomization.yaml index 6a32015..0d8fcc7 100644 --- a/balancer/kustomization.yaml +++ b/balancer/kustomization.yaml @@ -4,10 +4,7 @@ kind: Kustomization namespace: balancer resources: - - manifests/namespace.yaml - - manifests/deployment.yaml - - manifests/service.yaml - - manifests/ingress.yaml + - manifests/overlays/sandbox images: - name: ghcr.io/codeforphilly/balancer-main/app @@ -30,10 +27,3 @@ patches: - op: replace path: /spec/rules/0/host value: sandbox.balancerproject.org - - target: - kind: Namespace - name: balancer - patch: |- - - op: replace - path: /metadata/name - value: dev From ca86da65de7b5999ad535a7671cf3a6d30c95547 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Fri, 1 May 2026 14:32:21 -0400 Subject: [PATCH 09/13] refactor: rename cluster to shared-cluster and move database manifest to app repo --- balancer/database.yaml | 10 ++++++++++ balancer/kustomization.yaml | 8 ++++++++ .../{philly-cluster.yaml => shared-cluster.yaml} | 13 +------------ 3 files changed, 19 insertions(+), 12 deletions(-) create mode 100644 balancer/database.yaml rename infra/cloudnative-pg/{philly-cluster.yaml => shared-cluster.yaml} (63%) diff --git a/balancer/database.yaml b/balancer/database.yaml new file mode 100644 index 0000000..4676c6b --- /dev/null +++ b/balancer/database.yaml @@ -0,0 +1,10 @@ +apiVersion: postgresql.cnpg.io/v1 +kind: Database +metadata: + name: balancer + namespace: cloudnative-pg +spec: + name: balancer + owner: balancer + cluster: + name: shared-cluster diff --git a/balancer/kustomization.yaml b/balancer/kustomization.yaml index 0d8fcc7..cf45c7e 100644 --- a/balancer/kustomization.yaml +++ b/balancer/kustomization.yaml @@ -5,12 +5,20 @@ namespace: balancer resources: - manifests/overlays/sandbox + - database.yaml images: - name: ghcr.io/codeforphilly/balancer-main/app newTag: "0.0.0-dev.20260211012449" patches: + - target: + kind: Database + name: balancer + patch: |- + - op: replace + path: /metadata/namespace + value: cloudnative-pg - target: kind: Ingress name: balancer diff --git a/infra/cloudnative-pg/philly-cluster.yaml b/infra/cloudnative-pg/shared-cluster.yaml similarity index 63% rename from infra/cloudnative-pg/philly-cluster.yaml rename to infra/cloudnative-pg/shared-cluster.yaml index 817849a..186c7ca 100644 --- a/infra/cloudnative-pg/philly-cluster.yaml +++ b/infra/cloudnative-pg/shared-cluster.yaml @@ -1,7 +1,7 @@ apiVersion: postgresql.cnpg.io/v1 kind: Cluster metadata: - name: codeforphilly-cluster + name: shared-cluster namespace: cloudnative-pg spec: instances: 3 @@ -19,14 +19,3 @@ spec: postgresql: parameters: shared_preload_libraries: 'vector' ---- -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: balancer - namespace: cloudnative-pg -spec: - name: balancer - owner: balancer - cluster: - name: codeforphilly-cluster From 9ee0cc99cca8706275b73614fd8c4bef9bfa3885 Mon Sep 17 00:00:00 2001 From: Christopher Tineo Date: Fri, 1 May 2026 14:37:51 -0400 Subject: [PATCH 10/13] refactor: remove redundant database manifest (now managed by balancer-main) --- balancer/database.yaml | 10 ---------- balancer/kustomization.yaml | 8 -------- 2 files changed, 18 deletions(-) delete mode 100644 balancer/database.yaml diff --git a/balancer/database.yaml b/balancer/database.yaml deleted file mode 100644 index 4676c6b..0000000 --- a/balancer/database.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: postgresql.cnpg.io/v1 -kind: Database -metadata: - name: balancer - namespace: cloudnative-pg -spec: - name: balancer - owner: balancer - cluster: - name: shared-cluster diff --git a/balancer/kustomization.yaml b/balancer/kustomization.yaml index cf45c7e..0d8fcc7 100644 --- a/balancer/kustomization.yaml +++ b/balancer/kustomization.yaml @@ -5,20 +5,12 @@ namespace: balancer resources: - manifests/overlays/sandbox - - database.yaml images: - name: ghcr.io/codeforphilly/balancer-main/app newTag: "0.0.0-dev.20260211012449" patches: - - target: - kind: Database - name: balancer - patch: |- - - op: replace - path: /metadata/namespace - value: cloudnative-pg - target: kind: Ingress name: balancer From 0ffe275f1e672cbe554a4a4d83e5c2afb3e651ba Mon Sep 17 00:00:00 2001 From: Chris Alfano Date: Mon, 4 May 2026 12:39:04 -0400 Subject: [PATCH 11/13] fix(balancer): pin holosource to v1.1.3 tag and revert changes --- .holo/branches/k8s-manifests/balancer/manifests.toml | 2 +- .holo/sources/balancer.toml | 2 +- balancer/kustomization.yaml | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/.holo/branches/k8s-manifests/balancer/manifests.toml b/.holo/branches/k8s-manifests/balancer/manifests.toml index 7ad08d3..8e3f3dc 100644 --- a/.holo/branches/k8s-manifests/balancer/manifests.toml +++ b/.holo/branches/k8s-manifests/balancer/manifests.toml @@ -1,4 +1,4 @@ [holomapping] holosource = "balancer" -root = "deploy/manifests/balancer" +root = "deploy/manifests/balancer/base" files = "**" diff --git a/.holo/sources/balancer.toml b/.holo/sources/balancer.toml index bc8533d..e0c6690 100644 --- a/.holo/sources/balancer.toml +++ b/.holo/sources/balancer.toml @@ -1,3 +1,3 @@ [holosource] url = "https://github.com/CodeForPhilly/balancer-main.git" -ref = "refs/heads/develop" +ref = "refs/tags/v1.1.3" diff --git a/balancer/kustomization.yaml b/balancer/kustomization.yaml index 0d8fcc7..6a32015 100644 --- a/balancer/kustomization.yaml +++ b/balancer/kustomization.yaml @@ -4,7 +4,10 @@ kind: Kustomization namespace: balancer resources: - - manifests/overlays/sandbox + - manifests/namespace.yaml + - manifests/deployment.yaml + - manifests/service.yaml + - manifests/ingress.yaml images: - name: ghcr.io/codeforphilly/balancer-main/app @@ -27,3 +30,10 @@ patches: - op: replace path: /spec/rules/0/host value: sandbox.balancerproject.org + - target: + kind: Namespace + name: balancer + patch: |- + - op: replace + path: /metadata/name + value: dev From 32642b26e66a8be559552fc8a7c1ffef2085cdca Mon Sep 17 00:00:00 2001 From: Chris Alfano Date: Mon, 4 May 2026 12:32:36 -0400 Subject: [PATCH 12/13] fix(holo): repair cnpg helm source and remove empty mapping MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit PR #135 left .holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml empty (only a comment), causing `holomapping config not found` and aborting the projection workflow on main. The root _cfp-sandbox-cluster.toml already includes infra/cloudnative-pg/*.yaml from the workspace, so this nested mapping is redundant — delete it. Also retarget the cnpg helm holosource: the chart lives in cloudnative-pg/charts, not the operator's source repo (cloudnative-pg/cloudnative-pg). Pin to cloudnative-pg-v0.23.1 (chart appVersion 1.25.0, matching PR #135's stated operator version). Co-Authored-By: Claude Opus 4.7 (1M context) --- .../infra/cloudnative-pg/_cfp-sandbox-cluster.toml | 1 - .holo/sources/cloudnative-pg-chart.toml | 4 ++-- 2 files changed, 2 insertions(+), 3 deletions(-) delete mode 100644 .holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml diff --git a/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml b/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml deleted file mode 100644 index df0119e..0000000 --- a/.holo/branches/k8s-manifests/infra/cloudnative-pg/_cfp-sandbox-cluster.toml +++ /dev/null @@ -1 +0,0 @@ -# include in cfp-sandbox-cluster diff --git a/.holo/sources/cloudnative-pg-chart.toml b/.holo/sources/cloudnative-pg-chart.toml index 38e08b5..20f266a 100644 --- a/.holo/sources/cloudnative-pg-chart.toml +++ b/.holo/sources/cloudnative-pg-chart.toml @@ -1,3 +1,3 @@ [holosource] -url = "https://github.com/cloudnative-pg/cloudnative-pg.git" -ref = "refs/tags/v1.25.0" +url = "https://github.com/cloudnative-pg/charts.git" +ref = "refs/tags/cloudnative-pg-v0.23.1" From f242c504095682cf54943108300e2421012d6692 Mon Sep 17 00:00:00 2001 From: Chris Alfano Date: Mon, 4 May 2026 12:52:34 -0400 Subject: [PATCH 13/13] feat(holo): add helm3 lens to render cnpg operator chart PR #135 projected the cloudnative-pg helm chart into infra/cloudnative-pg/operator/ but no lens was configured to render it, so k8s-normalize choked on the chart's Chart.yaml (which has no `kind` field). Add a helm3 lens scoped to the chart subdirectory so workspace YAMLs at infra/cloudnative-pg/ remain untouched. Sets `include_crds = true` since cnpg ships its CRDs (Cluster, Database, etc.) inside templates/crds/ and the deployment depends on them. Co-Authored-By: Claude Opus 4.7 (1M context) --- .holo/lenses/cloudnative-pg.toml | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 .holo/lenses/cloudnative-pg.toml diff --git a/.holo/lenses/cloudnative-pg.toml b/.holo/lenses/cloudnative-pg.toml new file mode 100644 index 0000000..dd7938b --- /dev/null +++ b/.holo/lenses/cloudnative-pg.toml @@ -0,0 +1,14 @@ +[hololens] +container = "ghcr.io/hologit/lenses/helm3:latest" + +[hololens.input] +root = "infra/cloudnative-pg/operator" +files = "**" + +[hololens.output] +merge = "replace" + +[hololens.helm] +namespace = "cloudnative-pg" +release_name = "cloudnative-pg" +include_crds = true