-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Closed
Labels
kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.sig/api-machineryCategorizes an issue or PR as relevant to SIG API Machinery.Categorizes an issue or PR as relevant to SIG API Machinery.stage/stableDenotes an issue tracking an enhancement targeted for Stable/GA statusDenotes an issue tracking an enhancement targeted for Stable/GA status
Milestone
Description
Enhancement Description
- One-line enhancement description (can be used as a release note): Custom Resource Definitions allow defining kubernetes-style APIs as add-ons
- Kubernetes Enhancement Proposal:
- See also:
- Primary contact (assignee): @sttts, @jpbetz
- Responsible SIGs: api-machinery
- Enhancement target (which target equals to which milestone):
- Alpha release target (x.y): Already released
- Beta release target (x.y): v1.7
- Stable release target (x.y): v1.16
Scope of work planned for v1.15
- Define allowed OpenAPI subset (sig-api-machinery KEP: Vanilla OpenAPI subset: structural schema #1002, Publish CRD OpenAPI Schema #692)
- Define and perform scale testing for CRD (sig-api-machinery: Add scale targets to CRDs to GA KEP #1015)
- Bring CRD conversion webhooks to beta (sig-api-machinery: port CRD conversion webhook design doc to KEP, add v1beta1 criteria #1004, Webhook Conversion for Custom Resources #598)
Scope of work planned for v1.11
- Implement first steps of CRD versioning. This has another features issue: Custom Resource Definition Versioning #544. Design proposal: CRD versioning design proposal community#2026.
- Add pruning and defaulting for custom resources.
- Support maps in the CRD validation schema. CustomResourceDefinitions should support maps in OpenAPI schema kubernetes#59485
- Implement quota support for custom resources (this can be considered as a bug fix too) quota support for custom resources kubernetes#53777
Scope of work planned for v1.10
- Finish CRD sub-resources as alpha Proposal: SubResources for CustomResources community#913
- Support categories for CRDs.
Scope of work planned for v1.9
- CRD validation to beta Requirements for ThirdPartyResource to graduate to beta kubernetes#22768 Getting CRD Validation to Beta kubernetes#53829
Scope of work planned for v1.8
- Remove deprecated ThirdPartyResource API.
- Add validation
and defaultingfor CustomResourceDefinition. - Add subresources for CustomResourceDefinition.
- Support Spec/Status split (/status subresource) on custom resources.
- Support incrementing object Generation on custom resource data mutation (requires Spec/Status split).
- Support OwnerReference-based garbage collection with CRD.
Scope of work planned for v1.7
- Move TPR to a new API group (tentatively called
apiextensions) to support deprecation of theextensionsgroup- Ideally, implement the new TPR in a separate API server, to be integrated into kube-apiserver via API Aggregation.
- For now, only allow 1 version at a time per TPR. In the absence of conversion (which is out of scope for this release), this is necessary to remain consistent with the expectations of other components.
- Support for multiple versions could be added (with or without conversion) in a later release.
- Fix name conflicts due to lossy conversion of TPR name into resource/kind.
- Allow TPRs to specify their own names for resources and kinds, rather than tying them to the TPR name.
- Allow TPRs to register short names that will be discoverable by kubectl.
- Allow TPRs to optionally be cluster-scoped rather than namespaced.
- Define and document a process to migrate from
extensions/v1beta1TPR, possibly requiring brief downtime for TPR custom controllers and operators.- Where possible, provide automated tools to help with migration.
- A finalizer ensures CR data is deleted if a CRD is deleted.
- Fix TPR/CRD data cleanup upon namespace deletion for the 3rd time, this time with a regression test.
Other plans not in scope for this release
- Support multiple versions at the same time for a given TPR.
- Other components (e.g. GC, namespace finalizers) expect automatic conversion. TPR currently does not support that.
- Note that it's possible to change the single registered version of a TPR, but it requires brief downtime for TPR custom controllers and operators.
- The
extensions/v1beta1TPR gives the appearance of supporting multiple versions, but multiple version support was never implemented.
- Support customizing where TPR APIs appear in discovery, relative to other TPRs or other APIs.
- Support namespace-scoped CRD whose CRs are only visible in one namespace.
Plans with unclear status
Still investigating or TBD. Please comment/edit with any updates.
- Improve the display of TPRs in kubectl/dashboard.
- There may be other feature trackers addressing this.
yvespp, caesarxuchao, nebril, nikhita, ash2k and 7 more
Metadata
Metadata
Labels
kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.sig/api-machineryCategorizes an issue or PR as relevant to SIG API Machinery.Categorizes an issue or PR as relevant to SIG API Machinery.stage/stableDenotes an issue tracking an enhancement targeted for Stable/GA statusDenotes an issue tracking an enhancement targeted for Stable/GA status