Removes two dead files, no live resources touched:
kubernetes/clusters/homelab/seed.yaml — the monolithic Kustomization/seed, long since split into per-app seed-<app> KSes. It was kept suspend: true + prune: false only so its inventory could be pruned by a follow-up commit. Verified live: its inventory is now empty (ownership fully migrated to the per-app KSes), so removing it tears down nothing. flux-system (prune: true) garbage-collects the now-absent Kustomization/seed.
kubernetes/seed/kustomization.yaml — the aggregator that only the monolith referenced (path: ./kubernetes/seed); already stale (missing woodpecker/). The per-app KSes target ./kubernetes/seed/<app> subdirs and are unaffected.
Verified: only seed.yaml referenced ./kubernetes/seed; e2e-test.sh references only the per-app seed-* KSes; all 7 per-app seeds are currently Ready.
Note: this does not touch the live database/backup infrastructure under seed/<app>/ — that stays. Folding those per-app dirs into apps/<app>/ is a separate, larger refactor.
Removes two dead files, no live resources touched:
- `kubernetes/clusters/homelab/seed.yaml` — the monolithic `Kustomization/seed`, long since split into per-app `seed-<app>` KSes. It was kept `suspend: true` + `prune: false` only so its inventory could be pruned by a follow-up commit. Verified live: its **inventory is now empty** (ownership fully migrated to the per-app KSes), so removing it tears down nothing. flux-system (`prune: true`) garbage-collects the now-absent `Kustomization/seed`.
- `kubernetes/seed/kustomization.yaml` — the aggregator that **only** the monolith referenced (`path: ./kubernetes/seed`); already stale (missing `woodpecker/`). The per-app KSes target `./kubernetes/seed/<app>` subdirs and are unaffected.
Verified: only `seed.yaml` referenced `./kubernetes/seed`; `e2e-test.sh` references only the per-app `seed-*` KSes; all 7 per-app seeds are currently Ready.
Note: this does **not** touch the live database/backup infrastructure under `seed/<app>/` — that stays. Folding those per-app dirs into `apps/<app>/` is a separate, larger refactor.
The monolithic `Kustomization/seed` was split into per-app `seed-<app>`
KSes; it was left suspended + prune-disabled only so its inventory could
be pruned by a follow-up commit. That inventory is now empty (ownership
fully migrated to the per-app KSes), so the object owns nothing and can
be removed cleanly — flux-system (prune: true) will garbage-collect the
now-absent Kustomization/seed, and its own prune: false + empty inventory
means zero live resources are torn down.
Also drop kubernetes/seed/kustomization.yaml, the aggregator that only the
monolith referenced (path ./kubernetes/seed); it was already stale (missing
woodpecker). The per-app KSes target ./kubernetes/seed/<app> subdirs and are
unaffected.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
🤖Automated review — model claude-haiku-4-5-20251001 (complexity: trivial), commit e606a15d9642a19f0d8a346d1ab5a2ef501eb48c.
Advisory review by the review-bot pipeline. It never approves; a human merges. Push new commits to get a fresh review.
Summary
This PR removes two now-dead files related to a deprecated monolithic Flux Kustomization: kubernetes/clusters/homelab/seed.yaml (the old aggregator) and kubernetes/seed/kustomization.yaml (the aggregator's resource list). The migration to per-app seed-<app> Kustomizations is confirmed complete with no broken references.
🔴 Blocking
None identified. Verification confirms:
No references to the old kubernetes/seed/kustomization.yaml aggregator path exist in the codebase (verified via grep for ./kubernetes/seed$ and direct path references)
No dependsOn references to the monolithic seed Kustomization exist (all app KSes depend on per-app seed-<app> variants)
All 7 per-app seed Kustomizations are in place and properly configured: seed-authentik, seed-immich, seed-paperless, seed-audiobookshelf, seed-music-assistant, seed-influxdb, seed-woodpecker
Flux system has prune: true on infrastructure Kustomization, so deleting this object from git will garbage-collect it from the cluster (as claimed)
🟡 Suggestions
Minor documentation note (not blocking): The PR description states "e2e-test.sh references only the per-app seed-* KSes" and "all 7 per-app seeds are currently Ready," but kubernetes/e2e-test.sh lines 109-115 only checks 6 of the 7 seed Kustomizations. seed-woodpecker is absent from the test's for-loop. This is pre-existing (not introduced by this PR), but worth noting: after merge, the e2e test won't validate that seed-woodpecker is Ready. If intentional, consider clarifying in a future commit; if unintentional, consider a follow-up PR to add it to the test.
Tests
N/A — this is a cleanup/removal PR, not a feature change. E2E tests do not require modifications for this deletion since the old object was suspend: true and had prune: false already, meaning it was not live in the cluster.
Recommendation
Looks reasonable — no blocking issues; the suggestion above is optional and pre-existing.
🤖 **Automated review** — model `claude-haiku-4-5-20251001` (complexity: trivial), commit `e606a15d9642a19f0d8a346d1ab5a2ef501eb48c`.
> Advisory review by the `review-bot` pipeline. It never approves; a human merges. Push new commits to get a fresh review.
---
## Summary
This PR removes two now-dead files related to a deprecated monolithic Flux Kustomization: `kubernetes/clusters/homelab/seed.yaml` (the old aggregator) and `kubernetes/seed/kustomization.yaml` (the aggregator's resource list). The migration to per-app `seed-<app>` Kustomizations is confirmed complete with no broken references.
## 🔴 Blocking
None identified. Verification confirms:
- No references to the old `kubernetes/seed/kustomization.yaml` aggregator path exist in the codebase (verified via grep for `./kubernetes/seed$` and direct path references)
- No `dependsOn` references to the monolithic `seed` Kustomization exist (all app KSes depend on per-app `seed-<app>` variants)
- All 7 per-app seed Kustomizations are in place and properly configured: `seed-authentik`, `seed-immich`, `seed-paperless`, `seed-audiobookshelf`, `seed-music-assistant`, `seed-influxdb`, `seed-woodpecker`
- Flux system has `prune: true` on `infrastructure` Kustomization, so deleting this object from git will garbage-collect it from the cluster (as claimed)
## 🟡 Suggestions
**Minor documentation note (not blocking):** The PR description states "e2e-test.sh references only the per-app `seed-*` KSes" and "all 7 per-app seeds are currently Ready," but `kubernetes/e2e-test.sh` lines 109-115 only checks 6 of the 7 seed Kustomizations. `seed-woodpecker` is absent from the test's for-loop. This is pre-existing (not introduced by this PR), but worth noting: after merge, the e2e test won't validate that `seed-woodpecker` is Ready. If intentional, consider clarifying in a future commit; if unintentional, consider a follow-up PR to add it to the test.
## Tests
N/A — this is a cleanup/removal PR, not a feature change. E2E tests do not require modifications for this deletion since the old object was `suspend: true` and had `prune: false` already, meaning it was not live in the cluster.
## Recommendation
Looks reasonable — no blocking issues; the suggestion above is optional and pre-existing.
<!-- pr-review:sha=e606a15d9642a19f0d8a346d1ab5a2ef501eb48c -->
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Removes two dead files, no live resources touched:
kubernetes/clusters/homelab/seed.yaml— the monolithicKustomization/seed, long since split into per-appseed-<app>KSes. It was keptsuspend: true+prune: falseonly so its inventory could be pruned by a follow-up commit. Verified live: its inventory is now empty (ownership fully migrated to the per-app KSes), so removing it tears down nothing. flux-system (prune: true) garbage-collects the now-absentKustomization/seed.kubernetes/seed/kustomization.yaml— the aggregator that only the monolith referenced (path: ./kubernetes/seed); already stale (missingwoodpecker/). The per-app KSes target./kubernetes/seed/<app>subdirs and are unaffected.Verified: only
seed.yamlreferenced./kubernetes/seed;e2e-test.shreferences only the per-appseed-*KSes; all 7 per-app seeds are currently Ready.Note: this does not touch the live database/backup infrastructure under
seed/<app>/— that stays. Folding those per-app dirs intoapps/<app>/is a separate, larger refactor.🤖 Automated review — model
claude-haiku-4-5-20251001(complexity: trivial), commite606a15d9642a19f0d8a346d1ab5a2ef501eb48c.Summary
This PR removes two now-dead files related to a deprecated monolithic Flux Kustomization:
kubernetes/clusters/homelab/seed.yaml(the old aggregator) andkubernetes/seed/kustomization.yaml(the aggregator's resource list). The migration to per-appseed-<app>Kustomizations is confirmed complete with no broken references.🔴 Blocking
None identified. Verification confirms:
kubernetes/seed/kustomization.yamlaggregator path exist in the codebase (verified via grep for./kubernetes/seed$and direct path references)dependsOnreferences to the monolithicseedKustomization exist (all app KSes depend on per-appseed-<app>variants)seed-authentik,seed-immich,seed-paperless,seed-audiobookshelf,seed-music-assistant,seed-influxdb,seed-woodpeckerprune: trueoninfrastructureKustomization, so deleting this object from git will garbage-collect it from the cluster (as claimed)🟡 Suggestions
Minor documentation note (not blocking): The PR description states "e2e-test.sh references only the per-app
seed-*KSes" and "all 7 per-app seeds are currently Ready," butkubernetes/e2e-test.shlines 109-115 only checks 6 of the 7 seed Kustomizations.seed-woodpeckeris absent from the test's for-loop. This is pre-existing (not introduced by this PR), but worth noting: after merge, the e2e test won't validate thatseed-woodpeckeris Ready. If intentional, consider clarifying in a future commit; if unintentional, consider a follow-up PR to add it to the test.Tests
N/A — this is a cleanup/removal PR, not a feature change. E2E tests do not require modifications for this deletion since the old object was
suspend: trueand hadprune: falsealready, meaning it was not live in the cluster.Recommendation
Looks reasonable — no blocking issues; the suggestion above is optional and pre-existing.