feat(agents): adopt the four observability agents from Flux #10

Merged
sean merged 1 commit from feat/adopt-observability-agents into trunk 2026-08-06 22:45:38 +00:00
Owner

alloy, kube-state-metrics, node-exporter and grafana-dashboards were delivered by
Flux Kustomizations in the seanfarm monorepo. They are the lowest-risk set to move:
stateless, no dependsOn in either direction, no SOPS, no postBuild substitution, no
Flux-native CRs — and their consumers (Grafana, VictoriaMetrics) are already ArgoCD-managed
here.

Adoption, not replacement. The manifests are transplanted content-identical:
kubectl kustomize of each new manifests/ directory is byte-for-byte equal to the same
command against the seanfarm source (verified for all four). With ServerSideApply=true
and matching name/namespace, the first sync adopts the running objects — nothing restarts.

Ordering: each agent owns a namespace of its own name, so seanfarm #938 (which adds
those four AppProject destinations) must be released and live before this merges, or
the first sync is rejected wholesale.

prune stays false on all four until the Flux Kustomizations are retired and the
objects have soaked under ArgoCD alone. Two controllers that can both garbage-collect is
the one state this migration must never enter.

`alloy`, `kube-state-metrics`, `node-exporter` and `grafana-dashboards` were delivered by Flux Kustomizations in the seanfarm monorepo. They are the lowest-risk set to move: stateless, no `dependsOn` in either direction, no SOPS, no `postBuild` substitution, no Flux-native CRs — and their consumers (Grafana, VictoriaMetrics) are already ArgoCD-managed here. **Adoption, not replacement.** The manifests are transplanted content-identical: `kubectl kustomize` of each new `manifests/` directory is byte-for-byte equal to the same command against the seanfarm source (verified for all four). With `ServerSideApply=true` and matching name/namespace, the first sync adopts the running objects — nothing restarts. ⚠ **Ordering:** each agent owns a namespace of its own name, so seanfarm #938 (which adds those four AppProject destinations) must be **released and live** before this merges, or the first sync is rejected wholesale. `prune` stays **false** on all four until the Flux Kustomizations are retired and the objects have soaked under ArgoCD alone. Two controllers that can both garbage-collect is the one state this migration must never enter.
feat(agents): adopt the four observability agents from Flux
All checks were successful
pipeline/ci CI green @ c48bb62e6be7
c48bb62e6b
alloy, kube-state-metrics, node-exporter and grafana-dashboards were
delivered by Flux Kustomizations in the seanfarm monorepo. They are the
lowest-risk set to move: stateless, no dependsOn in either direction, no
SOPS, no postBuild substitution, no Flux-native CRs -- and their consumers
(Grafana, VictoriaMetrics) are already ArgoCD-managed here.

The manifests are transplanted content-identical: `kubectl kustomize` of
each new manifests/ directory is byte-for-byte equal to the same command
against the seanfarm source, verified for all four. Combined with
ServerSideApply and matching name/namespace, the first sync ADOPTS the
running objects rather than replacing them, so nothing restarts.

Each agent owns a namespace of its own name -- they do not live in `olly`,
which holds only the backends -- so seanfarm PR #938 must be released and
live BEFORE this merges, or the first sync is rejected wholesale.

prune stays FALSE on all four until the Flux Kustomizations are retired
and the objects have soaked under ArgoCD alone. Two controllers that can
both garbage-collect is the one state this migration must never enter.
sean merged commit c48bb62e6b into trunk 2026-08-06 22:45:38 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
sean/olly!10
No description provided.