Skip to content

Commit d72d81d

Browse files
committed
Promote PKI configuration API to v1, update compatibility level to GA, and refine graduation criteria for OpenShift 4.21 release
1 parent 6a10784 commit d72d81d

File tree

1 file changed

+36
-28
lines changed

1 file changed

+36
-28
lines changed

enhancements/security/internal-pki-config.md

Lines changed: 36 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -77,12 +77,14 @@ Currently, OpenShift provides no mechanism to configure these parameters for int
7777

7878
## Proposal
7979

80-
This proposal introduces a new `PKI` cluster-scoped singleton configuration resource in the `config.openshift.io/v1alpha1` API group, along with a `ConfigurablePKI` feature gate to control the rollout. The configuration allows administrators to specify cryptographic parameters for internal certificates organized by category and name.
80+
This proposal introduces a new `PKI` cluster-scoped singleton configuration resource in the `config.openshift.io/v1` API group, along with a `ConfigurablePKI` feature gate to control the rollout. The configuration allows administrators to specify cryptographic parameters for internal certificates organized by category and name.
81+
82+
**Note:** During development, the API will start as `v1alpha1` with TechPreviewNoUpgrade feature gate enablement. The API will be promoted to `v1` and the feature gate will be enabled by default before the OpenShift 4.21 release, shipping as GA.
8183

8284
At a high level, the changes include:
8385

84-
1. **New API Resource**: `PKI` configuration resource in `config.openshift.io/v1alpha1` (cluster-scoped singleton)
85-
2. **Feature Gate**: `ConfigurablePKI` to enable the functionality
86+
1. **New API Resource**: `PKI` configuration resource in `config.openshift.io/v1` (cluster-scoped singleton, developed as v1alpha1 initially)
87+
2. **Feature Gate**: `ConfigurablePKI` to enable the functionality (TechPreviewNoUpgrade during development, enabled by default at GA)
8688
3. **Installer Integration**: Limited Day-1 configuration support for signer certificate cryptographic parameters
8789
4. **Operator Updates**: Modifications to certificate-generating operators to watch and consume the PKI configuration independently
8890
5. **Certificate Rotation**: Integration with existing rotation mechanisms to apply new parameters
@@ -132,7 +134,7 @@ oc edit pki cluster
132134
2. The administrator modifies the PKI resource:
133135

134136
```yaml
135-
apiVersion: config.openshift.io/v1alpha1
137+
apiVersion: config.openshift.io/v1
136138
kind: PKI
137139
metadata:
138140
name: cluster
@@ -212,45 +214,45 @@ This enhancement adds a new Custom Resource Definition (CRD) to the OpenShift AP
212214

213215
#### Compatibility Level
214216

215-
The PKI API starts at **Compatibility Level 4** (TechPreviewNoUpgrade):
217+
The PKI API will be developed initially at **Compatibility Level 4** (TechPreviewNoUpgrade) and graduate to **Compatibility Level 1** (GA) before the OpenShift 4.21 release.
216218

217-
- **Level 4 characteristics:**
218-
- No compatibility guarantees
219+
- **Development phase (v1alpha1, Level 4):**
220+
- No compatibility guarantees during development
219221
- API can change at any point for any reason
220222
- Breaking changes are allowed without migration path
221223
- Suitable for iterative development and testing
222-
- Not recommended for production workloads requiring long-term support
224+
- Gated by ConfigurablePKI feature gate with TechPreviewNoUpgrade enablement
223225

224-
- **Graduation path:**
225-
- Level 4 (TechPreviewNoUpgrade) → initial implementation
226-
- Level 2 (TechPreview) → after initial feedback and stabilization
227-
- Level 1 (GA/Stable) → after one or more releases in TechPreview
226+
- **Release phase (v1, Level 1):**
227+
- Shipped as GA in OpenShift 4.21
228+
- Breaking changes no longer allowed
229+
- API stable within major release for 12 months or 3 minor releases
230+
- Full backward compatibility guarantees
228231

229-
- **Version progression:**
230-
- v1alpha1 at Level 4: current proposal
231-
- v1beta1 at Level 2: potential future state
232-
- v1 at Level 1: eventual GA state
232+
- **Graduation timeline:**
233+
- v1alpha1 at Level 4: Early development (feature gate: TechPreviewNoUpgrade)
234+
- v1 at Level 1: OpenShift 4.21 release (feature gate: enabled by default)
235+
- No intermediate v1beta1 or TechPreview release planned
233236

234-
The compatibility level is enforced through the `+openshift:compatibility-gen:level=4` annotation and will be validated by the API review process.
237+
The compatibility level is enforced through the `+openshift:compatibility-gen:level` annotation and will be validated by the API review process. The annotation will change from `level=4` to `level=1` when the API is promoted to v1.
235238

236239
#### PKI Resource
237240

238-
The `PKI` resource is a cluster-scoped singleton named `cluster` in the `config.openshift.io/v1alpha1` API group.
241+
The `PKI` resource is a cluster-scoped singleton named `cluster` in the `config.openshift.io/v1` API group (initially developed as v1alpha1 during the development phase).
239242

240243
```go
241244
// PKI configures cryptographic parameters for certificates generated
242245
// internally by OpenShift components.
243246
//
244-
// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason.
245-
// These capabilities should not be used by applications needing long term support.
247+
// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
246248
//
247249
// +genclient
248250
// +genclient:nonNamespaced
249251
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
250252
// +kubebuilder:object:root=true
251253
// +kubebuilder:subresource:status
252254
// +kubebuilder:resource:path=pkis,scope=Cluster
253-
// +openshift:compatibility-gen:level=4
255+
// +openshift:compatibility-gen:level=1
254256
type PKI struct {
255257
metav1.TypeMeta `json:",inline"`
256258
metav1.ObjectMeta `json:"metadata,omitempty"`
@@ -396,11 +398,10 @@ type PKIStatus struct {
396398

397399
// PKIList is a collection of PKI resources.
398400
//
399-
// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason.
400-
// These capabilities should not be used by applications needing long term support.
401+
// Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
401402
//
402403
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
403-
// +openshift:compatibility-gen:level=4
404+
// +openshift:compatibility-gen:level=1
404405
type PKIList struct {
405406
metav1.TypeMeta `json:",inline"`
406407
metav1.ListMeta `json:"metadata,omitempty"`
@@ -804,17 +805,24 @@ Automatically regenerate all certificates when PKI configuration changes.
804805

805806
## Graduation Criteria
806807

807-
### Dev Preview -> Tech Preview
808+
This feature will be released as **GA in OpenShift 4.21**. The graduation criteria must be met before the 4.21 release.
809+
810+
### Development Phase (v1alpha1)
811+
812+
During early development with v1alpha1 and TechPreviewNoUpgrade feature gate:
808813

809814
- Feature complete as described in this enhancement
810-
- ConfigurablePKI feature gate available
815+
- ConfigurablePKI feature gate available with TechPreviewNoUpgrade enablement
811816
- Installer integration for signer certificate configuration
812817
- At least kube-apiserver-operator, etcd-operator, and service-ca-operator support PKI configuration
813818
- Comprehensive unit and integration test coverage
814819
- Metrics for certificate generation events
815820
- Basic documentation in openshift-docs
821+
- Early feedback gathered from development testing
822+
823+
### GA Release (v1) - OpenShift 4.21
816824

817-
### Tech Preview -> GA
825+
Before the 4.21 release, all of the following criteria must be met:
818826

819827
- All certificate-generating operators support PKI configuration
820828
- Thorough e2e test coverage including upgrade scenarios
@@ -844,7 +852,7 @@ Automatically regenerate all certificates when PKI configuration changes.
844852
- Feature gate enabled by default
845853
- Hypershift integration tested and documented
846854
- MicroShift integration complete
847-
- At least one full release cycle in Tech Preview with customer feedback
855+
- Internal testing and feedback incorporated from development cycle
848856

849857
### Removing a deprecated feature
850858

0 commit comments

Comments
 (0)