What problem are you trying to solve?
FluxInstance.spec.sync implicitly declares a Flux Kustomization. flux-operator
materializes it as the root KS in the cluster.
flate anchors discovery on Kustomization objects it finds in the tree. The implicit root
isn't one of them, so nothing owns the sync path and that whole layer is never loaded. flate
renders what the committed Kustomizations apply, but never what the root applies.
That layer is where the Kustomization manifests themselves live, plus whatever else is
committed alongside them. So a straight comparison at the sync path:
$ kustomize build <syncPath> # the root layer's objects
$ flate build all --path <syncPath> # none of them
Practical effect is flate diff stays silent on edits to the Kustomization manifests
themselves.
Proposed solution
Basically I'd like flate to render the implicit Kustomization directly, rather than having to wrap the sync path in a second, committed Kustomization just so flate can see it.
No strong opinion on how. The FluxInstance manifest already has everything needed:
kind: FluxInstance
spec:
sync:
kind: GitRepository
path: <syncPath>
so if flate has that object in hand it could treat spec.sync.path as another render root, same as a KS spec.path.
Alternatives considered
Wrapping the sync path in a committed Kustomization, e.g. point spec.sync at a small dir
holding a KS whose path is the real tree. That does work and flate walks everything from
there. But it's a layer of indirection that exists purely to satisfy the tooling, and moving
the sync root on a running cluster isn't a no-op, the root's inventory collapses to a single
entry and prune will chase everything that dropped out.
What problem are you trying to solve?
FluxInstance.spec.syncimplicitly declares a Flux Kustomization. flux-operatormaterializes it as the root KS in the cluster.
flate anchors discovery on Kustomization objects it finds in the tree. The implicit root
isn't one of them, so nothing owns the sync path and that whole layer is never loaded. flate
renders what the committed Kustomizations apply, but never what the root applies.
That layer is where the Kustomization manifests themselves live, plus whatever else is
committed alongside them. So a straight comparison at the sync path:
Practical effect is
flate diffstays silent on edits to the Kustomization manifeststhemselves.
Proposed solution
Basically I'd like flate to render the implicit Kustomization directly, rather than having to wrap the sync path in a second, committed Kustomization just so flate can see it.
No strong opinion on how. The FluxInstance manifest already has everything needed:
so if flate has that object in hand it could treat
spec.sync.pathas another render root, same as a KSspec.path.Alternatives considered
Wrapping the sync path in a committed Kustomization, e.g. point
spec.syncat a small dirholding a KS whose
pathis the real tree. That does work and flate walks everything fromthere. But it's a layer of indirection that exists purely to satisfy the tooling, and moving
the sync root on a running cluster isn't a no-op, the root's inventory collapses to a single
entry and
prunewill chase everything that dropped out.