Follow-up to the constellation deprecation (PR #213). The field SatelliteEphemeris.spec.satellites.constellation is now marked // Deprecated and kept in v1alpha1, but actually removing it is a versioned API migration, not a version rename — this issue tracks doing it safely.
Why a rename is not enough
The CRD currently serves a single version:
versions:
- name: v1alpha1
served: true
storage: true
Per the Kubernetes deprecation policy and CRD versioning, while both are served, v1alpha1 ↔ v1alpha2 must round-trip losslessly, and a stored version can only be retired after stored objects are migrated and status.storedVersions is cleaned up.
Plan (to decide/execute)
Nice-to-have (deferred from PR #213, non-blocking)
Refs: #213 (deprecation), the deprecation-policy discussion around #209.
Follow-up to the constellation deprecation (PR #213). The field
SatelliteEphemeris.spec.satellites.constellationis now marked// Deprecatedand kept inv1alpha1, but actually removing it is a versioned API migration, not a version rename — this issue tracks doing it safely.Why a rename is not enough
The CRD currently serves a single version:
Per the Kubernetes deprecation policy and CRD versioning, while both are served,
v1alpha1↔v1alpha2must round-trip losslessly, and a stored version can only be retired after stored objects are migrated andstatus.storedVersionsis cleaned up.Plan (to decide/execute)
constellation(and any other cleanups).constellationvalue on down-conversion (e.g. via an annotation) sov1alpha1 → v1alpha2 → v1alpha1does not lose data.v1alpha2asstorage: true, rewrite existing objects, then removev1alpha1fromstatus.storedVersions.v1alpha1staysserved: truebefore removal (alpha may be short, but still needs release notes + CR migration).Nice-to-have (deferred from PR #213, non-blocking)
DeprecatedFieldInUseWarning event (generation-gated, NOT every reconcile) whenspec.satellites.constellationis non-empty, so users applying old manifests are told, not only those who runkubectl explain.Refs: #213 (deprecation), the deprecation-policy discussion around #209.