Skip to content

Commit 1815f57

Browse files
committed
API: add renderedMinimumComponentVersion to featuregate.Status
Signed-off-by: Peter Hunt <[email protected]>
1 parent 788ff01 commit 1815f57

12 files changed

+298
-4
lines changed

config/v1/types_feature.go

+9
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,15 @@ type FeatureGateDetails struct {
125125
// disabled is a list of all feature gates that are disabled in the cluster for the named version.
126126
// +optional
127127
Disabled []FeatureGateAttributes `json:"disabled"`
128+
// renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
129+
// Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
130+
// minimumKubeletVersion field in the nodes.config.openshift.io CRD.
131+
// +kubebuilder:validation:MaxItems:=1
132+
// +listType=map
133+
// +listMapKey=component
134+
// +openshift:enable:FeatureGate=MinimumKubeletVersion
135+
// +optional
136+
RenderedMinimumComponentVersions []MinimumComponentVersion `json:"renderedMinimumComponentVersions,omitempty"`
128137
}
129138

130139
type FeatureGateAttributes struct {

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_featuregates-CustomNoUpgrade.crd.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_featuregates-DevPreviewNoUpgrade.crd.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_featuregates-TechPreviewNoUpgrade.crd.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

config/v1/zz_generated.deepcopy.go

+5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/v1/zz_generated.featuregated-crd-manifests/featuregates.config.openshift.io/MinimumKubeletVersion.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

config/v1/zz_generated.swagger_doc_generated.go

+4-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openapi/generated_openapi/zz_generated.openapi.go

+23-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

openapi/openapi.json

+12
Original file line numberDiff line numberDiff line change
@@ -6272,6 +6272,18 @@
62726272
"$ref": "#/definitions/com.github.openshift.api.config.v1.FeatureGateAttributes"
62736273
}
62746274
},
6275+
"renderedMinimumComponentVersions": {
6276+
"description": "renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from. Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the minimumKubeletVersion field in the nodes.config.openshift.io CRD.",
6277+
"type": "array",
6278+
"items": {
6279+
"default": {},
6280+
"$ref": "#/definitions/com.github.openshift.api.config.v1.MinimumComponentVersion"
6281+
},
6282+
"x-kubernetes-list-map-keys": [
6283+
"component"
6284+
],
6285+
"x-kubernetes-list-type": "map"
6286+
},
62756287
"version": {
62766288
"description": "version matches the version provided by the ClusterVersion and in the ClusterOperator.Status.Versions field.",
62776289
"type": "string",

payload-manifests/crds/0000_10_config-operator_01_featuregates-CustomNoUpgrade.crd.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

payload-manifests/crds/0000_10_config-operator_01_featuregates-DevPreviewNoUpgrade.crd.yaml

+35
Original file line numberDiff line numberDiff line change
@@ -272,6 +272,41 @@ spec:
272272
- name
273273
type: object
274274
type: array
275+
renderedMinimumComponentVersions:
276+
description: |-
277+
renderedMinimumComponentVersions are the component versions that the feature gate list of this status were rendered from.
278+
Currently, the only supported component is Kubelet, and setting a required minimum kubelet component will set the
279+
minimumKubeletVersion field in the nodes.config.openshift.io CRD.
280+
items:
281+
description: |-
282+
MinimumComponentVersion is a pair of Component and Version that specifies the required minimum Version of the given Component
283+
to enable this feature.
284+
properties:
285+
component:
286+
description: component is the entity whose version must
287+
be above a certain version.
288+
enum:
289+
- Kubelet
290+
type: string
291+
version:
292+
description: |-
293+
version is the minimum version the given component may be in this cluster.
294+
version must be in semver format (x.y.z) and must consist only of numbers and periods (.).
295+
maxLength: 8
296+
type: string
297+
x-kubernetes-validations:
298+
- message: minmumKubeletVersion must be in a semver compatible
299+
format of x.y.z, or empty
300+
rule: self.matches('^[0-9]*.[0-9]*.[0-9]*$')
301+
required:
302+
- component
303+
- version
304+
type: object
305+
maxItems: 1
306+
type: array
307+
x-kubernetes-list-map-keys:
308+
- component
309+
x-kubernetes-list-type: map
275310
version:
276311
description: version matches the version provided by the ClusterVersion
277312
and in the ClusterOperator.Status.Versions field.

0 commit comments

Comments
 (0)