From a25a30276e79da556e20eb66682ab566f169887c Mon Sep 17 00:00:00 2001 From: RishabhSaini Date: Thu, 10 Apr 2025 09:45:19 -0400 Subject: [PATCH] features: Lift feature gate for PIS --- features.md | 2 +- features/.features.go.swp | Bin 0 -> 53248 bytes features/features.go | 4 +- ...fig_01_machineconfigpools-Default.crd.yaml | 500 -------------- ...neconfigpools-DevPreviewNoUpgrade.crd.yaml | 617 ------------------ ...econfigpools-TechPreviewNoUpgrade.crd.yaml | 617 ------------------ ...ine-config_01_machineconfigpools.crd.yaml} | 1 - ...nnedimagesets-DevPreviewNoUpgrade.crd.yaml | 102 --- ...nedimagesets-TechPreviewNoUpgrade.crd.yaml | 102 --- ...achine-config_01_pinnedimagesets.crd.yaml} | 1 - ...nnedimagesets-DevPreviewNoUpgrade.crd.yaml | 168 ----- ...nedimagesets-TechPreviewNoUpgrade.crd.yaml | 168 ----- ...achine-config_01_pinnedimagesets.crd.yaml} | 1 - ...fig_01_machineconfigpools-Default.crd.yaml | 500 -------------- ...neconfigpools-DevPreviewNoUpgrade.crd.yaml | 617 ------------------ ...econfigpools-TechPreviewNoUpgrade.crd.yaml | 617 ------------------ ...ine-config_01_machineconfigpools.crd.yaml} | 1 - ...nnedimagesets-DevPreviewNoUpgrade.crd.yaml | 102 --- ...nedimagesets-TechPreviewNoUpgrade.crd.yaml | 102 --- ...achine-config_01_pinnedimagesets.crd.yaml} | 1 - .../featureGate-Hypershift-Default.yaml | 6 +- .../featureGate-SelfManagedHA-Default.yaml | 6 +- 22 files changed, 9 insertions(+), 4226 deletions(-) create mode 100644 features/.features.go.swp delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-Default.crd.yaml delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-DevPreviewNoUpgrade.crd.yaml delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml rename machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfigpools.crd.yaml} (99%) delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml delete mode 100644 machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml rename machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_pinnedimagesets.crd.yaml} (98%) delete mode 100644 machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml delete mode 100644 machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml rename machineconfiguration/v1alpha1/zz_generated.crd-manifests/{0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_pinnedimagesets.crd.yaml} (99%) delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-Default.crd.yaml delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-DevPreviewNoUpgrade.crd.yaml delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml rename payload-manifests/crds/{0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfigpools.crd.yaml} (99%) delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml delete mode 100644 payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml rename payload-manifests/crds/{0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_pinnedimagesets.crd.yaml} (98%) diff --git a/features.md b/features.md index d7220f829d0..2bdd775e669 100644 --- a/features.md +++ b/features.md @@ -49,7 +49,6 @@ | NutanixMultiSubnets| | | Enabled | Enabled | Enabled | Enabled | | OVNObservability| | | Enabled | Enabled | Enabled | Enabled | | OnClusterBuild| | | Enabled | Enabled | Enabled | Enabled | -| PinnedImages| | | Enabled | Enabled | Enabled | Enabled | | PlatformOperators| | | Enabled | Enabled | Enabled | Enabled | | ProcMountType| | | Enabled | Enabled | Enabled | Enabled | | RouteAdvertisements| | | Enabled | Enabled | Enabled | Enabled | @@ -92,6 +91,7 @@ | NodeDisruptionPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | OpenShiftPodSecurityAdmission| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | PersistentIPsForVirtualization| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| PinnedImages| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | PrivateHostedZoneAWS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | SetEIPForNLBIngressController| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | VSphereDriverConfiguration| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | diff --git a/features/.features.go.swp b/features/.features.go.swp new file mode 100644 index 0000000000000000000000000000000000000000..9d630348c124435b77d4bf2f90da3532a450e7ad GIT binary patch literal 53248 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 Wf5J{J= oldSelf || (self == 0 && oldSelf > 0) - poolSynchronizerType: - description: poolSynchronizerType describes the type of the - pool synchronizer. - enum: - - PinnedImageSets - maxLength: 256 - type: string - readyMachineCount: - description: readyMachineCount is the number of machines managed - by the node synchronizer that are in a ready state. - format: int64 - minimum: 0 - type: integer - unavailableMachineCount: - description: unavailableMachineCount is the number of machines - managed by the node synchronizer but are unavailable. - format: int64 - minimum: 0 - type: integer - updatedMachineCount: - description: updatedMachineCount is the number of machines that - have been updated by the node synchronizer. - format: int64 - minimum: 0 - type: integer - required: - - availableMachineCount - - machineCount - - poolSynchronizerType - - readyMachineCount - - unavailableMachineCount - - updatedMachineCount - type: object - x-kubernetes-validations: - - message: machineCount must be greater than or equal to updatedMachineCount - rule: self.machineCount >= self.updatedMachineCount - - message: machineCount must be greater than or equal to availableMachineCount - rule: self.machineCount >= self.availableMachineCount - - message: machineCount must be greater than or equal to unavailableMachineCount - rule: self.machineCount >= self.unavailableMachineCount - - message: machineCount must be greater than or equal to readyMachineCount - rule: self.machineCount >= self.readyMachineCount - - message: availableMachineCount must be greater than or equal to - readyMachineCount - rule: self.availableMachineCount >= self.readyMachineCount - type: array - x-kubernetes-list-map-keys: - - poolSynchronizerType - x-kubernetes-list-type: map - readyMachineCount: - description: readyMachineCount represents the total number of ready - machines targeted by the pool. - format: int32 - type: integer - unavailableMachineCount: - description: |- - unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. - A node is marked unavailable if it is in updating state or NodeReady condition is false. - format: int32 - type: integer - updatedMachineCount: - description: updatedMachineCount represents the total number of machines - targeted by the pool that have the CurrentMachineConfig as their - config. - format: int32 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index ef048f6a848..00000000000 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,617 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1453 - 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: machineconfigpools.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: MachineConfigPool - listKind: MachineConfigPoolList - plural: machineconfigpools - shortNames: - - mcp - singular: machineconfigpool - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.configuration.name - name: Config - type: string - - description: When all the machines in the pool are updated to the correct machine - config. - jsonPath: .status.conditions[?(@.type=="Updated")].status - name: Updated - type: string - - description: When at least one of machine is not either not updated or is in - the process of updating to the desired machine config. - jsonPath: .status.conditions[?(@.type=="Updating")].status - name: Updating - type: string - - description: When progress is blocked on updating one or more nodes or the pool - configuration is failing. - jsonPath: .status.conditions[?(@.type=="Degraded")].status - name: Degraded - type: string - - description: Total number of machines in the machine config pool - jsonPath: .status.machineCount - name: MachineCount - type: number - - description: Total number of ready machines targeted by the pool - jsonPath: .status.readyMachineCount - name: ReadyMachineCount - type: number - - description: Total number of machines targeted by the pool that have the CurrentMachineConfig - as their config - jsonPath: .status.updatedMachineCount - name: UpdatedMachineCount - type: number - - description: Total number of machines marked degraded (or unreconcilable) - jsonPath: .status.degradedMachineCount - name: DegradedMachineCount - type: number - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfigPool describes a pool of MachineConfigs. - - 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 contains the desired machine config pool configuration. - properties: - configuration: - description: The targeted MachineConfig object for the machine config - pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - machineConfigSelector: - description: |- - machineConfigSelector specifies a label selector for MachineConfigs. - Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - maxUnavailable: - anyOf: - - type: integer - - type: string - description: |- - maxUnavailable defines either an integer number or percentage - of nodes in the pool that can go Unavailable during an update. - This includes nodes Unavailable for any reason, including user - initiated cordons, failing nodes, etc. The default value is 1. - - A value larger than 1 will mean multiple nodes going unavailable during - the update, which may affect your workload stress on the remaining nodes. - You cannot set this value to 0 to stop updates (it will default back to 1); - to stop updates, use the 'paused' property instead. Drain will respect - Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if - maxUnavailable is greater than one. - x-kubernetes-int-or-string: true - nodeSelector: - description: nodeSelector specifies a label selector for Machines - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - paused: - description: |- - paused specifies whether or not changes to this machine config pool should be stopped. - This includes generating new desiredMachineConfig and update of machines. - type: boolean - pinnedImageSets: - description: |- - pinnedImageSets specifies a sequence of PinnedImageSetRef objects for the - pool. Nodes within this pool will preload and pin images defined in the - PinnedImageSet. Before pulling images the MachineConfigDaemon will ensure - the total uncompressed size of all the images does not exceed available - resources. If the total size of the images exceeds the available - resources the controller will report a Degraded status to the - MachineConfigPool and not attempt to pull any images. Also to help ensure - the kubelet can mitigate storage risk, the pinned_image configuration and - subsequent service reload will happen only after all of the images have - been pulled for each set. Images from multiple PinnedImageSets are loaded - and pinned sequentially as listed. Duplicate and existing images will be - skipped. - - Any failure to prefetch or pin images will result in a Degraded pool. - Resolving these failures is the responsibility of the user. The admin - should be proactive in ensuring adequate storage and proper image - authentication exists in advance. - items: - properties: - name: - description: |- - name is a reference to the name of a PinnedImageSet. Must adhere to - RFC-1123 (https://tools.ietf.org/html/rfc1123). - Made up of one of more period-separated (.) segments, where each segment - consists of alphanumeric characters and hyphens (-), must begin and end - with an alphanumeric character, and is at most 63 characters in length. - The total length of the name must not exceed 253 characters. - maxLength: 253 - minLength: 1 - pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$ - type: string - required: - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - status: - description: status contains observed information about the machine config - pool. - properties: - certExpirys: - description: certExpirys keeps track of important certificate expiration - data - items: - description: ceryExpiry contains the bundle name and the expiry - date - properties: - bundle: - description: bundle is the name of the bundle in which the subject - certificate resides - type: string - expiry: - description: expiry is the date after which the certificate - will no longer be valid - format: date-time - type: string - subject: - description: subject is the subject of the certificate - type: string - required: - - bundle - - subject - type: object - type: array - x-kubernetes-list-type: atomic - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: MachineConfigPoolCondition contains condition information - for an MachineConfigPool. - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the timestamp corresponding to the last status - change of this condition. - format: date-time - nullable: true - type: string - message: - description: |- - message is a human readable description of the details of the last - transition, complementing reason. - type: string - reason: - description: |- - reason is a brief machine readable explanation for the condition's last - transition. - type: string - status: - description: status of the condition, one of ('True', 'False', - 'Unknown'). - type: string - type: - description: type of the condition, currently ('Done', 'Updating', - 'Failed'). - type: string - type: object - type: array - x-kubernetes-list-type: atomic - configuration: - description: configuration represents the current MachineConfig object - for the machine config pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - degradedMachineCount: - description: |- - degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). - A node is marked degraded if applying a configuration failed.. - format: int32 - type: integer - machineCount: - description: machineCount represents the total number of machines - in the machine config pool. - format: int32 - type: integer - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - poolSynchronizersStatus: - description: poolSynchronizersStatus is the status of the machines - managed by the pool synchronizers. - items: - properties: - availableMachineCount: - description: availableMachineCount is the number of machines - managed by the node synchronizer which are available. - format: int64 - minimum: 0 - type: integer - machineCount: - description: machineCount is the number of machines that are - managed by the node synchronizer. - format: int64 - minimum: 0 - type: integer - observedGeneration: - description: observedGeneration is the last generation change - that has been applied. - format: int64 - minimum: 0 - type: integer - x-kubernetes-validations: - - message: observedGeneration must not move backwards except - to zero - rule: self >= oldSelf || (self == 0 && oldSelf > 0) - poolSynchronizerType: - description: poolSynchronizerType describes the type of the - pool synchronizer. - enum: - - PinnedImageSets - maxLength: 256 - type: string - readyMachineCount: - description: readyMachineCount is the number of machines managed - by the node synchronizer that are in a ready state. - format: int64 - minimum: 0 - type: integer - unavailableMachineCount: - description: unavailableMachineCount is the number of machines - managed by the node synchronizer but are unavailable. - format: int64 - minimum: 0 - type: integer - updatedMachineCount: - description: updatedMachineCount is the number of machines that - have been updated by the node synchronizer. - format: int64 - minimum: 0 - type: integer - required: - - availableMachineCount - - machineCount - - poolSynchronizerType - - readyMachineCount - - unavailableMachineCount - - updatedMachineCount - type: object - x-kubernetes-validations: - - message: machineCount must be greater than or equal to updatedMachineCount - rule: self.machineCount >= self.updatedMachineCount - - message: machineCount must be greater than or equal to availableMachineCount - rule: self.machineCount >= self.availableMachineCount - - message: machineCount must be greater than or equal to unavailableMachineCount - rule: self.machineCount >= self.unavailableMachineCount - - message: machineCount must be greater than or equal to readyMachineCount - rule: self.machineCount >= self.readyMachineCount - - message: availableMachineCount must be greater than or equal to - readyMachineCount - rule: self.availableMachineCount >= self.readyMachineCount - type: array - x-kubernetes-list-map-keys: - - poolSynchronizerType - x-kubernetes-list-type: map - readyMachineCount: - description: readyMachineCount represents the total number of ready - machines targeted by the pool. - format: int32 - type: integer - unavailableMachineCount: - description: |- - unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. - A node is marked unavailable if it is in updating state or NodeReady condition is false. - format: int32 - type: integer - updatedMachineCount: - description: updatedMachineCount represents the total number of machines - targeted by the pool that have the CurrentMachineConfig as their - config. - format: int32 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools.crd.yaml similarity index 99% rename from machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml rename to machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools.crd.yaml index e4cd170511f..5d69585f085 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigpools.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: machineconfigpools.machineconfiguration.openshift.io diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 18775703be5..00000000000 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/2198 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - Image references must be by digest. - A maximum of 500 images may be specified. - items: - description: PinnedImageRef represents a reference to an OCI image - properties: - name: - description: |- - name is an OCI Image referenced by digest. - The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - The length of the whole spec must be between 1 to 447 characters. - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: (self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')) - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: (self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - required: - - spec - type: object - served: true - storage: true diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index f0bf8d539a2..00000000000 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/2198 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - Image references must be by digest. - A maximum of 500 images may be specified. - items: - description: PinnedImageRef represents a reference to an OCI image - properties: - name: - description: |- - name is an OCI Image referenced by digest. - The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - The length of the whole spec must be between 1 to 447 characters. - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: (self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')) - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: (self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - required: - - spec - type: object - served: true - storage: true diff --git a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.crd.yaml similarity index 98% rename from machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml rename to machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.crd.yaml index 5aebd9b228d..49fd8d52f6f 100644 --- a/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.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: pinnedimagesets.machineconfiguration.openshift.io diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 2beccbb27fe..00000000000 --- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,168 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1713 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - These image references should all be by digest, tags aren't allowed. - items: - properties: - name: - description: |- - name is an OCI Image referenced by digest. - - The format of the image ref is: - host[:port][/namespace]/name@sha256: - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$') - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$') - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - status: - description: status describes the last observed state of this pinned image - set. - properties: - conditions: - description: conditions represent the observations of a pinned image - set'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 - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 6463640005c..00000000000 --- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,168 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1713 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - These image references should all be by digest, tags aren't allowed. - items: - properties: - name: - description: |- - name is an OCI Image referenced by digest. - - The format of the image ref is: - host[:port][/namespace]/name@sha256: - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$') - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$') - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - status: - description: status describes the last observed state of this pinned image - set. - properties: - conditions: - description: conditions represent the observations of a pinned image - set'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 - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.crd.yaml similarity index 99% rename from machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml rename to machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.crd.yaml index 1d18ba185f0..74624b5ea61 100644 --- a/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml +++ b/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_pinnedimagesets.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: pinnedimagesets.machineconfiguration.openshift.io diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-Default.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-Default.crd.yaml deleted file mode 100644 index a198447e08a..00000000000 --- a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-Default.crd.yaml +++ /dev/null @@ -1,500 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1453 - 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: Default - labels: - openshift.io/operator-managed: "" - name: machineconfigpools.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: MachineConfigPool - listKind: MachineConfigPoolList - plural: machineconfigpools - shortNames: - - mcp - singular: machineconfigpool - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.configuration.name - name: Config - type: string - - description: When all the machines in the pool are updated to the correct machine - config. - jsonPath: .status.conditions[?(@.type=="Updated")].status - name: Updated - type: string - - description: When at least one of machine is not either not updated or is in - the process of updating to the desired machine config. - jsonPath: .status.conditions[?(@.type=="Updating")].status - name: Updating - type: string - - description: When progress is blocked on updating one or more nodes or the pool - configuration is failing. - jsonPath: .status.conditions[?(@.type=="Degraded")].status - name: Degraded - type: string - - description: Total number of machines in the machine config pool - jsonPath: .status.machineCount - name: MachineCount - type: number - - description: Total number of ready machines targeted by the pool - jsonPath: .status.readyMachineCount - name: ReadyMachineCount - type: number - - description: Total number of machines targeted by the pool that have the CurrentMachineConfig - as their config - jsonPath: .status.updatedMachineCount - name: UpdatedMachineCount - type: number - - description: Total number of machines marked degraded (or unreconcilable) - jsonPath: .status.degradedMachineCount - name: DegradedMachineCount - type: number - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfigPool describes a pool of MachineConfigs. - - 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 contains the desired machine config pool configuration. - properties: - configuration: - description: The targeted MachineConfig object for the machine config - pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - machineConfigSelector: - description: |- - machineConfigSelector specifies a label selector for MachineConfigs. - Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - maxUnavailable: - anyOf: - - type: integer - - type: string - description: |- - maxUnavailable defines either an integer number or percentage - of nodes in the pool that can go Unavailable during an update. - This includes nodes Unavailable for any reason, including user - initiated cordons, failing nodes, etc. The default value is 1. - - A value larger than 1 will mean multiple nodes going unavailable during - the update, which may affect your workload stress on the remaining nodes. - You cannot set this value to 0 to stop updates (it will default back to 1); - to stop updates, use the 'paused' property instead. Drain will respect - Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if - maxUnavailable is greater than one. - x-kubernetes-int-or-string: true - nodeSelector: - description: nodeSelector specifies a label selector for Machines - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - paused: - description: |- - paused specifies whether or not changes to this machine config pool should be stopped. - This includes generating new desiredMachineConfig and update of machines. - type: boolean - type: object - status: - description: status contains observed information about the machine config - pool. - properties: - certExpirys: - description: certExpirys keeps track of important certificate expiration - data - items: - description: ceryExpiry contains the bundle name and the expiry - date - properties: - bundle: - description: bundle is the name of the bundle in which the subject - certificate resides - type: string - expiry: - description: expiry is the date after which the certificate - will no longer be valid - format: date-time - type: string - subject: - description: subject is the subject of the certificate - type: string - required: - - bundle - - subject - type: object - type: array - x-kubernetes-list-type: atomic - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: MachineConfigPoolCondition contains condition information - for an MachineConfigPool. - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the timestamp corresponding to the last status - change of this condition. - format: date-time - nullable: true - type: string - message: - description: |- - message is a human readable description of the details of the last - transition, complementing reason. - type: string - reason: - description: |- - reason is a brief machine readable explanation for the condition's last - transition. - type: string - status: - description: status of the condition, one of ('True', 'False', - 'Unknown'). - type: string - type: - description: type of the condition, currently ('Done', 'Updating', - 'Failed'). - type: string - type: object - type: array - x-kubernetes-list-type: atomic - configuration: - description: configuration represents the current MachineConfig object - for the machine config pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - degradedMachineCount: - description: |- - degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). - A node is marked degraded if applying a configuration failed.. - format: int32 - type: integer - machineCount: - description: machineCount represents the total number of machines - in the machine config pool. - format: int32 - type: integer - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - readyMachineCount: - description: readyMachineCount represents the total number of ready - machines targeted by the pool. - format: int32 - type: integer - unavailableMachineCount: - description: |- - unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. - A node is marked unavailable if it is in updating state or NodeReady condition is false. - format: int32 - type: integer - updatedMachineCount: - description: updatedMachineCount represents the total number of machines - targeted by the pool that have the CurrentMachineConfig as their - config. - format: int32 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index ddd7c3b6825..00000000000 --- a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,617 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1453 - 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: machineconfigpools.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: MachineConfigPool - listKind: MachineConfigPoolList - plural: machineconfigpools - shortNames: - - mcp - singular: machineconfigpool - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.configuration.name - name: Config - type: string - - description: When all the machines in the pool are updated to the correct machine - config. - jsonPath: .status.conditions[?(@.type=="Updated")].status - name: Updated - type: string - - description: When at least one of machine is not either not updated or is in - the process of updating to the desired machine config. - jsonPath: .status.conditions[?(@.type=="Updating")].status - name: Updating - type: string - - description: When progress is blocked on updating one or more nodes or the pool - configuration is failing. - jsonPath: .status.conditions[?(@.type=="Degraded")].status - name: Degraded - type: string - - description: Total number of machines in the machine config pool - jsonPath: .status.machineCount - name: MachineCount - type: number - - description: Total number of ready machines targeted by the pool - jsonPath: .status.readyMachineCount - name: ReadyMachineCount - type: number - - description: Total number of machines targeted by the pool that have the CurrentMachineConfig - as their config - jsonPath: .status.updatedMachineCount - name: UpdatedMachineCount - type: number - - description: Total number of machines marked degraded (or unreconcilable) - jsonPath: .status.degradedMachineCount - name: DegradedMachineCount - type: number - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfigPool describes a pool of MachineConfigs. - - 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 contains the desired machine config pool configuration. - properties: - configuration: - description: The targeted MachineConfig object for the machine config - pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - machineConfigSelector: - description: |- - machineConfigSelector specifies a label selector for MachineConfigs. - Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - maxUnavailable: - anyOf: - - type: integer - - type: string - description: |- - maxUnavailable defines either an integer number or percentage - of nodes in the pool that can go Unavailable during an update. - This includes nodes Unavailable for any reason, including user - initiated cordons, failing nodes, etc. The default value is 1. - - A value larger than 1 will mean multiple nodes going unavailable during - the update, which may affect your workload stress on the remaining nodes. - You cannot set this value to 0 to stop updates (it will default back to 1); - to stop updates, use the 'paused' property instead. Drain will respect - Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if - maxUnavailable is greater than one. - x-kubernetes-int-or-string: true - nodeSelector: - description: nodeSelector specifies a label selector for Machines - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - paused: - description: |- - paused specifies whether or not changes to this machine config pool should be stopped. - This includes generating new desiredMachineConfig and update of machines. - type: boolean - pinnedImageSets: - description: |- - pinnedImageSets specifies a sequence of PinnedImageSetRef objects for the - pool. Nodes within this pool will preload and pin images defined in the - PinnedImageSet. Before pulling images the MachineConfigDaemon will ensure - the total uncompressed size of all the images does not exceed available - resources. If the total size of the images exceeds the available - resources the controller will report a Degraded status to the - MachineConfigPool and not attempt to pull any images. Also to help ensure - the kubelet can mitigate storage risk, the pinned_image configuration and - subsequent service reload will happen only after all of the images have - been pulled for each set. Images from multiple PinnedImageSets are loaded - and pinned sequentially as listed. Duplicate and existing images will be - skipped. - - Any failure to prefetch or pin images will result in a Degraded pool. - Resolving these failures is the responsibility of the user. The admin - should be proactive in ensuring adequate storage and proper image - authentication exists in advance. - items: - properties: - name: - description: |- - name is a reference to the name of a PinnedImageSet. Must adhere to - RFC-1123 (https://tools.ietf.org/html/rfc1123). - Made up of one of more period-separated (.) segments, where each segment - consists of alphanumeric characters and hyphens (-), must begin and end - with an alphanumeric character, and is at most 63 characters in length. - The total length of the name must not exceed 253 characters. - maxLength: 253 - minLength: 1 - pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$ - type: string - required: - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - status: - description: status contains observed information about the machine config - pool. - properties: - certExpirys: - description: certExpirys keeps track of important certificate expiration - data - items: - description: ceryExpiry contains the bundle name and the expiry - date - properties: - bundle: - description: bundle is the name of the bundle in which the subject - certificate resides - type: string - expiry: - description: expiry is the date after which the certificate - will no longer be valid - format: date-time - type: string - subject: - description: subject is the subject of the certificate - type: string - required: - - bundle - - subject - type: object - type: array - x-kubernetes-list-type: atomic - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: MachineConfigPoolCondition contains condition information - for an MachineConfigPool. - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the timestamp corresponding to the last status - change of this condition. - format: date-time - nullable: true - type: string - message: - description: |- - message is a human readable description of the details of the last - transition, complementing reason. - type: string - reason: - description: |- - reason is a brief machine readable explanation for the condition's last - transition. - type: string - status: - description: status of the condition, one of ('True', 'False', - 'Unknown'). - type: string - type: - description: type of the condition, currently ('Done', 'Updating', - 'Failed'). - type: string - type: object - type: array - x-kubernetes-list-type: atomic - configuration: - description: configuration represents the current MachineConfig object - for the machine config pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - degradedMachineCount: - description: |- - degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). - A node is marked degraded if applying a configuration failed.. - format: int32 - type: integer - machineCount: - description: machineCount represents the total number of machines - in the machine config pool. - format: int32 - type: integer - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - poolSynchronizersStatus: - description: poolSynchronizersStatus is the status of the machines - managed by the pool synchronizers. - items: - properties: - availableMachineCount: - description: availableMachineCount is the number of machines - managed by the node synchronizer which are available. - format: int64 - minimum: 0 - type: integer - machineCount: - description: machineCount is the number of machines that are - managed by the node synchronizer. - format: int64 - minimum: 0 - type: integer - observedGeneration: - description: observedGeneration is the last generation change - that has been applied. - format: int64 - minimum: 0 - type: integer - x-kubernetes-validations: - - message: observedGeneration must not move backwards except - to zero - rule: self >= oldSelf || (self == 0 && oldSelf > 0) - poolSynchronizerType: - description: poolSynchronizerType describes the type of the - pool synchronizer. - enum: - - PinnedImageSets - maxLength: 256 - type: string - readyMachineCount: - description: readyMachineCount is the number of machines managed - by the node synchronizer that are in a ready state. - format: int64 - minimum: 0 - type: integer - unavailableMachineCount: - description: unavailableMachineCount is the number of machines - managed by the node synchronizer but are unavailable. - format: int64 - minimum: 0 - type: integer - updatedMachineCount: - description: updatedMachineCount is the number of machines that - have been updated by the node synchronizer. - format: int64 - minimum: 0 - type: integer - required: - - availableMachineCount - - machineCount - - poolSynchronizerType - - readyMachineCount - - unavailableMachineCount - - updatedMachineCount - type: object - x-kubernetes-validations: - - message: machineCount must be greater than or equal to updatedMachineCount - rule: self.machineCount >= self.updatedMachineCount - - message: machineCount must be greater than or equal to availableMachineCount - rule: self.machineCount >= self.availableMachineCount - - message: machineCount must be greater than or equal to unavailableMachineCount - rule: self.machineCount >= self.unavailableMachineCount - - message: machineCount must be greater than or equal to readyMachineCount - rule: self.machineCount >= self.readyMachineCount - - message: availableMachineCount must be greater than or equal to - readyMachineCount - rule: self.availableMachineCount >= self.readyMachineCount - type: array - x-kubernetes-list-map-keys: - - poolSynchronizerType - x-kubernetes-list-type: map - readyMachineCount: - description: readyMachineCount represents the total number of ready - machines targeted by the pool. - format: int32 - type: integer - unavailableMachineCount: - description: |- - unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. - A node is marked unavailable if it is in updating state or NodeReady condition is false. - format: int32 - type: integer - updatedMachineCount: - description: updatedMachineCount represents the total number of machines - targeted by the pool that have the CurrentMachineConfig as their - config. - format: int32 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index ef048f6a848..00000000000 --- a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,617 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/1453 - 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: machineconfigpools.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: MachineConfigPool - listKind: MachineConfigPoolList - plural: machineconfigpools - shortNames: - - mcp - singular: machineconfigpool - scope: Cluster - versions: - - additionalPrinterColumns: - - jsonPath: .status.configuration.name - name: Config - type: string - - description: When all the machines in the pool are updated to the correct machine - config. - jsonPath: .status.conditions[?(@.type=="Updated")].status - name: Updated - type: string - - description: When at least one of machine is not either not updated or is in - the process of updating to the desired machine config. - jsonPath: .status.conditions[?(@.type=="Updating")].status - name: Updating - type: string - - description: When progress is blocked on updating one or more nodes or the pool - configuration is failing. - jsonPath: .status.conditions[?(@.type=="Degraded")].status - name: Degraded - type: string - - description: Total number of machines in the machine config pool - jsonPath: .status.machineCount - name: MachineCount - type: number - - description: Total number of ready machines targeted by the pool - jsonPath: .status.readyMachineCount - name: ReadyMachineCount - type: number - - description: Total number of machines targeted by the pool that have the CurrentMachineConfig - as their config - jsonPath: .status.updatedMachineCount - name: UpdatedMachineCount - type: number - - description: Total number of machines marked degraded (or unreconcilable) - jsonPath: .status.degradedMachineCount - name: DegradedMachineCount - type: number - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfigPool describes a pool of MachineConfigs. - - 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 contains the desired machine config pool configuration. - properties: - configuration: - description: The targeted MachineConfig object for the machine config - pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - machineConfigSelector: - description: |- - machineConfigSelector specifies a label selector for MachineConfigs. - Refer https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/ on how label and selectors work. - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - maxUnavailable: - anyOf: - - type: integer - - type: string - description: |- - maxUnavailable defines either an integer number or percentage - of nodes in the pool that can go Unavailable during an update. - This includes nodes Unavailable for any reason, including user - initiated cordons, failing nodes, etc. The default value is 1. - - A value larger than 1 will mean multiple nodes going unavailable during - the update, which may affect your workload stress on the remaining nodes. - You cannot set this value to 0 to stop updates (it will default back to 1); - to stop updates, use the 'paused' property instead. Drain will respect - Pod Disruption Budgets (PDBs) such as etcd quorum guards, even if - maxUnavailable is greater than one. - x-kubernetes-int-or-string: true - nodeSelector: - description: nodeSelector specifies a label selector for Machines - properties: - matchExpressions: - description: matchExpressions is a list of label selector requirements. - The requirements are ANDed. - items: - description: |- - A label selector requirement is a selector that contains values, a key, and an operator that - relates the key and values. - properties: - key: - description: key is the label key that the selector applies - to. - type: string - operator: - description: |- - operator represents a key's relationship to a set of values. - Valid operators are In, NotIn, Exists and DoesNotExist. - type: string - values: - description: |- - values is an array of string values. If the operator is In or NotIn, - the values array must be non-empty. If the operator is Exists or DoesNotExist, - the values array must be empty. This array is replaced during a strategic - merge patch. - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - description: |- - matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels - map is equivalent to an element of matchExpressions, whose key field is "key", the - operator is "In", and the values array contains only "value". The requirements are ANDed. - type: object - type: object - x-kubernetes-map-type: atomic - paused: - description: |- - paused specifies whether or not changes to this machine config pool should be stopped. - This includes generating new desiredMachineConfig and update of machines. - type: boolean - pinnedImageSets: - description: |- - pinnedImageSets specifies a sequence of PinnedImageSetRef objects for the - pool. Nodes within this pool will preload and pin images defined in the - PinnedImageSet. Before pulling images the MachineConfigDaemon will ensure - the total uncompressed size of all the images does not exceed available - resources. If the total size of the images exceeds the available - resources the controller will report a Degraded status to the - MachineConfigPool and not attempt to pull any images. Also to help ensure - the kubelet can mitigate storage risk, the pinned_image configuration and - subsequent service reload will happen only after all of the images have - been pulled for each set. Images from multiple PinnedImageSets are loaded - and pinned sequentially as listed. Duplicate and existing images will be - skipped. - - Any failure to prefetch or pin images will result in a Degraded pool. - Resolving these failures is the responsibility of the user. The admin - should be proactive in ensuring adequate storage and proper image - authentication exists in advance. - items: - properties: - name: - description: |- - name is a reference to the name of a PinnedImageSet. Must adhere to - RFC-1123 (https://tools.ietf.org/html/rfc1123). - Made up of one of more period-separated (.) segments, where each segment - consists of alphanumeric characters and hyphens (-), must begin and end - with an alphanumeric character, and is at most 63 characters in length. - The total length of the name must not exceed 253 characters. - maxLength: 253 - minLength: 1 - pattern: ^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])(\.([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]{0,61}[a-zA-Z0-9]))*$ - type: string - required: - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - status: - description: status contains observed information about the machine config - pool. - properties: - certExpirys: - description: certExpirys keeps track of important certificate expiration - data - items: - description: ceryExpiry contains the bundle name and the expiry - date - properties: - bundle: - description: bundle is the name of the bundle in which the subject - certificate resides - type: string - expiry: - description: expiry is the date after which the certificate - will no longer be valid - format: date-time - type: string - subject: - description: subject is the subject of the certificate - type: string - required: - - bundle - - subject - type: object - type: array - x-kubernetes-list-type: atomic - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: MachineConfigPoolCondition contains condition information - for an MachineConfigPool. - properties: - lastTransitionTime: - description: |- - lastTransitionTime is the timestamp corresponding to the last status - change of this condition. - format: date-time - nullable: true - type: string - message: - description: |- - message is a human readable description of the details of the last - transition, complementing reason. - type: string - reason: - description: |- - reason is a brief machine readable explanation for the condition's last - transition. - type: string - status: - description: status of the condition, one of ('True', 'False', - 'Unknown'). - type: string - type: - description: type of the condition, currently ('Done', 'Updating', - 'Failed'). - type: string - type: object - type: array - x-kubernetes-list-type: atomic - configuration: - description: configuration represents the current MachineConfig object - for the machine config pool. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - source: - description: source is the list of MachineConfig objects that - were used to generate the single MachineConfig object specified - in `content`. - items: - description: ObjectReference contains enough information to - let you inspect or modify the referred object. - properties: - apiVersion: - description: API version of the referent. - type: string - fieldPath: - description: |- - If referring to a piece of an object instead of an entire object, this string - should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. - For example, if the object reference is to a container within a pod, this would take on a value like: - "spec.containers{name}" (where "name" refers to the name of the container that triggered - the event) or if no container name is specified "spec.containers[2]" (container with - index 2 in this pod). This syntax is chosen only to have some well-defined way of - referencing a part of an object. - type: string - kind: - description: |- - Kind of the referent. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds - type: string - name: - description: |- - Name of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names - type: string - namespace: - description: |- - Namespace of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ - type: string - resourceVersion: - description: |- - Specific resourceVersion to which this reference is made, if any. - More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency - type: string - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - uid: - description: |- - UID of the referent. - More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids - type: string - type: object - x-kubernetes-map-type: atomic - degradedMachineCount: - description: |- - degradedMachineCount represents the total number of machines marked degraded (or unreconcilable). - A node is marked degraded if applying a configuration failed.. - format: int32 - type: integer - machineCount: - description: machineCount represents the total number of machines - in the machine config pool. - format: int32 - type: integer - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - poolSynchronizersStatus: - description: poolSynchronizersStatus is the status of the machines - managed by the pool synchronizers. - items: - properties: - availableMachineCount: - description: availableMachineCount is the number of machines - managed by the node synchronizer which are available. - format: int64 - minimum: 0 - type: integer - machineCount: - description: machineCount is the number of machines that are - managed by the node synchronizer. - format: int64 - minimum: 0 - type: integer - observedGeneration: - description: observedGeneration is the last generation change - that has been applied. - format: int64 - minimum: 0 - type: integer - x-kubernetes-validations: - - message: observedGeneration must not move backwards except - to zero - rule: self >= oldSelf || (self == 0 && oldSelf > 0) - poolSynchronizerType: - description: poolSynchronizerType describes the type of the - pool synchronizer. - enum: - - PinnedImageSets - maxLength: 256 - type: string - readyMachineCount: - description: readyMachineCount is the number of machines managed - by the node synchronizer that are in a ready state. - format: int64 - minimum: 0 - type: integer - unavailableMachineCount: - description: unavailableMachineCount is the number of machines - managed by the node synchronizer but are unavailable. - format: int64 - minimum: 0 - type: integer - updatedMachineCount: - description: updatedMachineCount is the number of machines that - have been updated by the node synchronizer. - format: int64 - minimum: 0 - type: integer - required: - - availableMachineCount - - machineCount - - poolSynchronizerType - - readyMachineCount - - unavailableMachineCount - - updatedMachineCount - type: object - x-kubernetes-validations: - - message: machineCount must be greater than or equal to updatedMachineCount - rule: self.machineCount >= self.updatedMachineCount - - message: machineCount must be greater than or equal to availableMachineCount - rule: self.machineCount >= self.availableMachineCount - - message: machineCount must be greater than or equal to unavailableMachineCount - rule: self.machineCount >= self.unavailableMachineCount - - message: machineCount must be greater than or equal to readyMachineCount - rule: self.machineCount >= self.readyMachineCount - - message: availableMachineCount must be greater than or equal to - readyMachineCount - rule: self.availableMachineCount >= self.readyMachineCount - type: array - x-kubernetes-list-map-keys: - - poolSynchronizerType - x-kubernetes-list-type: map - readyMachineCount: - description: readyMachineCount represents the total number of ready - machines targeted by the pool. - format: int32 - type: integer - unavailableMachineCount: - description: |- - unavailableMachineCount represents the total number of unavailable (non-ready) machines targeted by the pool. - A node is marked unavailable if it is in updating state or NodeReady condition is false. - format: int32 - type: integer - updatedMachineCount: - description: updatedMachineCount represents the total number of machines - targeted by the pool that have the CurrentMachineConfig as their - config. - format: int32 - type: integer - type: object - required: - - spec - type: object - served: true - storage: true - subresources: - status: {} diff --git a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools.crd.yaml similarity index 99% rename from payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml rename to payload-manifests/crds/0000_80_machine-config_01_machineconfigpools.crd.yaml index e4cd170511f..5d69585f085 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_machineconfigpools.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: machineconfigpools.machineconfiguration.openshift.io diff --git a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 18775703be5..00000000000 --- a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/2198 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - Image references must be by digest. - A maximum of 500 images may be specified. - items: - description: PinnedImageRef represents a reference to an OCI image - properties: - name: - description: |- - name is an OCI Image referenced by digest. - The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - The length of the whole spec must be between 1 to 447 characters. - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: (self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')) - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: (self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - required: - - spec - type: object - served: true - storage: true diff --git a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index f0bf8d539a2..00000000000 --- a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,102 +0,0 @@ -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/2198 - 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: pinnedimagesets.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: PinnedImageSet - listKind: PinnedImageSetList - plural: pinnedimagesets - singular: pinnedimageset - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - PinnedImageSet describes a set of images that should be pinned by CRI-O and - pulled to the nodes which are members of the declared MachineConfigPools. - - 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 this pinned image set. - properties: - pinnedImages: - description: |- - pinnedImages is a list of OCI Image referenced by digest that should be - pinned and pre-loaded by the nodes of a MachineConfigPool. - Translates into a new file inside the /etc/crio/crio.conf.d directory - with content similar to this: - - pinned_images = [ - "quay.io/openshift-release-dev/ocp-release@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - ... - ] - - Image references must be by digest. - A maximum of 500 images may be specified. - items: - description: PinnedImageRef represents a reference to an OCI image - properties: - name: - description: |- - name is an OCI Image referenced by digest. - The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - The length of the whole spec must be between 1 to 447 characters. - maxLength: 447 - minLength: 1 - type: string - x-kubernetes-validations: - - message: the OCI Image reference must end with a valid '@sha256:' - suffix, where '' is 64 characters long - rule: (self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$')) - - message: the OCI Image name should follow the host[:port][/namespace]/name - format, resembling a valid URL without the scheme - rule: (self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$')) - required: - - name - type: object - maxItems: 500 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - required: - - pinnedImages - type: object - required: - - spec - type: object - served: true - storage: true diff --git a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml b/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets.crd.yaml similarity index 98% rename from payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml rename to payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets.crd.yaml index 5aebd9b228d..49fd8d52f6f 100644 --- a/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets-CustomNoUpgrade.crd.yaml +++ b/payload-manifests/crds/0000_80_machine-config_01_pinnedimagesets.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: pinnedimagesets.machineconfiguration.openshift.io diff --git a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml index c97fd267e0f..aae019ff621 100644 --- a/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml +++ b/payload-manifests/featuregates/featureGate-Hypershift-Default.yaml @@ -148,9 +148,6 @@ { "name": "OnClusterBuild" }, - { - "name": "PinnedImages" - }, { "name": "PlatformOperators" }, @@ -291,6 +288,9 @@ { "name": "PersistentIPsForVirtualization" }, + { + "name": "PinnedImages" + }, { "name": "PrivateHostedZoneAWS" }, diff --git a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml index aa2a1b63ab7..712aaa98d22 100644 --- a/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml +++ b/payload-manifests/featuregates/featureGate-SelfManagedHA-Default.yaml @@ -148,9 +148,6 @@ { "name": "OnClusterBuild" }, - { - "name": "PinnedImages" - }, { "name": "PlatformOperators" }, @@ -291,6 +288,9 @@ { "name": "PersistentIPsForVirtualization" }, + { + "name": "PinnedImages" + }, { "name": "PrivateHostedZoneAWS" },