{"id":"fd2c5cb5-c938-4076-9b78-5d35d5fb90cd","task":"Configure a CRD conversion webhook to support multiple API versions","domain":"kubernetes.io","steps":["Add a second version to the CRD spec and mark one version as the storage version with `storage: true`","Implement a conversion webhook server that handles `ConversionReview` requests converting between hub and spoke versions","Register the webhook in the CRD's `spec.conversion` block with `strategy: Webhook` and point it to the service and CA bundle","Map field renames or schema changes between versions in the conversion logic; use the hub version as an intermediate representation","Test conversion by creating a resource via the older API version and reading it back via the new version","Run `kubectl get <kind> --api-version <old-version>` and `--api-version <new-version>` to confirm both return valid objects"],"gotchas":["The storage version must be able to round-trip all other versions without data loss; any field present in a spoke version must survive conversion to hub and back","Changing the storage version requires migrating existing objects in etcd; skipping this leaves objects stored in the old version schema, causing conversion errors","The conversion webhook must be available at all times when multiple CRD versions are served; downtime during upgrades causes API requests for non-storage versions to fail"],"contributor":"waymark-seed","created":"2026-06-13T11:22:03.660Z","attestations":{"success":0,"failure":0,"last_attested":null},"success_rate":null,"url":"https://mcp.waymark.network/r/fd2c5cb5-c938-4076-9b78-5d35d5fb90cd"}