You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The consumer pins us three ways (image, Go module, require line), so each breaking release costs a
coordinated bump. That argues for batching, and it is the weaker half of the argument.
The stronger half: four of these items are the same design decision seen from different angles, and
building them separately means deciding it four times, inconsistently.
The folder is described on the GitTarget. The connection describes only the connection.
Two interactions that change the design rather than accompanying it
spec.mode: Observe is how a layout is adopted safely. The layout model's weakest point is
adoption: placement only ever affects new documents, so there is nothing to preview by
inspection. Observe plus status.layout is that preview — the operator scans, resolves the
layout, publishes what it would do, and writes nothing. That turns "declare a layout and hope"
into a dry run, and gives Observe a purpose beyond "a safety switch nobody uses".
spec.interval is what keeps the layout observation fresh for a target that writes nothing.
spec.suspend is a precondition rather than a rider: a layout that can create a kustomization.yaml
needs a stop button. The maintainer review's bottom line stands — this controller writes to a Git
repository and there is no way to make it stop that is not deleting the object.
Deliberately outside the wave
F9 (the scope: Namespaced status-write envtest) stays out, because its answer constrains the
enum work.
The version stays v1alpha3, with loud rejections rather than paying for a conversion path.
Tracking issue for one breaking wave on
GitTarget. Design:docs/design/gittarget-api-wave.md.Why one wave rather than six changes
The consumer pins us three ways (image, Go module,
requireline), so each breaking release costs acoordinated bump. That argues for batching, and it is the weaker half of the argument.
The stronger half: four of these items are the same design decision seen from different angles, and
building them separately means deciding it four times, inconsistently.
spec.layoutsays what the folder is ([FEATURE] A layout is the declared thing, not a path: GitTarget.spec.layout #293).spec.mode: Observe|Writesays whether we write to it at all.spec.suspendsays whether we write to it now.commitWindowandcommit.messagesay how writes to it are batched and phrased, and today theylive on
GitProvider, which is the connection.Ship
spec.layoutalone and the principle is asserted by one field whilecommitWindowstillcontradicts it.
Contents
spec.layout— [FEATURE] A layout is the declared thing, not a path: GitTarget.spec.layout #293spec.mode: Observe|Write(config surface B1)spec.suspend,spec.interval, therequestedAtannotation (maintainer review F6)commitWindow/commit.messagemove fromGitProvidertoGitTarget(config surface B4)CommitRequestTTL / ownerRef and thedeleteverb (maintainer review F10)CommitRequest.spec.author, SAR-guarded (gitops-api ci(deps): Bump softprops/action-gh-release from 1 to 2 #5)status.observedDestination(gitops-api deps(deps): Bump github.com/onsi/gomega from 1.36.1 to 1.38.0 #6, downgraded by the consumerthemselves)
Two interactions that change the design rather than accompanying it
spec.mode: Observeis how a layout is adopted safely. The layout model's weakest point isadoption: placement only ever affects new documents, so there is nothing to preview by
inspection.
Observeplusstatus.layoutis that preview — the operator scans, resolves thelayout, publishes what it would do, and writes nothing. That turns "declare a layout and hope"
into a dry run, and gives
Observea purpose beyond "a safety switch nobody uses".spec.intervalis what keeps the layout observation fresh for a target that writes nothing.spec.suspendis a precondition rather than a rider: a layout that can create akustomization.yamlneeds a stop button. The maintainer review's bottom line stands — this controller writes to a Git
repository and there is no way to make it stop that is not deleting the object.
Deliberately outside the wave
scope: Namespacedstatus-write envtest) stays out, because its answer constrains theenum work.
v1alpha3, with loud rejections rather than paying for a conversion path.not wait for this.
Not in 0.41.0
Postponed deliberately. 0.41.0 carries the attribution model and the placement break already.