BaseHarbor v0.4.14
v0.4.14 completes the shared reconciliation, security and lifecycle semantics required before the v0.5 compatibility freeze.
The release does not implement Kubernetes or OpenShift. It defines runtime-neutral reconciliation behavior that current Compose providers and future runtime/delivery adapters can reuse.
Added
- Shared
internal/reconciliationdomain model with typed Desired, Observed, Diff and Ownership state. - Typed reconciliation states:
missingin_syncdriftconflictforeign_ownershipunsupporteddegraded- Typed actions:
createnooprepairdestroyobserveblocked- Optional provider-native observation through the existing capability lifecycle.
- Provider conformance checks for typed reconciliation and verified convergence.
Lifecycle semantics
The shared lifecycle now follows:
intent
-> resolve
-> preflight
-> observe
-> diff + ownership decision
-> mutation only when required
-> bind
-> verify
-> observe again
-> verified convergence
Existing providers remain compatible. Providers that implement the reconciliation observation interface gain typed state and core-level mutation decisions without introducing a second lifecycle engine.
Security and ownership
- Conflict, unsupported, degraded and foreign-ownership states fail closed before provider mutation.
- A BaseHarbor-owned missing resource resolves to
create. - A BaseHarbor-owned stable resource resolves to a core-level
noop; provider mutation is skipped. - BaseHarbor-owned drift resolves to
repair. - External ownership is observe-only.
- Post-verification observation prevents a lifecycle from reporting success when BaseHarbor-owned state did not actually converge.
- Ownership-safe destroy remains a core requirement; BaseHarbor must never delete foreign resources.
Compatibility
- Manifest v1 is unchanged.
- Provider Integration Contract v1 remains the provider boundary.
- Existing providers that do not yet expose typed observation retain their previous lifecycle behavior.
- No Kubernetes/OpenShift fields are added to portable application intent.
- No Argo CD, Flux or other product-specific delivery mechanism becomes part of the application contract.