diff --git a/features.md b/features.md
index 049482cad9c..b7afdff1d1c 100644
--- a/features.md
+++ b/features.md
@@ -38,7 +38,6 @@
| KMSEncryptionProvider| | | Enabled | Enabled | Enabled | Enabled |
| MachineAPIMigration| | | Enabled | Enabled | Enabled | Enabled |
| MachineAPIProviderOpenStack| | | Enabled | Enabled | Enabled | Enabled |
-| MachineConfigNodes| | | Enabled | Enabled | Enabled | Enabled |
| MaxUnavailableStatefulSet| | | Enabled | Enabled | Enabled | Enabled |
| MinimumKubeletVersion| | | Enabled | Enabled | Enabled | Enabled |
| MixedCPUsAllocation| | | Enabled | Enabled | Enabled | Enabled |
@@ -80,6 +79,7 @@
| HardwareSpeed| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| IngressControllerLBSubnetsAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| KMSv1| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
+| MachineConfigNodes| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| ManagedBootImages| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| ManagedBootImagesAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
| MetricsCollectionProfiles| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled |
diff --git a/features/features.go b/features/features.go
index c2b9d1aee28..706297e489c 100644
--- a/features/features.go
+++ b/features/features.go
@@ -340,10 +340,10 @@ var (
FeatureGateMachineConfigNodes = newFeatureGate("MachineConfigNodes").
reportProblemsToJiraComponent("MachineConfigOperator").
- contactPerson("cdoern").
+ contactPerson("ijanssen").
productScope(ocpSpecific).
enhancementPR(legacyFeatureGateWithoutEnhancement).
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
mustRegister()
FeatureGateClusterAPIInstall = newFeatureGate("ClusterAPIInstall").
@@ -483,13 +483,13 @@ var (
mustRegister()
FeatureGateExternalOIDCWithAdditionalClaimMappings = newFeatureGate("ExternalOIDCWithUIDAndExtraClaimMappings").
- reportProblemsToJiraComponent("authentication").
- contactPerson("bpalmer").
- productScope(ocpSpecific).
- enhancementPR("https://github.com/openshift/enhancements/pull/1777").
- enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
- enableForClusterProfile(Hypershift, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
- mustRegister()
+ reportProblemsToJiraComponent("authentication").
+ contactPerson("bpalmer").
+ productScope(ocpSpecific).
+ enhancementPR("https://github.com/openshift/enhancements/pull/1777").
+ enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ enableForClusterProfile(Hypershift, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ mustRegister()
FeatureGateExample = newFeatureGate("Example").
reportProblemsToJiraComponent("cluster-config").
@@ -540,12 +540,12 @@ var (
mustRegister()
FeatureGateNewOLMOwnSingleNamespace = newFeatureGate("NewOLMOwnSingleNamespace").
- reportProblemsToJiraComponent("olm").
- contactPerson("nschieder").
- productScope(ocpSpecific).
- enhancementPR("https://github.com/openshift/enhancements/pull/1774").
- enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
- mustRegister()
+ reportProblemsToJiraComponent("olm").
+ contactPerson("nschieder").
+ productScope(ocpSpecific).
+ enhancementPR("https://github.com/openshift/enhancements/pull/1774").
+ enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade).
+ mustRegister()
FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather").
reportProblemsToJiraComponent("insights").
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index b3cfdf48ca8..00000000000
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,379 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2255
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: DevPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: |-
- conditions represent the observations of a machine config node's current state. Valid types are:
- UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
- Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
- and PinnedImageSetsDegraded.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index aa3267e1c87..00000000000
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,379 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2255
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: TechPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: |-
- conditions represent the observations of a machine config node's current state. Valid types are:
- UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
- Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
- and PinnedImageSetsDegraded.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
similarity index 99%
rename from machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
rename to machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
index b386ad31f79..0631b410968 100644
--- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
@@ -6,7 +6,6 @@ metadata:
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade
labels:
openshift.io/operator-managed: ""
name: machineconfignodes.machineconfiguration.openshift.io
diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 374dc144dbd..00000000000
--- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,378 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2256
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: DevPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: conditions represent the observations of a machine config
- node's current state.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - configVersion
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index 938a4b71c56..00000000000
--- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,378 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2256
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: TechPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1alpha1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: conditions represent the observations of a machine config
- node's current state.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 0
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - configVersion
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
similarity index 99%
rename from machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
rename to machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
index 89bbbd61d75..21a3919ae9f 100644
--- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
+++ b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes.crd.yaml
@@ -6,7 +6,6 @@ metadata:
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade
labels:
openshift.io/operator-managed: ""
name: machineconfignodes.machineconfiguration.openshift.io
diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index b3cfdf48ca8..00000000000
--- a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,379 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2255
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: DevPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: |-
- conditions represent the observations of a machine config node's current state. Valid types are:
- UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
- Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
- and PinnedImageSetsDegraded.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
deleted file mode 100644
index aa3267e1c87..00000000000
--- a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml
+++ /dev/null
@@ -1,379 +0,0 @@
-apiVersion: apiextensions.k8s.io/v1
-kind: CustomResourceDefinition
-metadata:
- annotations:
- api-approved.openshift.io: https://github.com/openshift/api/pull/2255
- api.openshift.io/merged-by-featuregates: "true"
- include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: TechPreviewNoUpgrade
- labels:
- openshift.io/operator-managed: ""
- name: machineconfignodes.machineconfiguration.openshift.io
-spec:
- group: machineconfiguration.openshift.io
- names:
- kind: MachineConfigNode
- listKind: MachineConfigNodeList
- plural: machineconfignodes
- singular: machineconfignode
- scope: Cluster
- versions:
- - additionalPrinterColumns:
- - jsonPath: .spec.pool.name
- name: PoolName
- type: string
- - jsonPath: .spec.configVersion.desired
- name: DesiredConfig
- type: string
- - jsonPath: .status.configVersion.current
- name: CurrentConfig
- type: string
- - jsonPath: .status.conditions[?(@.type=="Updated")].status
- name: Updated
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
- name: UpdatePrepared
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
- name: UpdateExecuted
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
- name: UpdatePostActionComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
- name: UpdateComplete
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Resumed")].status
- name: Resumed
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
- name: UpdatedFilesAndOS
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
- name: CordonedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Drained")].status
- name: DrainedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
- name: RebootedNode
- priority: 1
- type: string
- - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
- name: UncordonedNode
- priority: 1
- type: string
- name: v1
- schema:
- openAPIV3Schema:
- description: |-
- MachineConfigNode describes the health of the Machines on the system
- Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
- properties:
- apiVersion:
- description: |-
- APIVersion defines the versioned schema of this representation of an object.
- Servers should convert recognized schemas to the latest internal value, and
- may reject unrecognized values.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
- type: string
- kind:
- description: |-
- Kind is a string value representing the REST resource this object represents.
- Servers may infer this from the endpoint the client submits requests to.
- Cannot be updated.
- In CamelCase.
- More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
- type: string
- metadata:
- type: object
- spec:
- description: spec describes the configuration of the machine config node.
- properties:
- configVersion:
- description: |-
- configVersion holds the desired config version for the node targeted by this machine config node resource.
- The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
- the new machine config against the current machine config.
- properties:
- desired:
- description: |-
- desired is the name of the machine config that the the node should be upgraded to.
- This value is set when the machine config pool generates a new version of its rendered configuration.
- When this value is changed, the machine config daemon starts the node upgrade process.
- This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- node:
- description: node contains a reference to the node for this machine
- config node.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- pool:
- description: |-
- pool contains a reference to the machine config pool that this machine config node's
- referenced node belongs to.
- properties:
- name:
- description: |-
- name is the name of the object being referenced. For example, this can represent a machine
- config pool or node name.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- required:
- - configVersion
- - node
- - pool
- type: object
- status:
- description: status describes the last observed state of this machine
- config node.
- properties:
- conditions:
- description: |-
- conditions represent the observations of a machine config node's current state. Valid types are:
- UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
- Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
- and PinnedImageSetsDegraded.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- configVersion:
- description: configVersion describes the current and desired machine
- config version for this node.
- properties:
- current:
- description: |-
- current is the name of the machine config currently in use on the node.
- This value is updated once the machine config daemon has completed the update of the configuration for the node.
- This value should match the desired version unless an upgrade is in progress.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- desired:
- description: |-
- desired is the MachineConfig the node wants to upgrade to.
- This value gets set in the machine config node status once the machine config has been validated
- against the current machine config.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start and
- end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - desired
- type: object
- observedGeneration:
- description: |-
- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
- This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
- format: int64
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: observedGeneration must not decrease
- rule: self >= oldSelf
- pinnedImageSets:
- description: pinnedImageSets describes the current and desired pinned
- image sets for this node.
- items:
- description: MachineConfigNodeStatusPinnedImageSet holds information
- about the current, desired, and failed pinned image sets for the
- observed machine config node.
- properties:
- currentGeneration:
- description: currentGeneration is the generation of the pinned
- image set that has most recently been successfully pulled
- and pinned on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: currentGeneration must not decrease
- rule: self >= oldSelf
- desiredGeneration:
- description: desiredGeneration is the generation of the pinned
- image set that is targeted to be pulled and pinned on this
- node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: desiredGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGeneration:
- description: lastFailedGeneration is the generation of the most
- recent pinned image set that failed to be pulled and pinned
- on this node.
- format: int32
- minimum: 1
- type: integer
- x-kubernetes-validations:
- - message: lastFailedGeneration must not decrease
- rule: self >= oldSelf
- lastFailedGenerationError:
- description: |-
- lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
- The error is an empty string if the image pull and pin is successful.
- maxLength: 32768
- type: string
- name:
- description: |-
- name is the name of the pinned image set.
- Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
- of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
- with an alphanumeric character, and be at most 253 characters in length.
- maxLength: 253
- type: string
- x-kubernetes-validations:
- - message: a lowercase RFC 1123 subdomain must consist of lower
- case alphanumeric characters, '-' or '.', and must start
- and end with an alphanumeric character.
- rule: '!format.dns1123Subdomain().validate(self).hasValue()'
- required:
- - name
- type: object
- x-kubernetes-validations:
- - message: desired generation must be greater than or equal to the
- current generation
- rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
- ? self.desiredGeneration >= self.currentGeneration : true'
- - message: desired generation must be greater than or equal to the
- last failed generation
- rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
- ? self.desiredGeneration >= self.lastFailedGeneration : true'
- - message: last failed generation error must be defined on image
- pull and pin failure
- rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
- : true'
- maxItems: 100
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- type: object
- required:
- - spec
- type: object
- x-kubernetes-validations:
- - message: spec.node.name should match metadata.name
- rule: self.metadata.name == self.spec.node.name
- served: true
- storage: true
- subresources:
- status: {}
diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes.crd.yaml
similarity index 99%
rename from payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
rename to payload-manifests/crds/0000_80_machine-config_01_machineconfignodes.crd.yaml
index b386ad31f79..0631b410968 100644
--- a/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml
+++ b/payload-manifests/crds/0000_80_machine-config_01_machineconfignodes.crd.yaml
@@ -6,7 +6,6 @@ metadata:
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade
labels:
openshift.io/operator-managed: ""
name: machineconfignodes.machineconfiguration.openshift.io
diff --git a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
index 13ccf75834c..7acc8c56893 100644
--- a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml
@@ -100,9 +100,6 @@
{
"name": "MachineAPIProviderOpenStack"
},
- {
- "name": "MachineConfigNodes"
- },
{
"name": "MaxUnavailableStatefulSet"
},
@@ -255,6 +252,9 @@
{
"name": "KMSv1"
},
+ {
+ "name": "MachineConfigNodes"
+ },
{
"name": "ManagedBootImages"
},
diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
index df9e93be7a7..5766e266e5d 100644
--- a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
+++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml
@@ -103,9 +103,6 @@
{
"name": "MachineAPIProviderOpenStack"
},
- {
- "name": "MachineConfigNodes"
- },
{
"name": "MaxUnavailableStatefulSet"
},
@@ -252,6 +249,9 @@
{
"name": "KMSv1"
},
+ {
+ "name": "MachineConfigNodes"
+ },
{
"name": "ManagedBootImages"
},