From 9ac70f218818a74972f42a9ad653bbdc47ace4c9 Mon Sep 17 00:00:00 2001 From: Isabella Janssen Date: Thu, 1 May 2025 11:26:37 -0400 Subject: [PATCH] promote MachineConfigNode feature gate to default --- features.md | 2 +- features/features.go | 30 +- ...neconfignodes-DevPreviewNoUpgrade.crd.yaml | 379 ------------------ ...econfignodes-TechPreviewNoUpgrade.crd.yaml | 379 ------------------ ...ine-config_01_machineconfignodes.crd.yaml} | 1 - ...neconfignodes-DevPreviewNoUpgrade.crd.yaml | 378 ----------------- ...econfignodes-TechPreviewNoUpgrade.crd.yaml | 378 ----------------- ...ine-config_01_machineconfignodes.crd.yaml} | 1 - ...neconfignodes-DevPreviewNoUpgrade.crd.yaml | 379 ------------------ ...econfignodes-TechPreviewNoUpgrade.crd.yaml | 379 ------------------ ...ine-config_01_machineconfignodes.crd.yaml} | 1 - .../featureGate-Hypershift-Default.yaml | 6 +- .../featureGate-SelfManagedHA-Default.yaml | 6 +- 13 files changed, 22 insertions(+), 2297 deletions(-) delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml rename machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfignodes.crd.yaml} (99%) delete mode 100644 machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml delete mode 100644 machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml rename machineconfiguration/v1alpha1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfignodes.crd.yaml} (99%) delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-DevPreviewNoUpgrade.crd.yaml delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_machineconfignodes-TechPreviewNoUpgrade.crd.yaml rename payload-manifests/crds/{0000_80_machine-config_01_machineconfignodes-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfignodes.crd.yaml} (99%) 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" },