feat(flux): migrate from flux bootstrap to flux-operator #350

Merged
Neffi42 merged 1 commit from flux-operator-migration into main 2026-09-27 13:56:09 +00:00
Owner

Replace flux/oliver/flux-system/ (bootstrap-generated gotk-*.yaml) with a
single FluxInstance (flux/oliver/flux-instance.yaml), reconciled by
flux-operator, pinned to Flux v2.9.5 matching the controller images
already running. The operator generates the GitRepository/Kustomization
named flux-system that gotk-sync.yaml used to define, so every app
ks.yaml's sourceRef keeps resolving unchanged.

The operator itself is now under GitOps at
apps/oliver/flux-system/flux-operator/ (OCIRepository + HelmRelease
chart 0.60.0), adopting the Helm release installed out-of-band, with
its status web UI exposed on the private Gateway at flux.neffi.fr.

Migration performed live against oliver:

  • helm install flux-operator (adopting orphaned CRDs/RBAC left over
    from an old, unrelated, stuck flux-operator experiment from
    2026-05-13 that never got cleaned up)
  • applied the FluxInstance and verified flux trace kustomization flux-system reports "not managed by Flux" (operator ownership
    confirmed) before removing the bootstrap directory
  • confirmed all 32 Kustomizations and HelmReleases Ready post-takeover

Also:

  • renovate.json: track flux/oliver/flux-instance.yaml's distribution
    version via a custom regex manager against
    controlplaneio-fluxcd/distribution
  • .claude/CLAUDE.md: document the new flux-operator-based layout and
    the (now 3-step) cluster rebuild procedure

Co-Authored-By: Claude Sonnet 5 noreply@anthropic.com

Replace flux/oliver/flux-system/ (bootstrap-generated gotk-*.yaml) with a single FluxInstance (flux/oliver/flux-instance.yaml), reconciled by flux-operator, pinned to Flux v2.9.5 matching the controller images already running. The operator generates the GitRepository/Kustomization named flux-system that gotk-sync.yaml used to define, so every app ks.yaml's sourceRef keeps resolving unchanged. The operator itself is now under GitOps at apps/oliver/flux-system/flux-operator/ (OCIRepository + HelmRelease chart 0.60.0), adopting the Helm release installed out-of-band, with its status web UI exposed on the private Gateway at flux.neffi.fr. Migration performed live against oliver: - helm install flux-operator (adopting orphaned CRDs/RBAC left over from an old, unrelated, stuck flux-operator experiment from 2026-05-13 that never got cleaned up) - applied the FluxInstance and verified `flux trace kustomization flux-system` reports "not managed by Flux" (operator ownership confirmed) before removing the bootstrap directory - confirmed all 32 Kustomizations and HelmReleases Ready post-takeover Also: - renovate.json: track flux/oliver/flux-instance.yaml's distribution version via a custom regex manager against controlplaneio-fluxcd/distribution - .claude/CLAUDE.md: document the new flux-operator-based layout and the (now 3-step) cluster rebuild procedure Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Replace flux/oliver/flux-system/ (bootstrap-generated gotk-*.yaml) with a
single FluxInstance (flux/oliver/flux-instance.yaml), reconciled by
flux-operator, pinned to Flux v2.9.5 matching the controller images
already running. The operator generates the GitRepository/Kustomization
named flux-system that gotk-sync.yaml used to define, so every app
ks.yaml's sourceRef keeps resolving unchanged.

The operator itself is now under GitOps at
apps/oliver/flux-system/flux-operator/ (OCIRepository + HelmRelease
chart 0.60.0), adopting the Helm release installed out-of-band, with
its status web UI exposed on the private Gateway at flux.neffi.fr.

Migration performed live against oliver:
- helm install flux-operator (adopting orphaned CRDs/RBAC left over
  from an old, unrelated, stuck flux-operator experiment from
  2026-05-13 that never got cleaned up)
- applied the FluxInstance and verified `flux trace kustomization
  flux-system` reports "not managed by Flux" (operator ownership
  confirmed) before removing the bootstrap directory
- confirmed all 32 Kustomizations and HelmReleases Ready post-takeover

Also:
- renovate.json: track flux/oliver/flux-instance.yaml's distribution
  version via a custom regex manager against
  controlplaneio-fluxcd/distribution
- .claude/CLAUDE.md: document the new flux-operator-based layout and
  the (now 3-step) cluster rebuild procedure

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Neffi42 deleted branch flux-operator-migration 2026-09-27 13:56:09 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
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
Neffi42/homelab!350
No description provided.