Skip to content

refactor(flux): dissolve leftover kubernetes/flux entry tree - #1439

Merged
Aviator-Coding merged 2 commits into
mainfrom
fm/homeops-split-closing-stage-s16
Aug 25, 2026
Merged

refactor(flux): dissolve leftover kubernetes/flux entry tree#1439
Aviator-Coding merged 2 commits into
mainfrom
fm/homeops-split-closing-stage-s16

Conversation

@Aviator-Coding

Copy link
Copy Markdown
Owner

Intent

Finish stage S16 of the home-ops structural split: dissolve the old kubernetes/flux/ entry structure after S15 is merged and live-converged. Remove the now-empty old paths and any compatibility indirection, leaving kubernetes/clusters/main as the single clean Flux entry point.

S15 (PR #1438) is already merged and live-verified: cluster-apps Ready at ./kubernetes/apps/main, cluster-meta Ready at ./kubernetes/apps/base/flux-system/meta, flux-system Ready at kubernetes/clusters/main (its own reconciliation survived), no namespace entered deletion, self-inventory empty. Only the 3 GPU-pending ai Kustomizations are not Ready.

This PR is structure-only with zero behavior diff: delete kubernetes/flux/ (the inert cluster/ks.yaml leftover) and the empty kubernetes/apps/kustomization.yaml; retarget .taskfiles/flux and kubernetes/mod.just render-local-ks from kubernetes/flux/cluster to kubernetes/clusters/main; update AGENTS.md/README so they no longer describe a mixed-state or inert flux/ tree. Do not change any live Kustomization spec.path, do not touch the rook-ceph prune:false Kustomizations, and do not garbage-collect any Kustomization or namespace.

flux-local render of kubernetes/clusters/main must prove the final tree equals the S15 tree (leaf-identical and normalised-Kustomization-identical). Do not merge this PR. After merge (later), live-verify convergence again.

This is a new branch because S15 squash-merged fm/homeops-split-closing-stage; the S16 commit sits on origin/main.

What Changed

  • Remove the inert pre-restructure leftovers: kubernetes/flux/cluster/ks.yaml and the empty kubernetes/apps/kustomization.yaml
  • Point local flux tooling (.taskfiles/flux tests and kubernetes/mod.just render-local-ks) at kubernetes/clusters/main instead of kubernetes/flux/cluster
  • Drop mixed-state / inert-flux/ wording from AGENTS.md, README.md, and the image-pull workflow comment so docs match the single Flux entry point

Risk Assessment

✅ Low: Structure-only deletion of inert kubernetes/flux leftovers plus docs/tool path retargets; live Kustomization paths and rook-ceph prune:false are untouched.

Testing

Compared S15 base to S16 with flux-local get/build on kubernetes/clusters/main: inventory and full leaf renders are byte-identical (SHA c470dc16…), normalised Kustomizations match, old flux entry paths are gone, rook-ceph prune:false is preserved, and task/mod.just/image-pull retargets resolve to clusters/main.

Evidence: S16 validation summary
# S16 structural split validation

## Acceptance
- Delete inert `kubernetes/flux/` and empty `kubernetes/apps/kustomization.yaml`
- Retarget tools to `kubernetes/clusters/main`
- Zero behavior diff vs S15 live tree
- flux-local render leaf-identical + normalised-Kustomization-identical

## Results
| Check | Result |
|------|--------|
| `kubernetes/flux/` removed | PASS (missing) |
| `kubernetes/apps/kustomization.yaml` removed | PASS (missing) |
| `kubernetes/clusters/main` unchanged vs S15 | PASS (diff empty) |
| `kubernetes/apps/{main,base}` unchanged vs S15 | PASS (diff empty) |
| flux-local get ks -A inventory | PASS (identical, 119 lines) |
| flux-local build ks -A leaves | PASS byte-identical SHA256 c470dc16... (1,760,637 bytes) |
| Normalised Flux Kustomizations | PASS identical (116) |
| Leaf resource keys | PASS identical (885) |
| Canonical multi-doc hash | PASS identical (1001 docs) |
| rook-ceph prune:false | PASS (operator + cluster) |
| Paths still pointing at kubernetes/flux | PASS (none) |
| Task/mod.just/image-pull retarget | PASS |

## Commands
`` `
flux-local get ks -A --path kubernetes/clusters/main   # S15 worktree vs S16 worktree
flux-local build ks -A --path kubernetes/clusters/main --skip-secrets
cmp s15-ks-build.yaml s16-ks-build.yaml
`` `

## Note
Live cluster re-verify after merge is out of scope for this PR (per intent).
Evidence: Normalised S15 vs S16 comparison

{ "flux_kustomization_count_s15": 116, "flux_kustomization_count_s16": 116, "normalised_kustomization_identical": true, "leaf_resource_keys_identical": true, "leaf_resource_count_s15": 885, "leaf_resource_count_s16": 885, "canonical_docs_identical": true }

{
  "flux_kustomization_count_s15": 116,
  "flux_kustomization_count_s16": 116,
  "normalised_kustomization_identical": true,
  "leaf_resource_keys_identical": true,
  "leaf_resource_count_s15": 885,
  "leaf_resource_count_s16": 885,
  "canonical_doc_hash_s15": "80d04aa40cccabe810450cc3706d74a1272abdf279fa99aae87ea5ad0df49604",
  "canonical_doc_hash_s16": "80d04aa40cccabe810450cc3706d74a1272abdf279fa99aae87ea5ad0df49604",
  "doc_count_s15": 1001,
  "doc_count_s16": 1001,
  "canonical_docs_identical": true
}
Evidence: Leaf build SHA identity

leaf-identical: true c470dc16b8f95bc01e7536f86abc8f7c40b20b16d787a94b6b229c5913e66fee s15-ks-build.yaml c470dc16b8f95bc01e7536f86abc8f7c40b20b16d787a94b6b229c5913e66fee s16-ks-build.yaml

leaf-identical: true
c470dc16b8f95bc01e7536f86abc8f7c40b20b16d787a94b6b229c5913e66fee  /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s15-ks-build.yaml
c470dc16b8f95bc01e7536f86abc8f7c40b20b16d787a94b6b229c5913e66fee  /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s16-ks-build.yaml
Evidence: S15 flux-local get ks inventory
NAMESPACE                NAME                               PATH                                                                                   
actions-runner-system    actions-runner-maintenance         kubernetes/apps/base/actions-runner-system/maintenance                                 
actions-runner-system    gha-runner-scale-set               kubernetes/apps/base/actions-runner-system/gha-runner-scale-set/app                    
actions-runner-system    gha-runner-scale-set-controller    kubernetes/apps/base/actions-runner-system/gha-runner-scale-set-controller/app         
ai                       agentgateway                       kubernetes/apps/base/ai/agentgateway/app                                               
ai                       agentgateway-crds                  kubernetes/apps/base/ai/agentgateway/crds                                              
ai                       agentgateway-dashboards            kubernetes/apps/base/ai/agentgateway-dashboards/app                                    
ai                       agentmemory                        kubernetes/apps/base/ai/agentmemory/app                                                
ai                       comfyui                            kubernetes/apps/base/ai/comfyui/app                                                    
ai                       hermes                             kubernetes/apps/base/ai/hermes/app                                                     
ai                       searxng                            kubernetes/apps/base/ai/searxng                                                        
ai                       toolhive                           kubernetes/apps/base/ai/toolhive/app                                                   
ai                       toolhive-config                    kubernetes/apps/base/ai/toolhive/config                                                
ai                       toolhive-crds                      kubernetes/apps/base/ai/toolhive/crds                                                  
ai                       toolhive-mcp-servers               kubernetes/apps/base/ai/toolhive/mcp-servers                                           
ai                       vllm                               kubernetes/apps/base/ai/vllm/app                                                       
cert-manager             cert-manager                       kubernetes/apps/base/cert-manager/cert-manager/app                                     
coder                    coder                              kubernetes/apps/base/coder/app                                                         
database                 cloudnative-pg                     kubernetes/apps/base/database/cloudnative-pg/operator                                  
database                 cloudnative-pg-dashboard           kubernetes/apps/base/database/cloudnative-pg/dashboard                                 
database                 dragonfly-operator                 kubernetes/apps/base/database/dragonfly/operator                                       
database                 emqx-cluster                       kubernetes/apps/base/database/emqx/cluster                                             
database                 emqx-exporter                      kubernetes/apps/base/database/emqx/exporter                                            
database                 emqx-operator                      kubernetes/apps/base/database/emqx/operator                                            
database                 jetstream                          kubernetes/apps/base/database/jetstream/app                                            
database                 jetstream-nack                     kubernetes/apps/base/database/jetstream/nack                                           
database                 jetstream-streams                  kubernetes/apps/base/database/jetstream/streams                                        
database                 pgadmin                            kubernetes/apps/base/database/cloudnative-pg/pgadmin                                   
database                 postgres-cluster-17                kubernetes/apps/base/database/cloudnative-pg/cluster-17                                
database                 surrealdb                          kubernetes/apps/base/database/surrealdb/app                                            
downloads                autobrr                            kubernetes/apps/base/downloads/autobrr/app                                             
downloads                bazarr                             kubernetes/apps/base/downloads/bazarr/app                                              
downloads                downloads-maintenance              kubernetes/apps/base/downloads/maintenance/app                                         
downloads                downloads-pvc                      kubernetes/apps/base/downloads/pvc/app                                                 
downloads                lidarr                             kubernetes/apps/base/downloads/lidarr/app                                              
downloads                prowlarr                           kubernetes/apps/base/downloads/prowlarr/app                                            
downloads                radarr                             kubernetes/apps/base/downloads/radarr/app                                              
downloads                readarr                            kubernetes/apps/base/downloads/readarr/app                                             
downloads                reading-glasses                    kubernetes/apps/base/downloads/reading-glasses/app                                     
downloads                recyclarr                          kubernetes/apps/base/downloads/recyclarr/app                                           
downloads                sabnzbd                            kubernetes/apps/base/downloads/sabnzbd/app                                             
downloads                sonarr                             kubernetes/apps/base/downloads/sonarr/app                                              
flux-system              cluster-apps                       kubernetes/apps/main                                                                   
flux-system              cluster-meta                       kubernetes/apps/base/flux-system/meta                                                  
flux-system              flux-instance                      kubernetes/apps/base/flux-system/flux-instance/app                                     
flux-system              flux-operator                      kubernetes/apps/base/flux-system/flux-operator/app                                     
flux-system              headlamp                           kubernetes/apps/base/flux-system/headlamp/app                                          
home-automation          esphome                            kubernetes/apps/base/home-automation/esphome/app                                       
home-automation          home-assistant                     kubernetes/apps/base/home-automation/home-assistant/app                                
home-automation          matter-server                      kubernetes/apps/base/home-automation/matter-server/app                                 
home-automation          zigbee2mqtt                        kubernetes/apps/base/home-automation/zigbee2mqtt/app                                   
kube-system              cilium                             kubernetes/apps/base/kube-system/cilium/app                                            
kube-system              coredns                            kubernetes/apps/base/kube-system/coredns/app                                           
kube-system              descheduler                        kubernetes/apps/base/kube-system/descheduler/app                                       
kube-system              metrics-server                     kubernetes/apps/base/kube-system/metrics-server/app                                    
kube-system              mglru-disable              

... [1228 bytes truncated] ...

p                                                  
media                    jellyfin                           kubernetes/apps/base/media/jellyfin/app                                                
media                    plex                               kubernetes/apps/base/media/plex/app                                                    
media                    seerr                              kubernetes/apps/base/media/seerr/app                                                   
media                    tdarr                              kubernetes/apps/base/media/tdarr/app                                                   
monitoring               alertmanager                       kubernetes/apps/base/monitoring/alertmanager/app                                       
monitoring               gatus                              kubernetes/apps/base/monitoring/gatus/app                                              
monitoring               grafana                            kubernetes/apps/base/monitoring/grafana/app                                            
monitoring               graphite-exporter                  kubernetes/apps/base/monitoring/exporters/graphite-exporter/app                        
monitoring               graphite-exporter-dashboard        kubernetes/apps/base/monitoring/exporters/graphite-exporter/dashboard/truenas-scale    
monitoring               keda                               kubernetes/apps/base/monitoring/keda/app                                               
monitoring               kromgo                             kubernetes/apps/base/monitoring/kromgo/app                                             
monitoring               kube-prometheus-stack              kubernetes/apps/base/monitoring/kube-prometheus-stack/app                              
monitoring               kube-state-metrics                 kubernetes/apps/base/monitoring/kube-state-metrics/app                                 
monitoring               loki                               kubernetes/apps/base/monitoring/loki/app                                               
monitoring               prometheus-operator-crds           kubernetes/apps/base/monitoring/prometheus-operator/crds                               
monitoring               promtail                           kubernetes/apps/base/monitoring/promtail/app                                           
monitoring               tempo                              kubernetes/apps/base/monitoring/tempo/app                                              
monitoring               unpoller                           kubernetes/apps/base/monitoring/unpoller/app                                           
network                  certificates-export                kubernetes/apps/base/network/certificates/export                                       
network                  certificates-import                kubernetes/apps/base/network/certificates/import                                       
network                  cloudflare-dns                     kubernetes/apps/base/network/cloudflare-dns/app                                        
network                  cloudflare-tunnel                  kubernetes/apps/base/network/cloudflare-tunnel/app                                     
network                  echo                               kubernetes/apps/base/network/echo/app                                                  
network                  envoy-gateway                      kubernetes/apps/base/network/envoy-gateway/app                                         
network                  flaresolverr                       kubernetes/apps/base/network/flaresolverr/app                                          
network                  unifi-dns                          kubernetes/apps/base/network/unifi-dns/app                                             
rook-ceph                rook-ceph                          kubernetes/apps/base/rook-ceph/rook-ceph/operator                                      
rook-ceph                rook-ceph-cluster                  kubernetes/apps/base/rook-ceph/rook-ceph/cluster                                       
security                 authentik                          kubernetes/apps/base/security/authentik/app                                            
security                 database-secrets                   kubernetes/apps/base/security/external-secrets/stores/database-secrets                 
security                 external-secrets                   kubernetes/apps/base/security/external-secrets/app                                     
security                 onepassword-connect                kubernetes/apps/base/security/external-secrets/api/onepassword-connect                 
security                 onepassword-store                  kubernetes/apps/base/security/external-secrets/stores/onepassword                      
selfhosted               changedetection                    kubernetes/apps/base/selfhosted/changedetection/app                                    
selfhosted               excalidraw                         kubernetes/apps/base/selfhosted/excalidraw/app                                         
selfhosted               homepage                           kubernetes/apps/base/selfhosted/homepage/app                                           
selfhosted               linkwarden                         kubernetes/apps/base/selfhosted/linkwarden/app                                         
selfhosted               n8n                                kubernetes/apps/base/selfhosted/n8n/app                                                
selfhosted               ntfy                               kubernetes/apps/base/selfhosted/ntfy/app                                               
selfhosted               obsidian-livesync                  kubernetes/apps/base/selfhosted/obsidian-livesync/app                                  
selfhosted               paperless-ngx                      kubernetes/apps/base/selfhosted/paperless-ngx/app                                      
selfhosted               paperless-ngx-media                kubernetes/components/volsync/backup                                                   
selfhosted               rsshub                             kubernetes/apps/base/selfhosted/rsshub/app                                             
selfhosted               rsshub-playwright                  kubernetes/apps/base/selfhosted/rsshub/playwright                                      
selfhosted               syncthing                          kubernetes/apps/base/selfhosted/syncthing/app                                          
selfhosted               syncthing-data                     kubernetes/components/volsync/backup                                                   
system                   fstrim                             kubernetes/apps/base/system/fstrim/app                                                 
system                   generic-device-plugin              kubernetes/apps/base/system/generic-device-plugin/app                                  
system                   intel-device-plugin-gpu            kubernetes/apps/base/system/intel-device-plugin-operator/gpu                           
system                   intel-device-plugin-operator       kubernetes/apps/base/system/intel-device-plugin-operator/app                           
system                   openebs-hostpath                   kubernetes/apps/base/system/openebs-hostpath/app                                       
system                   volsync                            kubernetes/apps/base/system/volsync/app                                                
system-controller        k8tz                               kubernetes/apps/base/system-controller/k8tz/app                                        
system-upgrade           tuppr                              kubernetes/apps/base/system-upgrade/tuppr/app                                          
system-upgrade           tuppr-upgrades                     kubernetes/apps/base/system-upgrade/tuppr/upgrades                                     
- Evidence: S16 flux-local get ks inventory (local file: /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s16-get-ks.txt) - Evidence: S15 flux-local ks leaf build (local file: /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s15-ks-build.yaml) - Evidence: S16 flux-local ks leaf build (local file: /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s16-ks-build.yaml)
Evidence: Structure and retarget checks
=== refs to kubernetes/flux (excluding docs history notes) ===
./AGENTS.md:102:- **`kubernetes/clusters/main/` is the only Flux entry point.** The flux-instance HelmRelease's `values.instance.sync.path` (`kubernetes/apps/base/flux-system/flux-instance/app/helmrelease.yaml` - there is no separate `FluxInstance` CR manifest in this repo) points at `kubernetes/clusters/main`. `cluster-apps.spec.path` is `kubernetes/apps/main`; `cluster-meta.spec.path` is `kubernetes/apps/base/flux-system/meta`. Every namespace lives at `kubernetes/apps/base/<ns>/` (resources) plus overlay `kubernetes/apps/main/<ns>/` (Flux `Kustomization` CRs, one yaml per former `ks.yaml`; `default` is overlay-only scaffolding). A brand-new top-level namespace goes on `kubernetes/apps/main/kustomization.yaml` only. The pre-restructure `kubernetes/flux/` tree is gone.
=== path existence ===
MISSING kubernetes/flux
MISSING kubernetes/apps/kustomization.yaml
EXISTS kubernetes/clusters/main/apps.yaml
EXISTS kubernetes/clusters/main/meta.yaml
=== apps/main yaml path specs diff S15..S16 ===
(empty above means identical)
=== rook-ceph prune ===
19:  prune: false # Never delete this
47:  prune: false # Never delete this
=== render-local-ks style build cluster-apps inventory ===
exit:0
   10455 /var/folders/yr/h20mxtv56yj1c1pt9tr1_kbc0000gn/T/no-mistakes-evidence/01M0V83685S7CRZVW7G4NE2X01/s16-cluster-apps-build.yaml
cluster-apps emitted docs=268 kustomizations=116
old-flux-path-refs=[]
rook [('rook-ceph', False, './kubernetes/apps/base/rook-ceph/rook-ceph/operator'), ('rook-ceph-cluster', False, './kubernetes/apps/base/rook-ceph/rook-ceph/cluster')]
retarget assertions: PASS (taskfile, mod.just, image-pull, flux-local workflow)
docs assertions: PASS
Evidence: S16 rendered KS path inventory
actions-runner-system/actions-runner-maintenance -> ./kubernetes/apps/base/actions-runner-system/maintenance prune=True
actions-runner-system/gha-runner-scale-set -> ./kubernetes/apps/base/actions-runner-system/gha-runner-scale-set/app prune=True
actions-runner-system/gha-runner-scale-set-controller -> ./kubernetes/apps/base/actions-runner-system/gha-runner-scale-set-controller/app prune=True
ai/agentgateway -> ./kubernetes/apps/base/ai/agentgateway/app prune=True
ai/agentgateway-crds -> ./kubernetes/apps/base/ai/agentgateway/crds prune=True
ai/agentgateway-dashboards -> ./kubernetes/apps/base/ai/agentgateway-dashboards/app prune=True
ai/agentmemory -> ./kubernetes/apps/base/ai/agentmemory/app prune=True
ai/comfyui -> ./kubernetes/apps/base/ai/comfyui/app prune=True
ai/hermes -> ./kubernetes/apps/base/ai/hermes/app prune=True
ai/searxng -> ./kubernetes/apps/base/ai/searxng prune=True
ai/toolhive -> ./kubernetes/apps/base/ai/toolhive/app prune=True
ai/toolhive-config -> ./kubernetes/apps/base/ai/toolhive/config prune=True
ai/toolhive-crds -> ./kubernetes/apps/base/ai/toolhive/crds prune=True
ai/toolhive-mcp-servers -> ./kubernetes/apps/base/ai/toolhive/mcp-servers prune=True
ai/vllm -> ./kubernetes/apps/base/ai/vllm/app prune=True
cert-manager/cert-manager -> ./kubernetes/apps/base/cert-manager/cert-manager/app prune=True
coder/coder -> ./kubernetes/apps/base/coder/app prune=True
database/cloudnative-pg -> ./kubernetes/apps/base/database/cloudnative-pg/operator prune=True
database/cloudnative-pg-dashboard -> ./kubernetes/apps/base/database/cloudnative-pg/dashboard prune=True
database/dragonfly-operator -> ./kubernetes/apps/base/database/dragonfly/operator prune=True
database/emqx-cluster -> ./kubernetes/apps/base/database/emqx/cluster prune=True
database/emqx-exporter -> ./kubernetes/apps/base/database/emqx/exporter prune=True
database/emqx-operator -> ./kubernetes/apps/base/database/emqx/operator prune=True
database/jetstream -> ./kubernetes/apps/base/database/jetstream/app prune=True
database/jetstream-nack -> ./kubernetes/apps/base/database/jetstream/nack prune=True
database/jetstream-streams -> ./kubernetes/apps/base/database/jetstream/streams prune=True
database/pgadmin -> ./kubernetes/apps/base/database/cloudnative-pg/pgadmin prune=True
database/postgres-cluster-17 -> ./kubernetes/apps/base/database/cloudnative-pg/cluster-17 prune=True
database/surrealdb -> ./kubernetes/apps/base/database/surrealdb/app prune=True
downloads/autobrr -> ./kubernetes/apps/base/downloads/autobrr/app prune=True
downloads/bazarr -> ./kubernetes/apps/base/downloads/bazarr/app prune=True
downloads/downloads-maintenance -> ./kubernetes/apps/base/downloads/maintenance/app prune=True
downloads/downloads-pvc -> ./kubernetes/apps/base/downloads/pvc/app prune=True
downloads/lidarr -> ./kubernetes/apps/base/downloads/lidarr/app prune=True
downloads/prowlarr -> ./kubernetes/apps/base/downloads/prowlarr/app prune=True
downloads/radarr -> ./kubernetes/apps/base/downloads/radarr/app prune=True
downloads/readarr -> ./kubernetes/apps/base/downloads/readarr/app prune=True
downloads/reading-glasses -> ./kubernetes/apps/base/downloads/reading-glasses/app prune=True
downloads/recyclarr -> ./kubernetes/apps/base/downloads/recyclarr/app prune=True
downloads/sabnzbd -> ./kubernetes/apps/base/downloads/sabnzbd/app prune=True
downloads/sonarr -> ./kubernetes/apps/base/downloads/sonarr/app prune=True
flux-system/flux-instance -> ./kubernetes/apps/base/flux-system/flux-instance/app prune=True
flux-system/flux-operator -> ./kubernetes/apps/base/flux-system/flux-operator/app prune=True
flux-system/headlamp -> ./kubernetes/apps/base/flux-system/headlamp/app prune=True
home-automation/esphome -> ./kubernetes/apps/base/home-automation/esphome/app prune=True
home-automation/home-assistant -> ./kubernetes/apps/base/home-automation/home-assistant/app prune=True
home-automation/matter-server -> ./kubernetes/apps/base/home-automation/matter-server/app prune=True
home-automation/zigbee2mqtt -> ./kubernetes/apps/base/home-automation/zigbee2mqtt/app prune=True
kube-system/cilium -> ./kubernetes/apps/base/kube-system/cilium/app prune=True
kube-system/coredns -> ./kubernetes/apps/base/kube-system/coredns/app prune=True
kube-system/descheduler -> ./kubernetes/apps/base/kube-system/descheduler/app prune=True
kube-system/metrics-server -> ./kubernetes/apps/base/kube-system/metrics-server/app prune=True
kube-system/mglru-disable -> ./kubernetes/apps/base/kube-system/mglru-disable/app prune=True
kube-system/multus -> ./kubernetes/apps/base/kube-system/multus/app prune=True
kube-system/multus-networks -> ./kubernetes/apps/base/kube-system/multus/networks prune=True
kube-system/reloader -> ./kubernetes/apps/base/kube-system/reloader/app prune=True
kube-system/snapshot-controller -> ./kubernetes/apps/base/kube-system/snapshot-controller/app prune=True
kube-system/spegel -> ./kubernetes/apps/base/kube-system/spegel/app prune=True
media/calibre-downloader -> ./kubernetes/apps/base/media/calibre/calibre-downloader prune=True
media/calibre-web-automated -> ./kubernetes/apps/base/media/calibre/calibre-web-automated prune=True
media/immich -> ./kubernetes/apps/base/media/immich/app prune=True
media/jellyfin -> ./kubernetes/apps/base/media/jellyfin/app prune=True
media/plex -> ./kubernetes/apps/base/media/plex/app prune=True
media/seerr -> ./kubernetes/apps/base/media/seerr/app prune=True
media/tdarr -> ./kubernetes/apps/base/media/tdarr/app prune=True
monitoring/alertmanager -> ./kubernetes/apps/base/monitoring/alertmanager/app prune=True
monitoring/gatus -> ./kubernetes/apps/base/monitoring/gatus/app prune=True
monitoring/grafana -> ./kubernetes/apps/base/monitoring/grafana/app prune=True
monitoring/graphite-exporter -> ./kubernetes/apps/base/monitoring/exporters/graphite-exporter/app prune=True
monitoring/graphite-exporter-dashboard -> ./kubernetes/apps/base/monitoring/exporters/graphite-exporter/dashboard/truenas-scale prune=True
monitoring/keda -> ./kubernetes/apps/base/monitoring/keda/app prune=True
monitoring/kromgo -> ./kubernetes/apps/base/monitoring/kromgo/app prune=True
monitoring/kube-prometheus-stack -> ./kubernetes/apps/base/monitoring/kube-prometheus-stack/app prune=True
monitoring/kube-state-metrics -> ./kubernetes/apps/base/monitoring/kube-state-metrics/app prune=True
monitoring/loki -> ./kubernetes/apps/base/monitoring/loki/app prune=True
monitoring/prometheus-operator-crds -> ./kubernetes/apps/base/monitoring/prometheus-operator/crds prune=True
monitoring/promtail -> ./kubernetes/apps/base/monitoring/promtail/app prune=True
monitoring/tempo -> ./kubernetes/apps/base/monitoring/tempo/app prune=True
monitoring/unpoller -> ./kubernetes/apps/base/monitoring/unpoller/app prune=True
network/certificates-export -> ./kubernetes/apps/base/network/certificates/export prune=True
network/certificates-import -> ./kubernetes/apps/base/network/certificates/import prune=True
network/cloudflare-dns -> ./kubernetes/apps/base/network/cloudflare-dns/app prune=True
network/cloudflare-tunnel -> ./kubernetes/apps/base/network/cloudflare-tunnel/app prune=True
network/echo -> ./kubernetes/apps/base/network/echo/app prune=True
network/envoy-gateway -> ./kubernetes/apps/base/network/envoy-gateway/app prune=True
network/flaresolverr -> ./kubernetes/apps/base/network/flaresolverr/app prune=True
network/unifi-dns -> ./kubernetes/apps/base/network/unifi-dns/app prune=True
rook-ceph/rook-ceph -> ./kubernetes/apps/base/rook-ceph/rook-ceph/operator prune=False
rook-ceph/rook-ceph-cluster -> ./kubernetes/apps/base/rook-ceph/rook-ceph/cluster prune=False
security/authentik -> ./kubernetes/apps/base/security/authentik/app prune=True
security/database-secrets -> ./kubernetes/apps/base/security/external-secrets/stores/database-secrets prune=True
security/external-secrets -> ./kubernetes/apps/base/security/external-secrets/app prune=True
security/onepassword-connect -> ./kubernetes/apps/base/security/external-secrets/api/onepassword-connect prune=True
security/onepassword-store -> ./kubernetes/apps/base/security/external-secrets/stores/onepassword prune=True
selfhosted/changedetection -> ./kubernetes/apps/base/selfhosted/changedetection/app prune=True
selfhosted/excalidraw -> ./kubernetes/apps/base/selfhosted/excalidraw/app prune=True
selfhosted/homepage -> ./kubernetes/apps/base/selfhosted/homepage/app prune=True
selfhosted/linkwarden -> ./kubernetes/apps/base/selfhosted/linkwarden/app prune=True
selfhosted/n8n -> ./kubernetes/apps/base/selfhosted/n8n/app prune=True
selfhosted/ntfy -> ./kubernetes/apps/base/selfhosted/ntfy/app prune=True
selfhosted/obsidian-livesync -> ./kubernetes/apps/base/selfhosted/obsidian-livesync/app prune=True
selfhosted/paperless-ngx -> ./kubernetes/apps/base/selfhosted/paperless-ngx/app prune=True
selfhosted/paperless-ngx-media -> ./kubernetes/components/volsync/backup prune=True
selfhosted/rsshub -> ./kubernetes/apps/base/selfhosted/rsshub/app prune=True
selfhosted/rsshub-playwright -> ./kubernetes/apps/base/selfhosted/rsshub/playwright prune=True
selfhosted/syncthing -> ./kubernetes/apps/base/selfhosted/syncthing/app prune=True
selfhosted/syncthing-data -> ./kubernetes/components/volsync/backup prune=True
system/fstrim -> ./kubernetes/apps/base/system/fstrim/app prune=True
system/generic-device-plugin -> ./kubernetes/apps/base/system/generic-device-plugin/app prune=True
system/intel-device-plugin-gpu -> ./kubernetes/apps/base/system/intel-device-plugin-operator/gpu prune=True
system/intel-device-plugin-operator -> ./kubernetes/apps/base/system/intel-device-plugin-operator/app prune=True
system/openebs-hostpath -> ./kubernetes/apps/base/system/openebs-hostpath/app prune=True
system/volsync -> ./kubernetes/apps/base/system/volsync/app prune=True
system-controller/k8tz -> ./kubernetes/apps/base/system-controller/k8tz/app prune=True
system-upgrade/tuppr -> ./kubernetes/apps/base/system-upgrade/tuppr/app prune=True
system-upgrade/tuppr-upgrades -> ./kubernetes/apps/base/system-upgrade/tuppr/upgrades prune=True

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

✅ **Review** - passed

✅ No issues found.

✅ **Test** - passed

✅ No issues found.

  • git diff --name-status b6a608a4..5c7bb453 (structure-only file set)
  • diff -rq S15 vs S16 kubernetes/clusters/main, apps/main, apps/base
  • test ! -e kubernetes/flux and test ! -e kubernetes/apps/kustomization.yaml
  • flux-local get ks -A --path kubernetes/clusters/main on S15 and S16 worktrees (inventory identical)
  • flux-local build ks -A --path kubernetes/clusters/main --skip-secrets on S15 and S16; cmp leaf YAML byte-identical
  • Python normalised Flux Kustomization + leaf-key comparison (116 KS, 885 leaves, identical canonical hash)
  • flux-local build ks -n flux-system --path kubernetes/clusters/main cluster-apps (116 child KS; rook-ceph prune=false; no kubernetes/flux paths)
  • Retarget assertions on .taskfiles/flux/Taskfile.yaml, kubernetes/mod.just, .github/workflows/image-pull.yaml, docs
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Remove the inert kubernetes/flux/ leftover and the empty
kubernetes/apps/kustomization.yaml. Retarget task flux:test:* and
just kube render-local-ks to kubernetes/clusters/main, the only
remaining Flux entry point.

Structure-only: flux-local build of kubernetes/clusters/main is
leaf-identical and normalised-Kustomization-identical to the S15
tree (1880 docs, leaf=1764 ks=116, empty diffs). flux-local test
--all-namespaces: 215 passed. rook-ceph prune:false untouched.
@Aviator-Coding
Aviator-Coding merged commit 1b2a9f7 into main Aug 25, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant