diff --git a/go.mod b/go.mod
index fa6f2ceeef..52cccc36bb 100644
--- a/go.mod
+++ b/go.mod
@@ -37,8 +37,8 @@ require (
github.com/onsi/gomega v1.38.2
github.com/opencontainers/go-digest v1.0.0
github.com/openshift-eng/openshift-tests-extension v0.0.0-20260127124016-0fed2b824818
- github.com/openshift/api v0.0.0-20260717133910-57eb58a15422
- github.com/openshift/client-go v0.0.0-20260720094807-fbc45213df28
+ github.com/openshift/api v0.0.0-20260817165856-9fda5179a7f7
+ github.com/openshift/client-go v0.0.0-20260818144019-860af65a7cbc
github.com/openshift/library-go v0.0.0-20260303171201-5d9eb6295ff6
github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b
github.com/prometheus/client_golang v1.23.2
diff --git a/go.sum b/go.sum
index cd705e4f6f..1702bd545d 100644
--- a/go.sum
+++ b/go.sum
@@ -623,10 +623,10 @@ github.com/opencontainers/selinux v1.13.0 h1:Zza88GWezyT7RLql12URvoxsbLfjFx988+L
github.com/opencontainers/selinux v1.13.0/go.mod h1:XxWTed+A/s5NNq4GmYScVy+9jzXhGBVEOAyucdRUY8s=
github.com/openshift-eng/openshift-tests-extension v0.0.0-20260127124016-0fed2b824818 h1:jJLE/aCAqDf8U4wc3bE1IEKgIxbb0ICjCNVFA49x/8s=
github.com/openshift-eng/openshift-tests-extension v0.0.0-20260127124016-0fed2b824818/go.mod h1:6gkP5f2HL0meusT0Aim8icAspcD1cG055xxBZ9yC68M=
-github.com/openshift/api v0.0.0-20260717133910-57eb58a15422 h1:XIUxnjPKf+qjoOGrdjow458H9hgA4sx3QKACCt+Fy58=
-github.com/openshift/api v0.0.0-20260717133910-57eb58a15422/go.mod h1:pyVjK0nZ4sRs4fuQVQ4rubsJdahI1PB94LnQ8sGdvxo=
-github.com/openshift/client-go v0.0.0-20260720094807-fbc45213df28 h1:7umi+uA/Bm1PAEXduwzfQRsMZ8WR0/LHh9YXezJnxaA=
-github.com/openshift/client-go v0.0.0-20260720094807-fbc45213df28/go.mod h1:dOrynOHvh9q01db+7+Eu8O0do1FTrAUQSnI9tzJhO8Y=
+github.com/openshift/api v0.0.0-20260817165856-9fda5179a7f7 h1:uFNuAmnV94fsPpmFuO2yDz0N3xy1+L5N802hPoNHVVw=
+github.com/openshift/api v0.0.0-20260817165856-9fda5179a7f7/go.mod h1:pyVjK0nZ4sRs4fuQVQ4rubsJdahI1PB94LnQ8sGdvxo=
+github.com/openshift/client-go v0.0.0-20260818144019-860af65a7cbc h1:CBh9auSrUo+N2gIP/uf5lNn9WfYiHRo7yNql9CNP8PE=
+github.com/openshift/client-go v0.0.0-20260818144019-860af65a7cbc/go.mod h1:KlQTifDju+xKbhiWzjcM3SMYpMfJw2Xb0jNzFW30/F4=
github.com/openshift/kubernetes v1.30.1-0.20260305123649-d18f3f005eaa h1:/gPMWR7fdCC3S4wHALD6Em+vztl1q9/cOpdMkFZwDus=
github.com/openshift/kubernetes v1.30.1-0.20260305123649-d18f3f005eaa/go.mod h1:1r2FIoYrPU0110cjYlWAwNcbiqRPLWAgmZK4d0YeEZw=
github.com/openshift/kubernetes/staging/src/k8s.io/api v0.0.0-20260305123649-d18f3f005eaa h1:ifOqAFthJWnT1HS6Sq2AcLQWNSJ1+XEiyA9eo+PIcR0=
diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md
index 97062fde68..f35301ac29 100644
--- a/vendor/github.com/openshift/api/features.md
+++ b/vendor/github.com/openshift/api/features.md
@@ -21,7 +21,6 @@
| NewOLMConfigAPI| | | | Enabled | | | | Enabled |
| NewOLMOwnSingleNamespace| | | | Enabled | | | | Enabled |
| NewOLMPreflightPermissionChecks| | | | Enabled | | | | Enabled |
-| NoRegistryClusterInstall| | | | Enabled | | | | Enabled |
| ProvisioningRequestAvailable| | | Enabled | Enabled | | | | |
| VSphereMultiVCenterDay2| | | Enabled | Enabled | | | | |
| AWSClusterHostedDNS| | | Enabled | Enabled | | | Enabled | Enabled |
@@ -77,6 +76,7 @@
| NewOLM| | Enabled | | Enabled | | Enabled | | Enabled |
| NewOLMWebhookProviderOpenshiftServiceCA| | Enabled | | Enabled | | Enabled | | Enabled |
| NoOverlayMode| | | Enabled | Enabled | | | Enabled | Enabled |
+| NoRegistryClusterInstall| | Enabled | | Enabled | | Enabled | | Enabled |
| NutanixMultiSubnets| | | Enabled | Enabled | | | Enabled | Enabled |
| OSStreams| | | Enabled | Enabled | | | Enabled | Enabled |
| OVNObservability| | | Enabled | Enabled | | | Enabled | Enabled |
diff --git a/vendor/github.com/openshift/api/features/features.go b/vendor/github.com/openshift/api/features/features.go
index 30523fa067..4fa3616a72 100644
--- a/vendor/github.com/openshift/api/features/features.go
+++ b/vendor/github.com/openshift/api/features/features.go
@@ -822,7 +822,7 @@ var (
contactPerson("andfasano").
productScope(ocpSpecific).
enhancementPR("https://github.com/openshift/enhancements/pull/1821").
- enable(inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
+ enable(inDefault(), inOKD(), inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()).
mustRegister()
FeatureGateAWSClusterHostedDNSInstall = newFeatureGate("AWSClusterHostedDNSInstall").
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-Hypershift.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-Hypershift.crd.yaml
index 23dd6410bc..ed5a750e60 100644
--- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-Hypershift.crd.yaml
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-Hypershift.crd.yaml
@@ -292,272 +292,3 @@ spec:
storage: true
subresources:
status: {}
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- description: |-
- InternalReleaseImage is used to keep track and manage a set
- of release bundles (OCP and OLM operators images) that are stored
- into the control planes nodes.
-
- 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 internal release
- image.
- properties:
- releases:
- description: |-
- releases is a list of release bundle identifiers that the user wants to
- add/remove to/from the control plane nodes.
- Entries must be unique, keyed on the name field.
- releases must contain at least one entry and must not exceed 16 entries.
- items:
- description: |-
- InternalReleaseImageRef is used to provide a simple reference for a release
- bundle. Currently it contains only the name field.
- properties:
- name:
- description: |-
- name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
- The expected name format is ocp-release-bundle--.
- maxLength: 64
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: must be ocp-release-bundle--
- and <= 64 chars
- rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
- required:
- - name
- type: object
- maxItems: 16
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - releases
- type: object
- status:
- description: status describes the last observed state of this internal
- release image.
- properties:
- conditions:
- description: |-
- conditions represent the observations of the InternalReleaseImage controller current state.
- Valid types are: Degraded.
- If Degraded is true, that means something has gone wrong in the controller.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- releases:
- description: |-
- releases is a list of the release bundles currently owned and managed by the
- cluster.
- A release bundle content could be safely pulled only when its Conditions field
- contains at least an Available entry set to "True" and Degraded to "False".
- Entries must be unique, keyed on the name field.
- releases must contain at least one entry and must not exceed 32 entries.
- items:
- properties:
- conditions:
- description: |-
- conditions represent the observations of an internal release image current state. Valid types are:
- Mounted, Installing, Available, Removing and Degraded.
-
- If Mounted is true, that means that a valid ISO has been discovered and mounted on one of the cluster nodes.
- If Installing is true, that means that a new release bundle is currently being copied on one (or more) cluster nodes, and not yet completed.
- If Available is true, it means that the release has been previously installed on all the cluster nodes, and it can be used.
- If Removing is true, it means that a release deletion is in progress on one (or more) cluster nodes, and not yet completed.
- If Degraded is true, that means something has gone wrong (possibly on one or more cluster nodes).
-
- In general, after installing a new release bundle, it is required to wait for the Conditions "Available" to become "True" (and all
- the other conditions to be equal to "False") before being able to pull its content.
- items:
- description: Condition contains details for one aspect of
- the current state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False,
- Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 5
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- image:
- description: |-
- image is an OCP release 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.
- The field is optional, and it will be provided after a release will be successfully installed.
- 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-_.]*?$'))
- name:
- description: |-
- name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
- The expected name format is ocp-release-bundle--.
- maxLength: 64
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: must be ocp-release-bundle--
- and <= 64 chars
- rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
- required:
- - name
- type: object
- maxItems: 32
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - releases
- type: object
- required:
- - metadata
- - spec
- type: object
- x-kubernetes-validations:
- - message: internalreleaseimage is a singleton, .metadata.name must be 'cluster'
- rule: self.metadata.name == 'cluster'
- served: true
- storage: false
- subresources:
- status: {}
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
index b5b2f6f185..573fe978c5 100644
--- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
@@ -5,7 +5,6 @@ metadata:
api-approved.openshift.io: https://github.com/openshift/api/pull/2510
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade,DevPreviewNoUpgrade,TechPreviewNoUpgrade
labels:
openshift.io/operator-managed: ""
name: internalreleaseimages.machineconfiguration.openshift.io
@@ -292,272 +291,3 @@ spec:
storage: true
subresources:
status: {}
- - name: v1alpha1
- schema:
- openAPIV3Schema:
- description: |-
- InternalReleaseImage is used to keep track and manage a set
- of release bundles (OCP and OLM operators images) that are stored
- into the control planes nodes.
-
- 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 internal release
- image.
- properties:
- releases:
- description: |-
- releases is a list of release bundle identifiers that the user wants to
- add/remove to/from the control plane nodes.
- Entries must be unique, keyed on the name field.
- releases must contain at least one entry and must not exceed 16 entries.
- items:
- description: |-
- InternalReleaseImageRef is used to provide a simple reference for a release
- bundle. Currently it contains only the name field.
- properties:
- name:
- description: |-
- name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
- The expected name format is ocp-release-bundle--.
- maxLength: 64
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: must be ocp-release-bundle--
- and <= 64 chars
- rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
- required:
- - name
- type: object
- maxItems: 16
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - releases
- type: object
- status:
- description: status describes the last observed state of this internal
- release image.
- properties:
- conditions:
- description: |-
- conditions represent the observations of the InternalReleaseImage controller current state.
- Valid types are: Degraded.
- If Degraded is true, that means something has gone wrong in the controller.
- items:
- description: Condition contains details for one aspect of the current
- state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False, Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 20
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- releases:
- description: |-
- releases is a list of the release bundles currently owned and managed by the
- cluster.
- A release bundle content could be safely pulled only when its Conditions field
- contains at least an Available entry set to "True" and Degraded to "False".
- Entries must be unique, keyed on the name field.
- releases must contain at least one entry and must not exceed 32 entries.
- items:
- properties:
- conditions:
- description: |-
- conditions represent the observations of an internal release image current state. Valid types are:
- Mounted, Installing, Available, Removing and Degraded.
-
- If Mounted is true, that means that a valid ISO has been discovered and mounted on one of the cluster nodes.
- If Installing is true, that means that a new release bundle is currently being copied on one (or more) cluster nodes, and not yet completed.
- If Available is true, it means that the release has been previously installed on all the cluster nodes, and it can be used.
- If Removing is true, it means that a release deletion is in progress on one (or more) cluster nodes, and not yet completed.
- If Degraded is true, that means something has gone wrong (possibly on one or more cluster nodes).
-
- In general, after installing a new release bundle, it is required to wait for the Conditions "Available" to become "True" (and all
- the other conditions to be equal to "False") before being able to pull its content.
- items:
- description: Condition contains details for one aspect of
- the current state of this API Resource.
- properties:
- lastTransitionTime:
- description: |-
- lastTransitionTime is the last time the condition transitioned from one status to another.
- This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
- format: date-time
- type: string
- message:
- description: |-
- message is a human readable message indicating details about the transition.
- This may be an empty string.
- maxLength: 32768
- type: string
- observedGeneration:
- description: |-
- observedGeneration represents the .metadata.generation that the condition was set based upon.
- For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
- with respect to the current state of the instance.
- format: int64
- minimum: 0
- type: integer
- reason:
- description: |-
- reason contains a programmatic identifier indicating the reason for the condition's last transition.
- Producers of specific condition types may define expected values and meanings for this field,
- and whether the values are considered a guaranteed API.
- The value should be a CamelCase string.
- This field may not be empty.
- maxLength: 1024
- minLength: 1
- pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
- type: string
- status:
- description: status of the condition, one of True, False,
- Unknown.
- enum:
- - "True"
- - "False"
- - Unknown
- type: string
- type:
- description: type of condition in CamelCase or in foo.example.com/CamelCase.
- maxLength: 316
- pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
- type: string
- required:
- - lastTransitionTime
- - message
- - reason
- - status
- - type
- type: object
- maxItems: 5
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - type
- x-kubernetes-list-type: map
- image:
- description: |-
- image is an OCP release 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.
- The field is optional, and it will be provided after a release will be successfully installed.
- 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-_.]*?$'))
- name:
- description: |-
- name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
- The expected name format is ocp-release-bundle--.
- maxLength: 64
- minLength: 1
- type: string
- x-kubernetes-validations:
- - message: must be ocp-release-bundle--
- and <= 64 chars
- rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
- required:
- - name
- type: object
- maxItems: 32
- minItems: 1
- type: array
- x-kubernetes-list-map-keys:
- - name
- x-kubernetes-list-type: map
- required:
- - releases
- type: object
- required:
- - metadata
- - spec
- type: object
- x-kubernetes-validations:
- - message: internalreleaseimage is a singleton, .metadata.name must be 'cluster'
- rule: self.metadata.name == 'cluster'
- served: true
- storage: false
- subresources:
- status: {}
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Default.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-Default.crd.yaml
similarity index 99%
rename from vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Default.crd.yaml
rename to vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-Default.crd.yaml
index 85c7775046..69920b355a 100644
--- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Default.crd.yaml
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-Default.crd.yaml
@@ -5,7 +5,6 @@ metadata:
api-approved.openshift.io: https://github.com/openshift/api/pull/2255
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
release.openshift.io/feature-set: Default
labels:
openshift.io/operator-managed: ""
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-OKD.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-OKD.crd.yaml
similarity index 99%
rename from vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-OKD.crd.yaml
rename to vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-OKD.crd.yaml
index 8263d17833..966080e5bb 100644
--- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-OKD.crd.yaml
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-Hypershift-OKD.crd.yaml
@@ -5,7 +5,6 @@ metadata:
api-approved.openshift.io: https://github.com/openshift/api/pull/2255
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/ibm-cloud-managed: "true"
- include.release.openshift.io/self-managed-high-availability: "true"
release.openshift.io/feature-set: OKD
labels:
openshift.io/operator-managed: ""
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-Default.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-Default.crd.yaml
new file mode 100644
index 0000000000..45b3c65985
--- /dev/null
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-Default.crd.yaml
@@ -0,0 +1,520 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ api-approved.openshift.io: https://github.com/openshift/api/pull/2255
+ api.openshift.io/merged-by-featuregates: "true"
+ include.release.openshift.io/self-managed-high-availability: "true"
+ release.openshift.io/feature-set: Default
+ labels:
+ openshift.io/operator-managed: ""
+ name: machineconfignodes.machineconfiguration.openshift.io
+spec:
+ group: machineconfiguration.openshift.io
+ names:
+ kind: MachineConfigNode
+ listKind: MachineConfigNodeList
+ plural: machineconfignodes
+ singular: machineconfignode
+ scope: Cluster
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.pool.name
+ name: PoolName
+ type: string
+ - jsonPath: .spec.configVersion.desired
+ name: DesiredConfig
+ type: string
+ - jsonPath: .status.configVersion.current
+ name: CurrentConfig
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Updated")].status
+ name: Updated
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
+ name: UpdatePrepared
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
+ name: UpdateExecuted
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
+ name: UpdatePostActionComplete
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
+ name: UpdateComplete
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Resumed")].status
+ name: Resumed
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
+ name: UpdatedFilesAndOS
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
+ name: CordonedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Drained")].status
+ name: DrainedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
+ name: RebootedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
+ name: UncordonedNode
+ priority: 1
+ type: string
+ name: v1
+ schema:
+ openAPIV3Schema:
+ description: |-
+ MachineConfigNode describes the health of the Machines on the system
+ Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: spec describes the configuration of the machine config node.
+ properties:
+ configVersion:
+ description: |-
+ configVersion holds the desired config version for the node targeted by this machine config node resource.
+ The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
+ the new machine config against the current machine config.
+ properties:
+ desired:
+ description: |-
+ desired is the name of the machine config that the the node should be upgraded to.
+ This value is set when the machine config pool generates a new version of its rendered configuration.
+ When this value is changed, the machine config daemon starts the node upgrade process.
+ This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - desired
+ type: object
+ node:
+ description: node contains a reference to the node for this machine
+ config node.
+ properties:
+ name:
+ description: |-
+ name is the name of the object being referenced. For example, this can represent a machine
+ config pool or node name.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ pool:
+ description: |-
+ pool contains a reference to the machine config pool that this machine config node's
+ referenced node belongs to.
+ properties:
+ name:
+ description: |-
+ name is the name of the object being referenced. For example, this can represent a machine
+ config pool or node name.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ required:
+ - configVersion
+ - node
+ - pool
+ type: object
+ status:
+ description: status describes the last observed state of this machine
+ config node.
+ properties:
+ conditions:
+ description: |-
+ conditions represent the observations of a machine config node's current state. Valid types are:
+ UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
+ Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
+ and PinnedImageSetsDegraded.
+ The following types are only available when the ImageModeStatusReporting feature gate is enabled: ImagePulledFromRegistry,
+ AppliedOSImage, AppliedFiles
+ The following types are only available when the NoRegistryClusterInstall feature gate is enabled: InternalReleaseImageDegraded
+ items:
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
+ properties:
+ lastTransitionTime:
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True, False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ maxItems: 20
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ configVersion:
+ description: configVersion describes the current and desired machine
+ config version for this node.
+ properties:
+ current:
+ description: |-
+ current is the name of the machine config currently in use on the node.
+ This value is updated once the machine config daemon has completed the update of the configuration for the node.
+ This value should match the desired version unless an upgrade is in progress.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ desired:
+ description: |-
+ desired is the MachineConfig the node wants to upgrade to.
+ This value gets set in the machine config node status once the machine config has been validated
+ against the current machine config.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - desired
+ type: object
+ internalReleaseImage:
+ description: |-
+ internalReleaseImage describes the status of the release payloads stored in the node.
+ When specified, an internalReleaseImage custom resource exists on the cluster, and the specified images will be made available on the control plane nodes.
+ This field will reflect the actual on-disk state of those release images.
+ properties:
+ releases:
+ description: |-
+ releases is a list of the release bundles currently owned and managed by the
+ cluster.
+ A release bundle content could be safely pulled only when its Conditions field
+ contains at least an Available entry set to "True" and Degraded to "False".
+ Entries must be unique, keyed on the name field.
+ releases must contain at least one entry and must not exceed 32 entries.
+ items:
+ description: |-
+ MachineConfigNodeStatusInternalReleaseImageRef is used to provide a more detailed reference for
+ a release bundle.
+ properties:
+ conditions:
+ description: |-
+ conditions represent the observations of an internal release image current state. Valid types are:
+ Mounted, Installing, Available, Removing and Degraded.
+
+ If Mounted is true, that means that a valid ISO has been mounted on the current node.
+ If Installing is true, that means that a new release bundle is currently being copied on the current node, and not yet completed.
+ If Available is true, it means that the release has been previously installed on the current node, and it can be used.
+ If Removing is true, it means that a release deletion is in progress on the current node, and not yet completed.
+ If Degraded is true, that means something has gone wrong in the current node.
+ items:
+ description: Condition contains details for one aspect
+ of the current state of this API Resource.
+ properties:
+ lastTransitionTime:
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True,
+ False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in
+ foo.example.com/CamelCase.
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ maxItems: 5
+ minItems: 1
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ image:
+ description: |-
+ image is an OCP release 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 host must be either exactly "localhost" or a dot-qualified domain name.
+ Single-label hosts other than "localhost" are not permitted.
+ The length of the whole spec must be between 1 to 447 characters.
+ The field is optional, and it will be provided after a release will be successfully installed.
+ 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; host
+ must be either 'localhost' or a dot-qualified domain
+ name
+ rule: (self.split('@')[0].matches('^(localhost|([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+)(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))
+ name:
+ description: |-
+ name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
+ The expected name format is ocp-release-bundle--.
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: must be ocp-release-bundle--
+ and <= 64 chars
+ rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
+ required:
+ - name
+ type: object
+ maxItems: 32
+ minItems: 1
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ required:
+ - releases
+ type: object
+ observedGeneration:
+ description: |-
+ observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
+ This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
+ format: int64
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: observedGeneration must not decrease
+ rule: self >= oldSelf
+ pinnedImageSets:
+ description: pinnedImageSets describes the current and desired pinned
+ image sets for this node.
+ items:
+ description: MachineConfigNodeStatusPinnedImageSet holds information
+ about the current, desired, and failed pinned image sets for the
+ observed machine config node.
+ properties:
+ currentGeneration:
+ description: currentGeneration is the generation of the pinned
+ image set that has most recently been successfully pulled
+ and pinned on this node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: currentGeneration must not decrease
+ rule: self >= oldSelf
+ desiredGeneration:
+ description: desiredGeneration is the generation of the pinned
+ image set that is targeted to be pulled and pinned on this
+ node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: desiredGeneration must not decrease
+ rule: self >= oldSelf
+ lastFailedGeneration:
+ description: lastFailedGeneration is the generation of the most
+ recent pinned image set that failed to be pulled and pinned
+ on this node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: lastFailedGeneration must not decrease
+ rule: self >= oldSelf
+ lastFailedGenerationError:
+ description: |-
+ lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
+ The error is an empty string if the image pull and pin is successful.
+ maxLength: 32768
+ type: string
+ name:
+ description: |-
+ name is the name of the pinned image set.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start
+ and end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ x-kubernetes-validations:
+ - message: desired generation must be greater than or equal to the
+ current generation
+ rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
+ ? self.desiredGeneration >= self.currentGeneration : true'
+ - message: desired generation must be greater than or equal to the
+ last failed generation
+ rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
+ ? self.desiredGeneration >= self.lastFailedGeneration : true'
+ - message: last failed generation error must be defined on image
+ pull and pin failure
+ rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
+ : true'
+ maxItems: 100
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ type: object
+ required:
+ - spec
+ type: object
+ x-kubernetes-validations:
+ - message: spec.node.name should match metadata.name
+ rule: self.metadata.name == self.spec.node.name
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-OKD.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-OKD.crd.yaml
new file mode 100644
index 0000000000..fa7edbcf9a
--- /dev/null
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-OKD.crd.yaml
@@ -0,0 +1,520 @@
+apiVersion: apiextensions.k8s.io/v1
+kind: CustomResourceDefinition
+metadata:
+ annotations:
+ api-approved.openshift.io: https://github.com/openshift/api/pull/2255
+ api.openshift.io/merged-by-featuregates: "true"
+ include.release.openshift.io/self-managed-high-availability: "true"
+ release.openshift.io/feature-set: OKD
+ labels:
+ openshift.io/operator-managed: ""
+ name: machineconfignodes.machineconfiguration.openshift.io
+spec:
+ group: machineconfiguration.openshift.io
+ names:
+ kind: MachineConfigNode
+ listKind: MachineConfigNodeList
+ plural: machineconfignodes
+ singular: machineconfignode
+ scope: Cluster
+ versions:
+ - additionalPrinterColumns:
+ - jsonPath: .spec.pool.name
+ name: PoolName
+ type: string
+ - jsonPath: .spec.configVersion.desired
+ name: DesiredConfig
+ type: string
+ - jsonPath: .status.configVersion.current
+ name: CurrentConfig
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Updated")].status
+ name: Updated
+ type: string
+ - jsonPath: .metadata.creationTimestamp
+ name: Age
+ type: date
+ - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status
+ name: UpdatePrepared
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status
+ name: UpdateExecuted
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status
+ name: UpdatePostActionComplete
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status
+ name: UpdateComplete
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Resumed")].status
+ name: Resumed
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status
+ name: UpdatedFilesAndOS
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Cordoned")].status
+ name: CordonedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Drained")].status
+ name: DrainedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status
+ name: RebootedNode
+ priority: 1
+ type: string
+ - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status
+ name: UncordonedNode
+ priority: 1
+ type: string
+ name: v1
+ schema:
+ openAPIV3Schema:
+ description: |-
+ MachineConfigNode describes the health of the Machines on the system
+ Compatibility level 1: Stable within a major release for a minimum of 12 months or 3 minor releases (whichever is longer).
+ properties:
+ apiVersion:
+ description: |-
+ APIVersion defines the versioned schema of this representation of an object.
+ Servers should convert recognized schemas to the latest internal value, and
+ may reject unrecognized values.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
+ type: string
+ kind:
+ description: |-
+ Kind is a string value representing the REST resource this object represents.
+ Servers may infer this from the endpoint the client submits requests to.
+ Cannot be updated.
+ In CamelCase.
+ More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
+ type: string
+ metadata:
+ type: object
+ spec:
+ description: spec describes the configuration of the machine config node.
+ properties:
+ configVersion:
+ description: |-
+ configVersion holds the desired config version for the node targeted by this machine config node resource.
+ The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates
+ the new machine config against the current machine config.
+ properties:
+ desired:
+ description: |-
+ desired is the name of the machine config that the the node should be upgraded to.
+ This value is set when the machine config pool generates a new version of its rendered configuration.
+ When this value is changed, the machine config daemon starts the node upgrade process.
+ This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - desired
+ type: object
+ node:
+ description: node contains a reference to the node for this machine
+ config node.
+ properties:
+ name:
+ description: |-
+ name is the name of the object being referenced. For example, this can represent a machine
+ config pool or node name.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ pool:
+ description: |-
+ pool contains a reference to the machine config pool that this machine config node's
+ referenced node belongs to.
+ properties:
+ name:
+ description: |-
+ name is the name of the object being referenced. For example, this can represent a machine
+ config pool or node name.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ required:
+ - configVersion
+ - node
+ - pool
+ type: object
+ status:
+ description: status describes the last observed state of this machine
+ config node.
+ properties:
+ conditions:
+ description: |-
+ conditions represent the observations of a machine config node's current state. Valid types are:
+ UpdatePrepared, UpdateExecuted, UpdatePostActionComplete, UpdateComplete, Updated, Resumed,
+ Drained, AppliedFilesAndOS, Cordoned, Uncordoned, RebootedNode, NodeDegraded, PinnedImageSetsProgressing,
+ and PinnedImageSetsDegraded.
+ The following types are only available when the ImageModeStatusReporting feature gate is enabled: ImagePulledFromRegistry,
+ AppliedOSImage, AppliedFiles
+ The following types are only available when the NoRegistryClusterInstall feature gate is enabled: InternalReleaseImageDegraded
+ items:
+ description: Condition contains details for one aspect of the current
+ state of this API Resource.
+ properties:
+ lastTransitionTime:
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True, False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ maxItems: 20
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ configVersion:
+ description: configVersion describes the current and desired machine
+ config version for this node.
+ properties:
+ current:
+ description: |-
+ current is the name of the machine config currently in use on the node.
+ This value is updated once the machine config daemon has completed the update of the configuration for the node.
+ This value should match the desired version unless an upgrade is in progress.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ desired:
+ description: |-
+ desired is the MachineConfig the node wants to upgrade to.
+ This value gets set in the machine config node status once the machine config has been validated
+ against the current machine config.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start and
+ end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - desired
+ type: object
+ internalReleaseImage:
+ description: |-
+ internalReleaseImage describes the status of the release payloads stored in the node.
+ When specified, an internalReleaseImage custom resource exists on the cluster, and the specified images will be made available on the control plane nodes.
+ This field will reflect the actual on-disk state of those release images.
+ properties:
+ releases:
+ description: |-
+ releases is a list of the release bundles currently owned and managed by the
+ cluster.
+ A release bundle content could be safely pulled only when its Conditions field
+ contains at least an Available entry set to "True" and Degraded to "False".
+ Entries must be unique, keyed on the name field.
+ releases must contain at least one entry and must not exceed 32 entries.
+ items:
+ description: |-
+ MachineConfigNodeStatusInternalReleaseImageRef is used to provide a more detailed reference for
+ a release bundle.
+ properties:
+ conditions:
+ description: |-
+ conditions represent the observations of an internal release image current state. Valid types are:
+ Mounted, Installing, Available, Removing and Degraded.
+
+ If Mounted is true, that means that a valid ISO has been mounted on the current node.
+ If Installing is true, that means that a new release bundle is currently being copied on the current node, and not yet completed.
+ If Available is true, it means that the release has been previously installed on the current node, and it can be used.
+ If Removing is true, it means that a release deletion is in progress on the current node, and not yet completed.
+ If Degraded is true, that means something has gone wrong in the current node.
+ items:
+ description: Condition contains details for one aspect
+ of the current state of this API Resource.
+ properties:
+ lastTransitionTime:
+ description: |-
+ lastTransitionTime is the last time the condition transitioned from one status to another.
+ This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
+ format: date-time
+ type: string
+ message:
+ description: |-
+ message is a human readable message indicating details about the transition.
+ This may be an empty string.
+ maxLength: 32768
+ type: string
+ observedGeneration:
+ description: |-
+ observedGeneration represents the .metadata.generation that the condition was set based upon.
+ For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
+ with respect to the current state of the instance.
+ format: int64
+ minimum: 0
+ type: integer
+ reason:
+ description: |-
+ reason contains a programmatic identifier indicating the reason for the condition's last transition.
+ Producers of specific condition types may define expected values and meanings for this field,
+ and whether the values are considered a guaranteed API.
+ The value should be a CamelCase string.
+ This field may not be empty.
+ maxLength: 1024
+ minLength: 1
+ pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
+ type: string
+ status:
+ description: status of the condition, one of True,
+ False, Unknown.
+ enum:
+ - "True"
+ - "False"
+ - Unknown
+ type: string
+ type:
+ description: type of condition in CamelCase or in
+ foo.example.com/CamelCase.
+ maxLength: 316
+ pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
+ type: string
+ required:
+ - lastTransitionTime
+ - message
+ - reason
+ - status
+ - type
+ type: object
+ maxItems: 5
+ minItems: 1
+ type: array
+ x-kubernetes-list-map-keys:
+ - type
+ x-kubernetes-list-type: map
+ image:
+ description: |-
+ image is an OCP release 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 host must be either exactly "localhost" or a dot-qualified domain name.
+ Single-label hosts other than "localhost" are not permitted.
+ The length of the whole spec must be between 1 to 447 characters.
+ The field is optional, and it will be provided after a release will be successfully installed.
+ 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; host
+ must be either 'localhost' or a dot-qualified domain
+ name
+ rule: (self.split('@')[0].matches('^(localhost|([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+)(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))
+ name:
+ description: |-
+ name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long.
+ The expected name format is ocp-release-bundle--.
+ maxLength: 64
+ minLength: 1
+ type: string
+ x-kubernetes-validations:
+ - message: must be ocp-release-bundle--
+ and <= 64 chars
+ rule: self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')
+ required:
+ - name
+ type: object
+ maxItems: 32
+ minItems: 1
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ required:
+ - releases
+ type: object
+ observedGeneration:
+ description: |-
+ observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller.
+ This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.
+ format: int64
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: observedGeneration must not decrease
+ rule: self >= oldSelf
+ pinnedImageSets:
+ description: pinnedImageSets describes the current and desired pinned
+ image sets for this node.
+ items:
+ description: MachineConfigNodeStatusPinnedImageSet holds information
+ about the current, desired, and failed pinned image sets for the
+ observed machine config node.
+ properties:
+ currentGeneration:
+ description: currentGeneration is the generation of the pinned
+ image set that has most recently been successfully pulled
+ and pinned on this node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: currentGeneration must not decrease
+ rule: self >= oldSelf
+ desiredGeneration:
+ description: desiredGeneration is the generation of the pinned
+ image set that is targeted to be pulled and pinned on this
+ node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: desiredGeneration must not decrease
+ rule: self >= oldSelf
+ lastFailedGeneration:
+ description: lastFailedGeneration is the generation of the most
+ recent pinned image set that failed to be pulled and pinned
+ on this node.
+ format: int32
+ minimum: 1
+ type: integer
+ x-kubernetes-validations:
+ - message: lastFailedGeneration must not decrease
+ rule: self >= oldSelf
+ lastFailedGenerationError:
+ description: |-
+ lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned.
+ The error is an empty string if the image pull and pin is successful.
+ maxLength: 32768
+ type: string
+ name:
+ description: |-
+ name is the name of the pinned image set.
+ Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting
+ of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end
+ with an alphanumeric character, and be at most 253 characters in length.
+ maxLength: 253
+ type: string
+ x-kubernetes-validations:
+ - message: a lowercase RFC 1123 subdomain must consist of lower
+ case alphanumeric characters, '-' or '.', and must start
+ and end with an alphanumeric character.
+ rule: '!format.dns1123Subdomain().validate(self).hasValue()'
+ required:
+ - name
+ type: object
+ x-kubernetes-validations:
+ - message: desired generation must be greater than or equal to the
+ current generation
+ rule: 'has(self.desiredGeneration) && has(self.currentGeneration)
+ ? self.desiredGeneration >= self.currentGeneration : true'
+ - message: desired generation must be greater than or equal to the
+ last failed generation
+ rule: 'has(self.lastFailedGeneration) && has(self.desiredGeneration)
+ ? self.desiredGeneration >= self.lastFailedGeneration : true'
+ - message: last failed generation error must be defined on image
+ pull and pin failure
+ rule: 'has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError)
+ : true'
+ maxItems: 100
+ type: array
+ x-kubernetes-list-map-keys:
+ - name
+ x-kubernetes-list-type: map
+ type: object
+ required:
+ - spec
+ type: object
+ x-kubernetes-validations:
+ - message: spec.node.name should match metadata.name
+ rule: self.metadata.name == self.spec.node.name
+ served: true
+ storage: true
+ subresources:
+ status: {}
diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
index c28df43cb1..e408ecb163 100644
--- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
+++ b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.crd-manifests/0000_80_machine-config_01_internalreleaseimages-SelfManagedHA.crd.yaml
@@ -5,7 +5,6 @@ metadata:
api-approved.openshift.io: https://github.com/openshift/api/pull/2510
api.openshift.io/merged-by-featuregates: "true"
include.release.openshift.io/self-managed-high-availability: "true"
- release.openshift.io/feature-set: CustomNoUpgrade,DevPreviewNoUpgrade,TechPreviewNoUpgrade
labels:
openshift.io/operator-managed: ""
name: internalreleaseimages.machineconfiguration.openshift.io
diff --git a/vendor/github.com/openshift/api/operator/v1/types_ingress.go b/vendor/github.com/openshift/api/operator/v1/types_ingress.go
index 0c5cf919e1..e197a05cdc 100644
--- a/vendor/github.com/openshift/api/operator/v1/types_ingress.go
+++ b/vendor/github.com/openshift/api/operator/v1/types_ingress.go
@@ -385,6 +385,25 @@ type IngressControllerSpec struct {
// +kubebuilder:default:="Continue"
// +default="Continue"
ClosedClientConnectionPolicy IngressControllerClosedClientConnectionPolicy `json:"closedClientConnectionPolicy,omitempty"`
+
+ // haproxyVersion specifies the HAProxy version to use for this
+ // IngressController.
+ //
+ // This field is available in OpenShift 4.22 as an API-only backport with no
+ // operator implementation. Setting this field on OpenShift 4.22 allows
+ // administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ // the operator will honor this setting.
+ //
+ // Valid values for OpenShift 4.22:
+ // - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ // - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ // upgrade to OpenShift 5.0
+ //
+ // On OpenShift 4.22, this field has no effect on the running IngressController.
+ // It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ //
+ // +optional
+ HAProxyVersion HAProxyVersion `json:"haproxyVersion,omitempty"`
}
// httpCompressionPolicy turns on compression for the specified MIME types.
@@ -2285,3 +2304,15 @@ const (
// server's response regardless of the client having closed the connection.
IngressControllerClosedClientConnectionPolicyContinue IngressControllerClosedClientConnectionPolicy = "Continue"
)
+
+// HAProxyVersion is a string representing a HAProxy minor version in "X.Y"
+// format. The allowed values are constrained by enum validation and vary by
+// OpenShift release.
+//
+// +kubebuilder:validation:Enum="2.8"
+type HAProxyVersion string
+
+const (
+ // HAProxyVersion28 represents HAProxy 2.8, shipped with OpenShift 4.22.
+ HAProxyVersion28 HAProxyVersion = "2.8"
+)
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
index fdf10772dd..94ff90cf4d 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-CustomNoUpgrade.crd.yaml
@@ -892,6 +892,26 @@ spec:
required:
- type
type: object
+ haproxyVersion:
+ description: |-
+ haproxyVersion specifies the HAProxy version to use for this
+ IngressController.
+
+ This field is available in OpenShift 4.22 as an API-only backport with no
+ operator implementation. Setting this field on OpenShift 4.22 allows
+ administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ the operator will honor this setting.
+
+ Valid values for OpenShift 4.22:
+ - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ upgrade to OpenShift 5.0
+
+ On OpenShift 4.22, this field has no effect on the running IngressController.
+ It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ enum:
+ - "2.8"
+ type: string
httpCompression:
description: |-
httpCompression defines a policy for HTTP traffic compression.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
index 97c3ca8c40..3552e4b085 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-Default.crd.yaml
@@ -892,6 +892,26 @@ spec:
required:
- type
type: object
+ haproxyVersion:
+ description: |-
+ haproxyVersion specifies the HAProxy version to use for this
+ IngressController.
+
+ This field is available in OpenShift 4.22 as an API-only backport with no
+ operator implementation. Setting this field on OpenShift 4.22 allows
+ administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ the operator will honor this setting.
+
+ Valid values for OpenShift 4.22:
+ - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ upgrade to OpenShift 5.0
+
+ On OpenShift 4.22, this field has no effect on the running IngressController.
+ It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ enum:
+ - "2.8"
+ type: string
httpCompression:
description: |-
httpCompression defines a policy for HTTP traffic compression.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
index 89c366cda4..14198706f8 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-DevPreviewNoUpgrade.crd.yaml
@@ -892,6 +892,26 @@ spec:
required:
- type
type: object
+ haproxyVersion:
+ description: |-
+ haproxyVersion specifies the HAProxy version to use for this
+ IngressController.
+
+ This field is available in OpenShift 4.22 as an API-only backport with no
+ operator implementation. Setting this field on OpenShift 4.22 allows
+ administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ the operator will honor this setting.
+
+ Valid values for OpenShift 4.22:
+ - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ upgrade to OpenShift 5.0
+
+ On OpenShift 4.22, this field has no effect on the running IngressController.
+ It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ enum:
+ - "2.8"
+ type: string
httpCompression:
description: |-
httpCompression defines a policy for HTTP traffic compression.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-OKD.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-OKD.crd.yaml
index 535ddf0bc8..88a6a89f1b 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-OKD.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-OKD.crd.yaml
@@ -892,6 +892,26 @@ spec:
required:
- type
type: object
+ haproxyVersion:
+ description: |-
+ haproxyVersion specifies the HAProxy version to use for this
+ IngressController.
+
+ This field is available in OpenShift 4.22 as an API-only backport with no
+ operator implementation. Setting this field on OpenShift 4.22 allows
+ administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ the operator will honor this setting.
+
+ Valid values for OpenShift 4.22:
+ - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ upgrade to OpenShift 5.0
+
+ On OpenShift 4.22, this field has no effect on the running IngressController.
+ It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ enum:
+ - "2.8"
+ type: string
httpCompression:
description: |-
httpCompression defines a policy for HTTP traffic compression.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
index 2fbc3cd4e3..4b31b1b732 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_ingress_00_ingresscontrollers-TechPreviewNoUpgrade.crd.yaml
@@ -892,6 +892,26 @@ spec:
required:
- type
type: object
+ haproxyVersion:
+ description: |-
+ haproxyVersion specifies the HAProxy version to use for this
+ IngressController.
+
+ This field is available in OpenShift 4.22 as an API-only backport with no
+ operator implementation. Setting this field on OpenShift 4.22 allows
+ administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ the operator will honor this setting.
+
+ Valid values for OpenShift 4.22:
+ - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ upgrade to OpenShift 5.0
+
+ On OpenShift 4.22, this field has no effect on the running IngressController.
+ It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ enum:
+ - "2.8"
+ type: string
httpCompression:
description: |-
httpCompression defines a policy for HTTP traffic compression.
diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
index c3ed726028..ebc52b6ad7 100644
--- a/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
+++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.swagger_doc_generated.go
@@ -1082,6 +1082,7 @@ var map_IngressControllerSpec = map[string]string{
"httpCompression": "httpCompression defines a policy for HTTP traffic compression. By default, there is no HTTP compression.",
"idleConnectionTerminationPolicy": "idleConnectionTerminationPolicy maps directly to HAProxy's idle-close-on-response option and controls whether HAProxy keeps idle frontend connections open during a soft stop (router reload).\n\nAllowed values for this field are \"Immediate\" and \"Deferred\". The default value is \"Immediate\".\n\nWhen set to \"Immediate\", idle connections are closed immediately during router reloads. This ensures immediate propagation of route changes but may impact clients sensitive to connection resets.\n\nWhen set to \"Deferred\", HAProxy will maintain idle connections during a soft reload instead of closing them immediately. These connections remain open until any of the following occurs:\n\n - A new request is received on the connection, in which\n case HAProxy handles it in the old process and closes\n the connection after sending the response.\n\n - HAProxy's `timeout http-keep-alive` duration expires.\n By default this is 300 seconds, but it can be changed\n using httpKeepAliveTimeout tuning option.\n\n - The client's keep-alive timeout expires, causing the\n client to close the connection.\n\nSetting Deferred can help prevent errors in clients or load balancers that do not properly handle connection resets. Additionally, this option allows you to retain the pre-2.4 HAProxy behaviour: in HAProxy version 2.2 (OpenShift versions < 4.14), maintaining idle connections during a soft reload was the default behaviour, but starting with HAProxy 2.4, the default changed to closing idle connections immediately.\n\nImportant Consideration:\n\n - Using Deferred will result in temporary inconsistencies\n for the first request on each persistent connection\n after a route update and router reload. This request\n will be processed by the old HAProxy process using its\n old configuration. Subsequent requests will use the\n updated configuration.\n\nOperational Considerations:\n\n - Keeping idle connections open during reloads may lead\n to an accumulation of old HAProxy processes if\n connections remain idle for extended periods,\n especially in environments where frequent reloads\n occur.\n\n - Consider monitoring the number of HAProxy processes in\n the router pods when Deferred is set.\n\n - You may need to enable or adjust the\n `ingress.operator.openshift.io/hard-stop-after`\n duration (configured via an annotation on the\n IngressController resource) in environments with\n frequent reloads to prevent resource exhaustion.",
"closedClientConnectionPolicy": "closedClientConnectionPolicy controls how the IngressController behaves when the client closes the TCP connection while the TLS handshake or HTTP request is in progress. This option maps directly to HAProxy’s \"abortonclose\" option.\n\nValid values are: \"Abort\" and \"Continue\". The default value is \"Continue\".\n\nWhen set to \"Abort\", the router will stop processing the TLS handshake if it is in progress, and it will not send an HTTP request to the backend server if the request has not yet been sent when the client closes the connection.\n\nWhen set to \"Continue\", the router will complete the TLS handshake if it is in progress, or send an HTTP request to the backend server and wait for the backend server's response, regardless of whether the client has closed the connection.\n\nSetting \"Abort\" can help free CPU resources otherwise spent on TLS computation for connections the client has already closed, and can reduce request queue size, thereby reducing the load on saturated backend servers.\n\nImportant Considerations:\n\n - The default policy (\"Continue\") is HTTP-compliant, and requests\n for aborted client connections will still be served.\n Use the \"Continue\" policy to allow a client to send a request\n and then immediately close its side of the connection while\n still receiving a response on the half-closed connection.\n\n - When clients use keep-alive connections, the most common case for premature\n closure is when the user wants to cancel the transfer or when a timeout\n occurs. In that case, the \"Abort\" policy may be used to reduce resource consumption.\n\n - Using RSA keys larger than 2048 bits can significantly slow down\n TLS computations. Consider using the \"Abort\" policy to reduce CPU usage.",
+ "haproxyVersion": "haproxyVersion specifies the HAProxy version to use for this IngressController.\n\nThis field is available in OpenShift 4.22 as an API-only backport with no operator implementation. Setting this field on OpenShift 4.22 allows administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where the operator will honor this setting.\n\nValid values for OpenShift 4.22: - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22) - \"2.8\": Explicitly pins HAProxy 2.8 for preservation during cluster\n upgrade to OpenShift 5.0\n\nOn OpenShift 4.22, this field has no effect on the running IngressController. It only preserves the administrator's intent for the OpenShift 5.0 upgrade.",
}
func (IngressControllerSpec) SwaggerDoc() map[string]string {
diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/ingresscontrollerspec.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/ingresscontrollerspec.go
index 9874c3b63b..8907a8c75c 100644
--- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/ingresscontrollerspec.go
+++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/ingresscontrollerspec.go
@@ -285,6 +285,22 @@ type IngressControllerSpecApplyConfiguration struct {
// - Using RSA keys larger than 2048 bits can significantly slow down
// TLS computations. Consider using the "Abort" policy to reduce CPU usage.
ClosedClientConnectionPolicy *operatorv1.IngressControllerClosedClientConnectionPolicy `json:"closedClientConnectionPolicy,omitempty"`
+ // haproxyVersion specifies the HAProxy version to use for this
+ // IngressController.
+ //
+ // This field is available in OpenShift 4.22 as an API-only backport with no
+ // operator implementation. Setting this field on OpenShift 4.22 allows
+ // administrators to pin HAProxy 2.8 before upgrading to OpenShift 5.0, where
+ // the operator will honor this setting.
+ //
+ // Valid values for OpenShift 4.22:
+ // - Unset (default): Uses HAProxy 2.8 (the default for OpenShift 4.22)
+ // - "2.8": Explicitly pins HAProxy 2.8 for preservation during cluster
+ // upgrade to OpenShift 5.0
+ //
+ // On OpenShift 4.22, this field has no effect on the running IngressController.
+ // It only preserves the administrator's intent for the OpenShift 5.0 upgrade.
+ HAProxyVersion *operatorv1.HAProxyVersion `json:"haproxyVersion,omitempty"`
}
// IngressControllerSpecApplyConfiguration constructs a declarative configuration of the IngressControllerSpec type for use with
@@ -444,3 +460,11 @@ func (b *IngressControllerSpecApplyConfiguration) WithClosedClientConnectionPoli
b.ClosedClientConnectionPolicy = &value
return b
}
+
+// WithHAProxyVersion sets the HAProxyVersion field in the declarative configuration to the given value
+// and returns the receiver, so that objects can be built by chaining "With" function invocations.
+// If called multiple times, the HAProxyVersion field is set to the value of the last call.
+func (b *IngressControllerSpecApplyConfiguration) WithHAProxyVersion(value operatorv1.HAProxyVersion) *IngressControllerSpecApplyConfiguration {
+ b.HAProxyVersion = &value
+ return b
+}
diff --git a/vendor/modules.txt b/vendor/modules.txt
index 7f4ab6e271..1b2afc5e3f 100644
--- a/vendor/modules.txt
+++ b/vendor/modules.txt
@@ -1269,7 +1269,7 @@ github.com/openshift-eng/openshift-tests-extension/pkg/ginkgo
github.com/openshift-eng/openshift-tests-extension/pkg/junit
github.com/openshift-eng/openshift-tests-extension/pkg/util/sets
github.com/openshift-eng/openshift-tests-extension/pkg/version
-# github.com/openshift/api v0.0.0-20260717133910-57eb58a15422
+# github.com/openshift/api v0.0.0-20260817165856-9fda5179a7f7
## explicit; go 1.25.0
github.com/openshift/api
github.com/openshift/api/annotations
@@ -1357,7 +1357,7 @@ github.com/openshift/api/template
github.com/openshift/api/template/v1
github.com/openshift/api/user
github.com/openshift/api/user/v1
-# github.com/openshift/client-go v0.0.0-20260720094807-fbc45213df28
+# github.com/openshift/client-go v0.0.0-20260818144019-860af65a7cbc
## explicit; go 1.25.0
github.com/openshift/client-go/apps/applyconfigurations/apps/v1
github.com/openshift/client-go/apps/applyconfigurations/internal