From cb62a47750286e15234b58248774a2e4c90af3ed Mon Sep 17 00:00:00 2001 From: Pawan Pinjarkar Date: Mon, 10 Aug 2026 16:34:23 -0400 Subject: [PATCH 1/4] AGENT-1570: update dependencies to the latest after several Feature promotions to default --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index ea7bf57077..bbdc0089be 100644 --- a/go.mod +++ b/go.mod @@ -41,7 +41,7 @@ require ( github.com/onsi/gomega v1.39.1 github.com/opencontainers/go-digest v1.0.0 github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9deb7a - github.com/openshift/api v0.0.0-20260724065811-356624ff036f + github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec github.com/openshift/imagebuilder v1.2.21 github.com/openshift/library-go v0.0.0-20260720123941-85336565c3c7 diff --git a/go.sum b/go.sum index d3bdbe7668..cf62e8bf32 100644 --- a/go.sum +++ b/go.sum @@ -653,6 +653,8 @@ github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9 github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9deb7a/go.mod h1:pHOS9c6BjZv91OkkHyIHAOWnYhxwcxWQkyYGEvPyUCE= github.com/openshift/api v0.0.0-20260724065811-356624ff036f h1:jGACG1DZvxDvRvH76Eh6SsXO1pVNsOqzMmvau1Oc4bc= github.com/openshift/api v0.0.0-20260724065811-356624ff036f/go.mod h1:k6qH5QOVa5GDln2VVm8Jz4NV3Z7R2SATHFLwGS6Wh3M= +github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 h1:/UAIG4kF4dXdamTuN9rL5kSjbQZ9wDES9O2q/wS8Bsk= +github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5/go.mod h1:k6qH5QOVa5GDln2VVm8Jz4NV3Z7R2SATHFLwGS6Wh3M= github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43 h1:V9hWaBi9cnohNk1F0Ph6wpI0otMWqMHleJ3oj5603Bc= github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43/go.mod h1:ZuzfEq1ccZpHNx05xEUKlm2TcMHt2iXVutb79kAuTfM= github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec h1:UDjX+mot5IVLpcChyBqLXG1oSB29s4UkqFmgNb0Xsqc= From ddd69e41785d3dcd8a5c1ded58c3d0a0f775e40e Mon Sep 17 00:00:00 2001 From: Pawan Pinjarkar Date: Mon, 10 Aug 2026 16:35:38 -0400 Subject: [PATCH 2/4] go mod tidy; go mod vendor --- go.sum | 2 - .../api/config/v1/types_authentication.go | 6 +- .../api/config/v1/types_infrastructure.go | 33 + .../openshift/api/config/v1/types_ingress.go | 6 +- .../api/config/v1/types_kmsencryption.go | 6 +- ...tor_01_apiservers-CustomNoUpgrade.crd.yaml | 6 +- ...01_apiservers-DevPreviewNoUpgrade.crd.yaml | 6 +- ...1_apiservers-TechPreviewNoUpgrade.crd.yaml | 6 +- ...1_authentications-CustomNoUpgrade.crd.yaml | 8 +- ...thentications-DevPreviewNoUpgrade.crd.yaml | 8 +- ...hentications-TechPreviewNoUpgrade.crd.yaml | 8 +- ...dentialproviderconfigs-Hypershift.crd.yaml | 213 +++ ...tialproviderconfigs-SelfManagedHA.crd.yaml | 212 +++ ...erator_01_infrastructures-Default.crd.yaml | 32 +- ...ctures-Hypershift-CustomNoUpgrade.crd.yaml | 44 +- ...es-Hypershift-DevPreviewNoUpgrade.crd.yaml | 44 +- ...g-operator_01_infrastructures-OKD.crd.yaml | 32 +- ...res-SelfManagedHA-CustomNoUpgrade.crd.yaml | 44 +- ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 44 +- ...rastructures-TechPreviewNoUpgrade.crd.yaml | 22 +- ...ator_01_ingresses-CustomNoUpgrade.crd.yaml | 9 +- ..._01_ingresses-DevPreviewNoUpgrade.crd.yaml | 9 +- ...01_ingresses-TechPreviewNoUpgrade.crd.yaml | 9 +- ..._generated.featuregated-crd-manifests.yaml | 1 + .../v1/zz_generated.swagger_doc_generated.go | 7 +- .../v1alpha1/types_cluster_monitoring.go | 82 + ...ig-operator_01_clustermonitorings.crd.yaml | 78 + ...entialproviderconfigs-Hypershift.crd.yaml} | 200 +-- ...ialproviderconfigs-SelfManagedHA.crd.yaml} | 2 - .../config/v1alpha1/zz_generated.deepcopy.go | 51 + .../v1alpha1/zz_generated.model_name.go | 15 + .../zz_generated.swagger_doc_generated.go | 55 +- vendor/github.com/openshift/api/features.md | 17 +- .../openshift/api/features/features.go | 38 +- .../api/features/legacyfeaturegates.go | 2 - ...1_containerruntimeconfigs-Default.crd.yaml | 197 --- ...untimeconfigs-DevPreviewNoUpgrade.crd.yaml | 328 ---- ...ig_01_containerruntimeconfigs-OKD.crd.yaml | 197 --- ...ntimeconfigs-TechPreviewNoUpgrade.crd.yaml | 328 ---- ...onfig_01_containerruntimeconfigs.crd.yaml} | 1 - ...nfig_01_controllerconfigs-Default.crd.yaml | 32 +- ...onfigs-Hypershift-CustomNoUpgrade.crd.yaml | 44 +- ...gs-Hypershift-DevPreviewNoUpgrade.crd.yaml | 44 +- ...e-config_01_controllerconfigs-OKD.crd.yaml | 32 +- ...igs-SelfManagedHA-CustomNoUpgrade.crd.yaml | 44 +- ...SelfManagedHA-DevPreviewNoUpgrade.crd.yaml | 44 +- ...ollerconfigs-TechPreviewNoUpgrade.crd.yaml | 22 +- ..._internalreleaseimages-Hypershift.crd.yaml | 269 --- ...ternalreleaseimages-SelfManagedHA.crd.yaml | 270 --- ...neconfignodes-Hypershift-Default.crd.yaml} | 47 +- ...achineconfignodes-Hypershift-OKD.crd.yaml} | 47 +- ...confignodes-SelfManagedHA-Default.crd.yaml | 566 ++++++ ...hineconfignodes-SelfManagedHA-OKD.crd.yaml | 566 ++++++ ..._generated.featuregated-crd-manifests.yaml | 1 + ...ternalreleaseimages-SelfManagedHA.crd.yaml | 1 - .../openshift/api/operator/v1/types.go | 12 + .../api/operator/v1/types_kmsencryption.go | 33 +- ..._12_etcd_01_etcds-CustomNoUpgrade.crd.yaml | 12 + .../0000_12_etcd_01_etcds-Default.crd.yaml | 12 + ...etcd_01_etcds-DevPreviewNoUpgrade.crd.yaml | 12 + .../0000_12_etcd_01_etcds-OKD.crd.yaml | 12 + ...tcd_01_etcds-TechPreviewNoUpgrade.crd.yaml | 12 + ...01_kubeapiservers-CustomNoUpgrade.crd.yaml | 44 +- ...iserver_01_kubeapiservers-Default.crd.yaml | 12 + ...ubeapiservers-DevPreviewNoUpgrade.crd.yaml | 44 +- ...e-apiserver_01_kubeapiservers-OKD.crd.yaml | 12 + ...beapiservers-TechPreviewNoUpgrade.crd.yaml | 44 +- ...manager_01_kubecontrollermanagers.crd.yaml | 12 + ..._kube-scheduler_01_kubeschedulers.crd.yaml | 12 + ...enshiftapiservers-CustomNoUpgrade.crd.yaml | 32 +- ...iftapiservers-DevPreviewNoUpgrade.crd.yaml | 32 +- ...ftapiservers-TechPreviewNoUpgrade.crd.yaml | 32 +- ...1_authentications-CustomNoUpgrade.crd.yaml | 32 +- ...thentications-DevPreviewNoUpgrade.crd.yaml | 32 +- ...hentications-TechPreviewNoUpgrade.crd.yaml | 32 +- ...ess_00_ingresscontrollers-Default.crd.yaml | 40 + ...ingress_00_ingresscontrollers-OKD.crd.yaml | 40 + ..._01_machineconfigurations-Default.crd.yaml | 1517 ---------------- ...onfigurations-DevPreviewNoUpgrade.crd.yaml | 1550 ----------------- ...nfig_01_machineconfigurations-OKD.crd.yaml | 1517 ---------------- ...nfigurations-TechPreviewNoUpgrade.crd.yaml | 1550 ----------------- ...-config_01_machineconfigurations.crd.yaml} | 1 - .../v1/zz_generated.swagger_doc_generated.go | 9 +- .../api/operator/v1alpha1/register.go | 2 + .../api/operator/v1alpha1/types_ingress.go | 146 ++ .../0000_50_ingress_02_ingresses.crd.yaml | 182 ++ .../v1alpha1/zz_generated.deepcopy.go | 117 ++ ..._generated.featuregated-crd-manifests.yaml | 23 + .../v1alpha1/zz_generated.model_name.go | 25 + .../zz_generated.swagger_doc_generated.go | 49 + .../render/legacyfeaturegates.go | 2 - .../openshift/api/route/v1/generated.proto | 3 +- .../openshift/api/route/v1/types.go | 3 +- ..._generated.featuregated-crd-manifests.yaml | 3 +- vendor/modules.txt | 2 +- 95 files changed, 3499 insertions(+), 8196 deletions(-) create mode 100644 vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml create mode 100644 vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml rename vendor/github.com/openshift/api/config/{v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml => v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml} (50%) rename vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/{0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml => 0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml} (98%) delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-Default.crd.yaml delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-DevPreviewNoUpgrade.crd.yaml delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-OKD.crd.yaml delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-TechPreviewNoUpgrade.crd.yaml rename vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_containerruntimeconfigs-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_containerruntimeconfigs.crd.yaml} (99%) rename vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfignodes-Default.crd.yaml => 0000_80_machine-config_01_machineconfignodes-Hypershift-Default.crd.yaml} (88%) rename vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfignodes-OKD.crd.yaml => 0000_80_machine-config_01_machineconfignodes-Hypershift-OKD.crd.yaml} (88%) create mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-Default.crd.yaml create mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfignodes-SelfManagedHA-OKD.crd.yaml delete mode 100644 vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml delete mode 100644 vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml delete mode 100644 vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-OKD.crd.yaml delete mode 100644 vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml rename vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/{0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml => 0000_80_machine-config_01_machineconfigurations.crd.yaml} (99%) create mode 100644 vendor/github.com/openshift/api/operator/v1alpha1/types_ingress.go create mode 100644 vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_50_ingress_02_ingresses.crd.yaml diff --git a/go.sum b/go.sum index cf62e8bf32..f919151152 100644 --- a/go.sum +++ b/go.sum @@ -651,8 +651,6 @@ github.com/opencontainers/selinux v1.13.1 h1:A8nNeceYngH9Ow++M+VVEwJVpdFmrlxsN22 github.com/opencontainers/selinux v1.13.1/go.mod h1:S10WXZ/osk2kWOYKy1x2f/eXF5ZHJoUs8UU/2caNRbg= github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9deb7a h1:ulT0JZ/x6S4hYhyjUJ9T49YAxDLl1i5idFOMm9RHBkY= github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9deb7a/go.mod h1:pHOS9c6BjZv91OkkHyIHAOWnYhxwcxWQkyYGEvPyUCE= -github.com/openshift/api v0.0.0-20260724065811-356624ff036f h1:jGACG1DZvxDvRvH76Eh6SsXO1pVNsOqzMmvau1Oc4bc= -github.com/openshift/api v0.0.0-20260724065811-356624ff036f/go.mod h1:k6qH5QOVa5GDln2VVm8Jz4NV3Z7R2SATHFLwGS6Wh3M= github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 h1:/UAIG4kF4dXdamTuN9rL5kSjbQZ9wDES9O2q/wS8Bsk= github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5/go.mod h1:k6qH5QOVa5GDln2VVm8Jz4NV3Z7R2SATHFLwGS6Wh3M= github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43 h1:V9hWaBi9cnohNk1F0Ph6wpI0otMWqMHleJ3oj5603Bc= diff --git a/vendor/github.com/openshift/api/config/v1/types_authentication.go b/vendor/github.com/openshift/api/config/v1/types_authentication.go index 348ee04010..ab591284d9 100644 --- a/vendor/github.com/openshift/api/config/v1/types_authentication.go +++ b/vendor/github.com/openshift/api/config/v1/types_authentication.go @@ -1087,7 +1087,7 @@ type SourceURL struct { // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=259 // +kubebuilder:validation:XValidation:rule="isURL('https://'+self)",message="hostname must be a valid hostname" - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self.split(':')[0]).hasValue()",message="hostname before port must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" + // +kubebuilder:validation:XValidation:rule="self.split(':')[0].matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$')",message="hostname before port must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" // +kubebuilder:validation:XValidation:rule="self.split(':').size() > 1 ? int(self.split(':')[1]) <= 65535 : true",message="port must not exceed 65535" Hostname string `json:"hostname,omitempty"` @@ -1194,7 +1194,7 @@ type ExternalSourceCertificateAuthorityConfigMapReference struct { // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="name must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" + // +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$')",message="name must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" Name string `json:"name,omitempty"` } @@ -1211,6 +1211,6 @@ type ClientSecretSecretReference struct { // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="name must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" + // +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$')",message="name must start and end with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.'" Name string `json:"name,omitempty"` } diff --git a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go index 86c98664df..a89377ef7d 100644 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -601,6 +601,15 @@ type AWSPlatformStatus struct { // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary // protocol family. // + // Valid values are: + // * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + // * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + // * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + // + // When omitted, this field defaults to "IPv4". + // + // This field is immutable and cannot be changed once set. + // // +default="IPv4" // +kubebuilder:default="IPv4" // +kubebuilder:validation:XValidation:rule="oldSelf == '' || self == oldSelf",message="ipFamily is immutable once set" @@ -822,6 +831,25 @@ type GCPPlatformStatus struct { // +nullable CloudLoadBalancerConfig *CloudLoadBalancerConfig `json:"cloudLoadBalancerConfig,omitempty"` + // universeDomain is the GCP universe domain for the cluster, detected from + // the installer credentials. Components with their own GCP credentials should + // read the universe domain from those credentials, as they are the authoritative + // source. This field is provided for components that do not have GCP credentials + // and for general observability. + // + // When omitted, standard public GCP (googleapis.com) is assumed. + // + // universeDomain is an optional field that, when specified, must be non-empty and at most + // 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + // characters, '-' or '.', and starting and ending with an alphanumeric character. + // + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength=253 + // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="universeDomain must be a valid DNS subdomain: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" + // +optional + // +openshift:enable:FeatureGate=GCPSovereignCloudInstall + UniverseDomain string `json:"universeDomain,omitempty"` + // This field was introduced and removed under tech preview. // serviceEndpoints specifies endpoints that override the default endpoints // used when creating clients to interact with GCP services. @@ -1453,6 +1481,9 @@ type VSpherePlatformFailureDomainSpec struct { ZoneAffinity *VSphereFailureDomainZoneAffinity `json:"zoneAffinity,omitempty"` // server is the fully-qualified domain name or the IP address of the vCenter server. + // This must match the server field of an entry in the vcenters list. + // The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + // The value must be between 1 and 255 characters long. // +required // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=255 @@ -1687,6 +1718,7 @@ type VSpherePlatformNodeNetworking struct { // use these fields for configuration. // +kubebuilder:validation:XValidation:rule="!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)",message="apiServerInternalIPs list is required once set" // +kubebuilder:validation:XValidation:rule="!has(oldSelf.ingressIPs) || has(self.ingressIPs)",message="ingressIPs list is required once set" +// +openshift:validation:FeatureGateAwareXValidation:featureGate=VSphereMultiVCenterDay2,rule="!has(self.failureDomains) || size(self.failureDomains) == 0 || (has(self.vcenters) && self.failureDomains.all(fd, self.vcenters.exists(vc, vc.server == fd.server)))",message="all failure domains must have a corresponding vCenter entry" type VSpherePlatformSpec struct { // vcenters holds the connection details for services to communicate with vCenter. // Up to 3 vCenters are supported. @@ -1711,6 +1743,7 @@ type VSpherePlatformSpec struct { // failureDomains contains the definition of region, zone and the vCenter topology. // If this is omitted failure domains (regions and zones) will not be used. + // Each failure domain's server must match the server field of an entry in the vcenters list. // +listType=map // +listMapKey=name // +optional diff --git a/vendor/github.com/openshift/api/config/v1/types_ingress.go b/vendor/github.com/openshift/api/config/v1/types_ingress.go index bb461e2f3e..622bce0345 100644 --- a/vendor/github.com/openshift/api/config/v1/types_ingress.go +++ b/vendor/github.com/openshift/api/config/v1/types_ingress.go @@ -171,7 +171,8 @@ const ( // alphanumeric characters, '-', '_', or '.', starting and ending with // an alphanumeric character. // +kubebuilder:validation:MaxLength=63 -// +kubebuilder:validation:XValidation:rule="!format.labelValue().validate(self).hasValue()",message="label values must be valid Kubernetes label values (at most 63 characters, alphanumeric, '-', '_', or '.', must start and end with alphanumeric)" +// +kubebuilder:validation:MinLength=0 +// +kubebuilder:validation:XValidation:rule="self == \"\" || self.matches('^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$')",message="label values must be valid Kubernetes label values (at most 63 characters, alphanumeric, '-', '_', or '.', must start and end with alphanumeric)" type LabelValue string // ConsumingUser is an alias for string which we add validation to. Currently only service accounts are supported. @@ -278,7 +279,8 @@ type ComponentRouteSpec struct { // +mapType=granular // +kubebuilder:validation:MinProperties=1 // +kubebuilder:validation:MaxProperties=8 - // +kubebuilder:validation:XValidation:rule="self.all(key, !format.qualifiedName().validate(key).hasValue())",message="label keys must be valid qualified names, consisting of an optional DNS subdomain prefix of up to 253 characters followed by a slash and a name segment of 1-63 characters, that consists only of alphanumeric characters, dashes, underscores, and dots, and must start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.all(key, key.size() <= 63 && key.size() > 0)",message="label keys must be between 1 and 63 characters in length" + // +kubebuilder:validation:XValidation:rule="self.all(key, key.matches('^([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])?$') && key.size() <= 253)",message="label keys must be valid qualified names, consisting of an optional DNS subdomain prefix of up to 253 characters followed by a slash and a name segment of 1-63 characters, that consists only of alphanumeric characters, dashes, underscores, and dots, and must start and end with an alphanumeric character" // +kubebuilder:validation:XValidation:rule="self.all(key, !key.startsWith('kubernetes.io/') && !key.startsWith('k8s.io/') && !key.startsWith('openshift.io/'))",message="kubernetes.io/, k8s.io/, and openshift.io/ prefixed label keys are reserved and may not be used" Labels map[string]LabelValue `json:"labels,omitempty"` } diff --git a/vendor/github.com/openshift/api/config/v1/types_kmsencryption.go b/vendor/github.com/openshift/api/config/v1/types_kmsencryption.go index 0430a25cc3..e2f94ae1f3 100644 --- a/vendor/github.com/openshift/api/config/v1/types_kmsencryption.go +++ b/vendor/github.com/openshift/api/config/v1/types_kmsencryption.go @@ -63,7 +63,7 @@ type VaultSecretReference struct { // // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="name must be a valid DNS subdomain name: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?)*$')",message="name must be a valid DNS subdomain name: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" // +required Name string `json:"name,omitempty"` } @@ -76,7 +76,7 @@ type VaultConfigMapReference struct { // // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="name must be a valid DNS subdomain name: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?)*$')",message="name must be a valid DNS subdomain name: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" // +required Name string `json:"name,omitempty"` } @@ -300,7 +300,7 @@ type VaultTLSConfig struct { // // +kubebuilder:validation:MaxLength=253 // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="serverName must be a valid DNS hostname: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" + // +kubebuilder:validation:XValidation:rule="self.matches('^[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?(\\\\.[a-z0-9]([a-z0-9\\\\-]*[a-z0-9])?)*$')",message="serverName must be a valid DNS hostname: contain no more than 253 characters, contain only lowercase alphanumeric characters, '-' or '.', and start and end with an alphanumeric character" // +optional ServerName string `json:"serverName,omitempty"` } diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-CustomNoUpgrade.crd.yaml index 47f062a8ba..f3793fac61 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-CustomNoUpgrade.crd.yaml @@ -212,7 +212,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -307,7 +307,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -327,7 +327,7 @@ spec: contain no more than 253 characters, contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') type: object vaultAddress: description: |- diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-DevPreviewNoUpgrade.crd.yaml index 2d0b3c0364..d06cd26ca7 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-DevPreviewNoUpgrade.crd.yaml @@ -212,7 +212,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -307,7 +307,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -327,7 +327,7 @@ spec: contain no more than 253 characters, contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') type: object vaultAddress: description: |- diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-TechPreviewNoUpgrade.crd.yaml index 43b269de69..cce3359454 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_apiservers-TechPreviewNoUpgrade.crd.yaml @@ -212,7 +212,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -307,7 +307,7 @@ spec: contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') required: - name type: object @@ -327,7 +327,7 @@ spec: contain no more than 253 characters, contain only lowercase alphanumeric characters, ''-'' or ''.'', and start and end with an alphanumeric character' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9\\-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9\\-]*[a-z0-9])?)*$') type: object vaultAddress: description: |- diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yaml index 8c2695a581..ebf8cefe08 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-CustomNoUpgrade.crd.yaml @@ -518,7 +518,7 @@ spec: lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -583,7 +583,7 @@ spec: a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -791,7 +791,7 @@ spec: alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -827,7 +827,7 @@ spec: with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self.split('':'')[0]).hasValue()' + rule: self.split(':')[0].matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') - message: port must not exceed 65535 rule: 'self.split('':'').size() > 1 ? int(self.split('':'')[1]) <= 65535 : true' diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yaml index 09111b08ce..e5f0c9bb9b 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-DevPreviewNoUpgrade.crd.yaml @@ -518,7 +518,7 @@ spec: lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -583,7 +583,7 @@ spec: a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -791,7 +791,7 @@ spec: alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -827,7 +827,7 @@ spec: with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self.split('':'')[0]).hasValue()' + rule: self.split(':')[0].matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') - message: port must not exceed 65535 rule: 'self.split('':'').size() > 1 ? int(self.split('':'')[1]) <= 65535 : true' diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yaml index d883307d84..47e5625bb9 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_authentications-TechPreviewNoUpgrade.crd.yaml @@ -518,7 +518,7 @@ spec: lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -583,7 +583,7 @@ spec: a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -791,7 +791,7 @@ spec: alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self).hasValue()' + rule: self.matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') required: - name type: object @@ -827,7 +827,7 @@ spec: with a lowercase alphanumeric character, and must only contain lowercase alphanumeric characters, '-' or '.' - rule: '!format.dns1123Subdomain().validate(self.split('':'')[0]).hasValue()' + rule: self.split(':')[0].matches('^[a-z0-9]([a-z0-9-]*[a-z0-9])?(\\.[a-z0-9]([a-z0-9-]*[a-z0-9])?)*$') - message: port must not exceed 65535 rule: 'self.split('':'').size() > 1 ? int(self.split('':'')[1]) <= 65535 : true' diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml new file mode 100644 index 0000000000..4043255601 --- /dev/null +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml @@ -0,0 +1,213 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/2725 + api.openshift.io/merged-by-featuregates: "true" + include.release.openshift.io/ibm-cloud-managed: "true" + release.openshift.io/feature-set: CustomNoUpgrade + name: criocredentialproviderconfigs.config.openshift.io +spec: + group: config.openshift.io + names: + kind: CRIOCredentialProviderConfig + listKind: CRIOCredentialProviderConfigList + plural: criocredentialproviderconfigs + singular: criocredentialproviderconfig + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: |- + CRIOCredentialProviderConfig holds cluster-wide singleton resource configurations for CRI-O credential provider, the name of this instance is "cluster". CRI-O credential provider is a binary shipped with CRI-O that provides a way to obtain container image pull credentials from external sources. + For example, it can be used to fetch mirror registry credentials from secrets resources in the cluster within the same namespace the pod will be running in. + CRIOCredentialProviderConfig configuration specifies the pod image sources registries that should trigger the CRI-O credential provider execution, which will resolve the CRI-O mirror configurations and obtain the necessary credentials for pod creation. + Note: Configuration changes will only take effect after the kubelet restarts, which is automatically managed by the cluster during rollout. + + The resource is a singleton named "cluster". + + 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 defines the desired configuration of the CRI-O Credential Provider. + This field is required and must be provided when creating the resource. + minProperties: 0 + properties: + matchImages: + description: |- + matchImages is a list of string patterns used to determine whether + the CRI-O credential provider should be invoked for a given image. This list is + passed to the kubelet CredentialProviderConfig, and if any pattern matches + the requested image, CRI-O credential provider will be invoked to obtain credentials for pulling + that image or its mirrors. + Depending on the platform, the CRI-O credential provider may be installed alongside an existing platform specific provider. + Conflicts between the existing platform specific provider image match configuration and this list will be handled by + the following precedence rule: credentials from built-in kubelet providers (e.g., ECR, GCR, ACR) take precedence over those + from the CRIOCredentialProviderConfig when both match the same image. + To avoid uncertainty, it is recommended to avoid configuring your private image patterns to overlap with + existing platform specific provider config(e.g., the entries from https://github.com/openshift/machine-config-operator/blob/main/templates/common/aws/files/etc-kubernetes-credential-providers-ecr-credential-provider.yaml). + You can check the resource's Status conditions + to see if any entries were ignored due to exact matches with known built-in provider patterns. + + This field is optional, the items of the list must contain between 1 and 50 entries. + The list is treated as a set, so duplicate entries are not allowed. + + For more details, see: + https://kubernetes.io/docs/tasks/administer-cluster/kubelet-credential-provider/ + https://github.com/cri-o/crio-credential-provider#architecture + + Each entry in matchImages is a pattern which can optionally contain a port and a path. Each entry must be no longer than 512 characters. + Wildcards ('*') are supported for full subdomain labels, such as '*.k8s.io' or 'k8s.*.io', + and for top-level domains, such as 'k8s.*' (which matches 'k8s.io' or 'k8s.net'). + A global wildcard '*' (matching any domain) is not allowed. + Wildcards may replace an entire hostname label (e.g., *.example.com), but they cannot appear within a label (e.g., f*oo.example.com) and are not allowed in the port or path. + For example, 'example.*.com' is valid, but 'exa*mple.*.com' is not. + Each wildcard matches only a single domain label, + so '*.io' does **not** match '*.k8s.io'. + + A match exists between an image and a matchImage when all of the below are true: + Both contain the same number of domain parts and each part matches. + The URL path of an matchImages must be a prefix of the target image URL path. + If the matchImages contains a port, then the port must match in the image as well. + + Example values of matchImages: + - 123456789.dkr.ecr.us-east-1.amazonaws.com + - *.azurecr.io + - gcr.io + - *.*.registry.io + - registry.io:8080/path + items: + description: |- + MatchImage is a string pattern used to match container image registry addresses. + It must be a valid fully qualified domain name with optional wildcard, port, and path. + The maximum length is 512 characters. + + Wildcards ('*') are supported for full subdomain labels and top-level domains. + Each entry can optionally contain a port (e.g., :8080) and a path (e.g., /path). + Wildcards are not allowed in the port or path portions. + + Examples: + - "registry.io" - matches exactly registry.io + - "*.azurecr.io" - matches any single subdomain of azurecr.io + - "registry.io:8080/path" - matches with specific port and path prefix + maxLength: 512 + minLength: 1 + type: string + x-kubernetes-validations: + - message: global wildcard '*' is not allowed + rule: self != '*' + - message: invalid matchImages value, must be a valid fully qualified + domain name in lowercase with optional wildcard, port, and path + rule: self.matches('^((\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?)(\\.(\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?))*)(:[0-9]+)?(/[-a-z0-9._/]*)?$') + maxItems: 50 + minItems: 1 + type: array + x-kubernetes-list-type: set + type: object + status: + description: |- + status represents the current state of the CRIOCredentialProviderConfig. + When omitted or nil, it indicates that the status has not yet been set by the controller. + The controller will populate this field with validation conditions and operational state. + minProperties: 1 + properties: + conditions: + description: |- + conditions represent the latest available observations of the configuration state. + When omitted, it indicates that no conditions have been reported yet. + The maximum number of conditions is 16. + Conditions are stored as a map keyed by condition type, ensuring uniqueness. + + Expected condition types include: + "Validated": indicates whether the matchImages configuration is valid + 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: 16 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + x-kubernetes-validations: + - message: criocredentialproviderconfig is a singleton, .metadata.name must + be 'cluster' + rule: self.metadata.name == 'cluster' + served: true + storage: true + subresources: + status: {} diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml new file mode 100644 index 0000000000..baf6bfec28 --- /dev/null +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml @@ -0,0 +1,212 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/2725 + api.openshift.io/merged-by-featuregates: "true" + include.release.openshift.io/self-managed-high-availability: "true" + name: criocredentialproviderconfigs.config.openshift.io +spec: + group: config.openshift.io + names: + kind: CRIOCredentialProviderConfig + listKind: CRIOCredentialProviderConfigList + plural: criocredentialproviderconfigs + singular: criocredentialproviderconfig + scope: Cluster + versions: + - name: v1 + schema: + openAPIV3Schema: + description: |- + CRIOCredentialProviderConfig holds cluster-wide singleton resource configurations for CRI-O credential provider, the name of this instance is "cluster". CRI-O credential provider is a binary shipped with CRI-O that provides a way to obtain container image pull credentials from external sources. + For example, it can be used to fetch mirror registry credentials from secrets resources in the cluster within the same namespace the pod will be running in. + CRIOCredentialProviderConfig configuration specifies the pod image sources registries that should trigger the CRI-O credential provider execution, which will resolve the CRI-O mirror configurations and obtain the necessary credentials for pod creation. + Note: Configuration changes will only take effect after the kubelet restarts, which is automatically managed by the cluster during rollout. + + The resource is a singleton named "cluster". + + 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 defines the desired configuration of the CRI-O Credential Provider. + This field is required and must be provided when creating the resource. + minProperties: 0 + properties: + matchImages: + description: |- + matchImages is a list of string patterns used to determine whether + the CRI-O credential provider should be invoked for a given image. This list is + passed to the kubelet CredentialProviderConfig, and if any pattern matches + the requested image, CRI-O credential provider will be invoked to obtain credentials for pulling + that image or its mirrors. + Depending on the platform, the CRI-O credential provider may be installed alongside an existing platform specific provider. + Conflicts between the existing platform specific provider image match configuration and this list will be handled by + the following precedence rule: credentials from built-in kubelet providers (e.g., ECR, GCR, ACR) take precedence over those + from the CRIOCredentialProviderConfig when both match the same image. + To avoid uncertainty, it is recommended to avoid configuring your private image patterns to overlap with + existing platform specific provider config(e.g., the entries from https://github.com/openshift/machine-config-operator/blob/main/templates/common/aws/files/etc-kubernetes-credential-providers-ecr-credential-provider.yaml). + You can check the resource's Status conditions + to see if any entries were ignored due to exact matches with known built-in provider patterns. + + This field is optional, the items of the list must contain between 1 and 50 entries. + The list is treated as a set, so duplicate entries are not allowed. + + For more details, see: + https://kubernetes.io/docs/tasks/administer-cluster/kubelet-credential-provider/ + https://github.com/cri-o/crio-credential-provider#architecture + + Each entry in matchImages is a pattern which can optionally contain a port and a path. Each entry must be no longer than 512 characters. + Wildcards ('*') are supported for full subdomain labels, such as '*.k8s.io' or 'k8s.*.io', + and for top-level domains, such as 'k8s.*' (which matches 'k8s.io' or 'k8s.net'). + A global wildcard '*' (matching any domain) is not allowed. + Wildcards may replace an entire hostname label (e.g., *.example.com), but they cannot appear within a label (e.g., f*oo.example.com) and are not allowed in the port or path. + For example, 'example.*.com' is valid, but 'exa*mple.*.com' is not. + Each wildcard matches only a single domain label, + so '*.io' does **not** match '*.k8s.io'. + + A match exists between an image and a matchImage when all of the below are true: + Both contain the same number of domain parts and each part matches. + The URL path of an matchImages must be a prefix of the target image URL path. + If the matchImages contains a port, then the port must match in the image as well. + + Example values of matchImages: + - 123456789.dkr.ecr.us-east-1.amazonaws.com + - *.azurecr.io + - gcr.io + - *.*.registry.io + - registry.io:8080/path + items: + description: |- + MatchImage is a string pattern used to match container image registry addresses. + It must be a valid fully qualified domain name with optional wildcard, port, and path. + The maximum length is 512 characters. + + Wildcards ('*') are supported for full subdomain labels and top-level domains. + Each entry can optionally contain a port (e.g., :8080) and a path (e.g., /path). + Wildcards are not allowed in the port or path portions. + + Examples: + - "registry.io" - matches exactly registry.io + - "*.azurecr.io" - matches any single subdomain of azurecr.io + - "registry.io:8080/path" - matches with specific port and path prefix + maxLength: 512 + minLength: 1 + type: string + x-kubernetes-validations: + - message: global wildcard '*' is not allowed + rule: self != '*' + - message: invalid matchImages value, must be a valid fully qualified + domain name in lowercase with optional wildcard, port, and path + rule: self.matches('^((\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?)(\\.(\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?))*)(:[0-9]+)?(/[-a-z0-9._/]*)?$') + maxItems: 50 + minItems: 1 + type: array + x-kubernetes-list-type: set + type: object + status: + description: |- + status represents the current state of the CRIOCredentialProviderConfig. + When omitted or nil, it indicates that the status has not yet been set by the controller. + The controller will populate this field with validation conditions and operational state. + minProperties: 1 + properties: + conditions: + description: |- + conditions represent the latest available observations of the configuration state. + When omitted, it indicates that no conditions have been reported yet. + The maximum number of conditions is 16. + Conditions are stored as a map keyed by condition type, ensuring uniqueness. + + Expected condition types include: + "Validated": indicates whether the matchImages configuration is valid + 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: 16 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + type: object + required: + - spec + type: object + x-kubernetes-validations: + - message: criocredentialproviderconfig is a singleton, .metadata.name must + be 'cluster' + rule: self.metadata.name == 'cluster' + served: true + storage: true + subresources: + status: {} diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml index 0305366dfd..1a6c305769 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Default.crd.yaml @@ -621,6 +621,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -665,8 +666,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1287,6 +1291,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml index 1c8d67b7eb..5c5eec68ae 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-CustomNoUpgrade.crd.yaml @@ -701,6 +701,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -745,8 +746,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1108,6 +1112,11 @@ spec: rule: self.all(x, self.exists_one(y, y.server == x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding vCenter + entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set @@ -1380,6 +1389,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2081,6 +2099,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml index 4a8735ce62..3795104070 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -686,6 +686,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -730,8 +731,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1093,6 +1097,11 @@ spec: rule: self.all(x, self.exists_one(y, y.server == x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding vCenter + entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set @@ -1365,6 +1374,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2066,6 +2084,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml index 6cdb3f76af..ac54ddbd88 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-OKD.crd.yaml @@ -621,6 +621,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -665,8 +666,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1287,6 +1291,30 @@ spec: ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml index 29513d68b9..d1cdddc8ed 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -701,6 +701,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -745,8 +746,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1108,6 +1112,11 @@ spec: rule: self.all(x, self.exists_one(y, y.server == x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding vCenter + entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set @@ -1380,6 +1389,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2081,6 +2099,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index 037f26287f..29c8c48b95 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -701,6 +701,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -745,8 +746,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1108,6 +1112,11 @@ spec: rule: self.all(x, self.exists_one(y, y.server == x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding vCenter + entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set @@ -1380,6 +1389,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2081,6 +2099,28 @@ spec: - message: resourceTags are immutable and may only be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only lowercase + alphanumeric characters, ''-'' or ''.'', and start and + end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during installation diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml index 197bf2706f..d384f214f9 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-TechPreviewNoUpgrade.crd.yaml @@ -687,6 +687,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter topology @@ -731,8 +732,11 @@ spec: - format: ipv4 - format: ipv6 - format: hostname - description: server is the fully-qualified domain name - or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1094,6 +1098,11 @@ spec: rule: self.all(x, self.exists_one(y, y.server == x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding vCenter + entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' - message: ingressIPs list is required once set @@ -1366,6 +1375,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-CustomNoUpgrade.crd.yaml index 92f2913150..c94de0ff2e 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-CustomNoUpgrade.crd.yaml @@ -85,12 +85,13 @@ spec: alphanumeric characters, '-', '_', or '.', starting and ending with an alphanumeric character. maxLength: 63 + minLength: 0 type: string x-kubernetes-validations: - message: label values must be valid Kubernetes label values (at most 63 characters, alphanumeric, '-', '_', or '.', must start and end with alphanumeric) - rule: '!format.labelValue().validate(self).hasValue()' + rule: self == "" || self.matches('^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$') description: |- labels defines additional labels to be applied to the route created for the component. These labels are used by the IngressController to @@ -114,12 +115,16 @@ spec: type: object x-kubernetes-map-type: granular x-kubernetes-validations: + - message: label keys must be between 1 and 63 characters in + length + rule: self.all(key, key.size() <= 63 && key.size() > 0) - message: label keys must be valid qualified names, consisting of an optional DNS subdomain prefix of up to 253 characters followed by a slash and a name segment of 1-63 characters, that consists only of alphanumeric characters, dashes, underscores, and dots, and must start and end with an alphanumeric character - rule: self.all(key, !format.qualifiedName().validate(key).hasValue()) + rule: self.all(key, key.matches('^([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])?$') + && key.size() <= 253) - message: kubernetes.io/, k8s.io/, and openshift.io/ prefixed label keys are reserved and may not be used rule: self.all(key, !key.startsWith('kubernetes.io/') && !key.startsWith('k8s.io/') diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-DevPreviewNoUpgrade.crd.yaml index 42e4209c6b..860bde0fb2 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-DevPreviewNoUpgrade.crd.yaml @@ -85,12 +85,13 @@ spec: alphanumeric characters, '-', '_', or '.', starting and ending with an alphanumeric character. maxLength: 63 + minLength: 0 type: string x-kubernetes-validations: - message: label values must be valid Kubernetes label values (at most 63 characters, alphanumeric, '-', '_', or '.', must start and end with alphanumeric) - rule: '!format.labelValue().validate(self).hasValue()' + rule: self == "" || self.matches('^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$') description: |- labels defines additional labels to be applied to the route created for the component. These labels are used by the IngressController to @@ -114,12 +115,16 @@ spec: type: object x-kubernetes-map-type: granular x-kubernetes-validations: + - message: label keys must be between 1 and 63 characters in + length + rule: self.all(key, key.size() <= 63 && key.size() > 0) - message: label keys must be valid qualified names, consisting of an optional DNS subdomain prefix of up to 253 characters followed by a slash and a name segment of 1-63 characters, that consists only of alphanumeric characters, dashes, underscores, and dots, and must start and end with an alphanumeric character - rule: self.all(key, !format.qualifiedName().validate(key).hasValue()) + rule: self.all(key, key.matches('^([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])?$') + && key.size() <= 253) - message: kubernetes.io/, k8s.io/, and openshift.io/ prefixed label keys are reserved and may not be used rule: self.all(key, !key.startsWith('kubernetes.io/') && !key.startsWith('k8s.io/') diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-TechPreviewNoUpgrade.crd.yaml index d7fc151b11..204708d871 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_ingresses-TechPreviewNoUpgrade.crd.yaml @@ -85,12 +85,13 @@ spec: alphanumeric characters, '-', '_', or '.', starting and ending with an alphanumeric character. maxLength: 63 + minLength: 0 type: string x-kubernetes-validations: - message: label values must be valid Kubernetes label values (at most 63 characters, alphanumeric, '-', '_', or '.', must start and end with alphanumeric) - rule: '!format.labelValue().validate(self).hasValue()' + rule: self == "" || self.matches('^[a-zA-Z0-9]([a-zA-Z0-9._-]*[a-zA-Z0-9])?$') description: |- labels defines additional labels to be applied to the route created for the component. These labels are used by the IngressController to @@ -114,12 +115,16 @@ spec: type: object x-kubernetes-map-type: granular x-kubernetes-validations: + - message: label keys must be between 1 and 63 characters in + length + rule: self.all(key, key.size() <= 63 && key.size() > 0) - message: label keys must be valid qualified names, consisting of an optional DNS subdomain prefix of up to 253 characters followed by a slash and a name segment of 1-63 characters, that consists only of alphanumeric characters, dashes, underscores, and dots, and must start and end with an alphanumeric character - rule: self.all(key, !format.qualifiedName().validate(key).hasValue()) + rule: self.all(key, key.matches('^([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])?$') + && key.size() <= 253) - message: kubernetes.io/, k8s.io/, and openshift.io/ prefixed label keys are reserved and may not be used rule: self.all(key, !key.startsWith('kubernetes.io/') && !key.startsWith('k8s.io/') diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml index 7707626383..6e9daaae51 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.featuregated-crd-manifests.yaml @@ -400,6 +400,7 @@ infrastructures.config.openshift.io: - BGPBasedVIPManagement - DualReplica - DyanmicServiceEndpointIBMCloud + - GCPSovereignCloudInstall - MutableTopology - NutanixMultiSubnets - OnPremDNSRecords diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go index b763c1b531..0519119af4 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.swagger_doc_generated.go @@ -1581,7 +1581,7 @@ var map_AWSPlatformStatus = map[string]string{ "serviceEndpoints": "serviceEndpoints list contains custom endpoints which will override default service endpoint of AWS Services. There must be only one ServiceEndpoint for a service.", "resourceTags": "resourceTags is a list of additional tags to apply to AWS resources created for the cluster. See https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html for information on tagging AWS resources. AWS supports a maximum of 50 tags per resource. OpenShift reserves 25 tags for its use, leaving 25 tags available for the user.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", - "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.", + "ipFamily": "ipFamily specifies the IP protocol family that should be used for AWS network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family.\n\nValid values are: * \"IPv4\" (default): Cloud platform resources use IPv4 addressing only. * \"DualStackIPv6Primary\": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. * \"DualStackIPv4Primary\": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family.\n\nWhen omitted, this field defaults to \"IPv4\".\n\nThis field is immutable and cannot be changed once set.", } func (AWSPlatformStatus) SwaggerDoc() map[string]string { @@ -1788,6 +1788,7 @@ var map_GCPPlatformStatus = map[string]string{ "resourceLabels": "resourceLabels is a list of additional labels to apply to GCP resources created for the cluster. See https://cloud.google.com/compute/docs/labeling-resources for information on labeling GCP resources. GCP supports a maximum of 64 labels per resource. OpenShift reserves 32 labels for internal use, allowing 32 labels for user configuration.", "resourceTags": "resourceTags is a list of additional tags to apply to GCP resources created for the cluster. See https://cloud.google.com/resource-manager/docs/tags/tags-overview for information on tagging GCP resources. GCP supports a maximum of 50 tags per resource.", "cloudLoadBalancerConfig": "cloudLoadBalancerConfig holds configuration related to DNS and cloud load balancers. It allows configuration of in-cluster DNS as an alternative to the platform default DNS implementation. When using the ClusterHosted DNS type, Load Balancer IP addresses must be provided for the API and internal API load balancers as well as the ingress load balancer.", + "universeDomain": "universeDomain is the GCP universe domain for the cluster, detected from the installer credentials. Components with their own GCP credentials should read the universe domain from those credentials, as they are the authoritative source. This field is provided for components that do not have GCP credentials and for general observability.\n\nWhen omitted, standard public GCP (googleapis.com) is assumed.\n\nuniverseDomain is an optional field that, when specified, must be non-empty and at most 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric characters, '-' or '.', and starting and ending with an alphanumeric character.", } func (GCPPlatformStatus) SwaggerDoc() map[string]string { @@ -2175,7 +2176,7 @@ var map_VSpherePlatformFailureDomainSpec = map[string]string{ "zone": "zone defines the name of a zone tag that will be attached to a vCenter cluster. The tag category in vCenter must be named openshift-zone.", "regionAffinity": "regionAffinity holds the type of region, Datacenter or ComputeCluster. When set to Datacenter, this means the region is a vCenter Datacenter as defined in topology. When set to ComputeCluster, this means the region is a vCenter Cluster as defined in topology.", "zoneAffinity": "zoneAffinity holds the type of the zone and the hostGroup which vmGroup and the hostGroup names in vCenter corresponds to a vm-host group of type Virtual Machine and Host respectively. Is also contains the vmHostRule which is an affinity vm-host rule in vCenter.", - "server": "server is the fully-qualified domain name or the IP address of the vCenter server.", + "server": "server is the fully-qualified domain name or the IP address of the vCenter server. This must match the server field of an entry in the vcenters list. The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. The value must be between 1 and 255 characters long.", "topology": "topology describes a given failure domain using vSphere constructs", } @@ -2216,7 +2217,7 @@ func (VSpherePlatformNodeNetworkingSpec) SwaggerDoc() map[string]string { var map_VSpherePlatformSpec = map[string]string{ "": "VSpherePlatformSpec holds the desired state of the vSphere infrastructure provider. In the future the cloud provider operator, storage operator and machine operator will use these fields for configuration.", "vcenters": "vcenters holds the connection details for services to communicate with vCenter. Up to 3 vCenters are supported. Once the cluster has been installed, you are unable to change the current number of defined vCenters except when 1.) the cluster has been upgraded from a version of OpenShift where the vsphere platform spec was not present or 2.) in TechPreview you are able to add and remove vCenters but may not remove all vCenters. You may make modifications to the existing vCenters that are defined in the vcenters list in order to match with any added or modified failure domains.", - "failureDomains": "failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used.", + "failureDomains": "failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. Each failure domain's server must match the server field of an entry in the vcenters list.", "nodeNetworking": "nodeNetworking contains the definition of internal and external network constraints for assigning the node's networking. If this field is omitted, networking defaults to the legacy address selection behavior which is to only support a single address and return the first one found.", "apiServerInternalIPs": "apiServerInternalIPs are the IP addresses to contact the Kubernetes API server that can be used by components inside the cluster, like kubelets using the infrastructure rather than Kubernetes networking. These are the IPs for a self-hosted load balancer in front of the API servers. In dual stack clusters this list contains two IP addresses, one from IPv4 family and one from IPv6. In single stack clusters a single IP address is expected. When omitted, values from the status.apiServerInternalIPs will be used. Once set, the list cannot be completely removed (but its second entry can).", "ingressIPs": "ingressIPs are the external IPs which route to the default ingress controller. The IPs are suitable targets of a wildcard DNS record used to resolve default route host names. In dual stack clusters this list contains two IP addresses, one from IPv4 family and one from IPv6. In single stack clusters a single IP address is expected. When omitted, values from the status.ingressIPs will be used. Once set, the list cannot be completely removed (but its second entry can).", diff --git a/vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.go b/vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.go index d4846fd1cd..7692fe21b4 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.go +++ b/vendor/github.com/openshift/api/config/v1alpha1/types_cluster_monitoring.go @@ -466,6 +466,28 @@ type NodeExporterCollectorConfig struct { // Enable when you need visibility into kernel softirq processing across CPUs. // +optional Softirqs NodeExporterCollectorSoftirqsConfig `json:"softirqs,omitempty,omitzero"` + // deviceMapperMultipath configures the dmmultipath collector, which collects statistics + // about DM-Multipath devices. + // deviceMapperMultipath is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is enabled. + // +optional + DeviceMapperMultipath NodeExporterCollectorDeviceMapperMultipathConfig `json:"deviceMapperMultipath,omitzero"` + // zoneinfo configures the zoneinfo collector, which exposes per-zone memory page counts, + // watermarks, and protection thresholds from /proc/zoneinfo. + // zoneinfo is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is to not collect zoneinfo metrics. + // Enable when you need visibility into kernel memory zone allocation and pressure. + // +optional + Zoneinfo NodeExporterCollectorZoneinfoConfig `json:"zoneinfo,omitzero"` + // nvmExpressSubsystem configures the nvmesubsystem collector, which + // collects statistics about NVM Express (NVMe) subsystem devices. + // nvmExpressSubsystem is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is enabled. + // +optional + NVMExpressSubsystem NodeExporterCollectorNVMExpressSubsystemConfig `json:"nvmExpressSubsystem,omitzero"` } // NodeExporterCollectorCpufreqConfig provides configuration for the cpufreq collector @@ -689,6 +711,48 @@ type NodeExporterCollectorSoftirqsConfig struct { CollectionPolicy NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` } +// NodeExporterCollectorDeviceMapperMultipathConfig provides configuration for the dmmultipath collector +// of the node-exporter agent. The dmmultipath collector collects statistics about +// DM-Multipath devices. +// It is enabled by default. +type NodeExporterCollectorDeviceMapperMultipathConfig struct { + // collectionPolicy declares whether the dmmultipath collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the dmmultipath collector is active and DM-Multipath device statistics are collected. + // When set to "DoNotCollect", the dmmultipath collector is inactive and the corresponding metrics become unavailable. + // +required + CollectionPolicy NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + +// NodeExporterCollectorZoneinfoConfig provides configuration for the zoneinfo collector +// of the node-exporter agent. The zoneinfo collector exposes per-zone memory page counts, +// watermarks, and protection thresholds from /proc/zoneinfo. +// By default, the zoneinfo collector does not collect metrics. +type NodeExporterCollectorZoneinfoConfig struct { + // collectionPolicy declares whether the zoneinfo collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the zoneinfo collector is active and zone memory statistics are collected. + // When set to "DoNotCollect", the zoneinfo collector is inactive. + // +required + CollectionPolicy NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + +// NodeExporterCollectorNVMExpressSubsystemConfig provides configuration for +// the nvmesubsystem collector of the node-exporter agent. The nvmesubsystem +// collector collects statistics about NVM Express (NVMe) subsystem devices. +// It is enabled by default. +type NodeExporterCollectorNVMExpressSubsystemConfig struct { + // collectionPolicy declares whether the nvmesubsystem collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the nvmesubsystem collector is active and NVMe subsystem statistics are collected. + // When set to "DoNotCollect", the nvmesubsystem collector is inactive and the corresponding metrics become unavailable. + // +required + CollectionPolicy NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + // MonitoringPluginConfig provides configuration options for the monitoring plugin // that runs as a dynamic plugin of the OpenShift web console. // The monitoring plugin provides the monitoring UI in the OpenShift web console @@ -1550,6 +1614,13 @@ type RemoteWriteSpec struct { // +kubebuilder:validation:MaxLength=63 // +kubebuilder:validation:XValidation:rule="self.matches('^[a-zA-Z0-9_-]+$')",message="must contain only alphanumeric characters, hyphens, and underscores" Name string `json:"name,omitempty"` + // messageVersion defines the Remote Write message's version to use when writing to the endpoint. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. + // The default value is "V1.0". + // When set to "V1.0", Prometheus uses the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0. + // When set to "V2.0", Prometheus uses the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0. + // +optional + MessageVersion RemoteWriteMessageVersion `json:"messageVersion,omitempty,omitzero"` // authorization defines the authorization method for the remote write endpoint. // When omitted, no authorization is performed. // When set, type must be one of Authorization, BasicAuth, OAuth2, SigV4, or ServiceAccount; the corresponding nested config must be set (ServiceAccount has no config). @@ -1747,6 +1818,17 @@ type RemoteWriteAuthorization struct { // SafeAuthorization *v1.SecretKeySelector `json:"safeAuthorization,omitempty"` } +// RemoteWriteMessageVersion defines the version of the remote-write protocol. +// +kubebuilder:validation:Enum=V1.0;V2.0 +type RemoteWriteMessageVersion string + +const ( + // RemoteWriteMessageVersion1_0 indicates the version 1.0 of the remote-write protocol. + RemoteWriteMessageVersion1_0 RemoteWriteMessageVersion = "V1.0" + // RemoteWriteMessageVersion2_0 indicates the version 2.0 of the remote-write protocol. + RemoteWriteMessageVersion2_0 RemoteWriteMessageVersion = "V2.0" +) + // MetadataConfigSendPolicy defines whether to send metadata with platform defaults or with custom settings. // +kubebuilder:validation:Enum=Default;Custom type MetadataConfigSendPolicy string diff --git a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clustermonitorings.crd.yaml b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clustermonitorings.crd.yaml index bb427426d0..3c84f99841 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clustermonitorings.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_clustermonitorings.crd.yaml @@ -2162,6 +2162,28 @@ spec: required: - collectionPolicy type: object + deviceMapperMultipath: + description: |- + deviceMapperMultipath configures the dmmultipath collector, which collects statistics + about DM-Multipath devices. + deviceMapperMultipath is optional. + When omitted, this means no opinion and the platform is left to choose a reasonable default, + which is subject to change over time. The current default is enabled. + properties: + collectionPolicy: + description: |- + collectionPolicy declares whether the dmmultipath collector collects metrics. + This field is required. + Valid values are "Collect" and "DoNotCollect". + When set to "Collect", the dmmultipath collector is active and DM-Multipath device statistics are collected. + When set to "DoNotCollect", the dmmultipath collector is inactive and the corresponding metrics become unavailable. + enum: + - Collect + - DoNotCollect + type: string + required: + - collectionPolicy + type: object ethtool: description: |- ethtool configures the ethtool collector, which collects ethernet device statistics. @@ -2304,6 +2326,28 @@ spec: required: - collectionPolicy type: object + nvmExpressSubsystem: + description: |- + nvmExpressSubsystem configures the nvmesubsystem collector, which + collects statistics about NVM Express (NVMe) subsystem devices. + nvmExpressSubsystem is optional. + When omitted, this means no opinion and the platform is left to choose a reasonable default, + which is subject to change over time. The current default is enabled. + properties: + collectionPolicy: + description: |- + collectionPolicy declares whether the nvmesubsystem collector collects metrics. + This field is required. + Valid values are "Collect" and "DoNotCollect". + When set to "Collect", the nvmesubsystem collector is active and NVMe subsystem statistics are collected. + When set to "DoNotCollect", the nvmesubsystem collector is inactive and the corresponding metrics become unavailable. + enum: + - Collect + - DoNotCollect + type: string + required: + - collectionPolicy + type: object processes: description: |- processes configures the processes collector, which collects statistics from processes and @@ -2436,6 +2480,29 @@ spec: required: - collectionPolicy type: object + zoneinfo: + description: |- + zoneinfo configures the zoneinfo collector, which exposes per-zone memory page counts, + watermarks, and protection thresholds from /proc/zoneinfo. + zoneinfo is optional. + When omitted, this means no opinion and the platform is left to choose a reasonable default, + which is subject to change over time. The current default is to not collect zoneinfo metrics. + Enable when you need visibility into kernel memory zone allocation and pressure. + properties: + collectionPolicy: + description: |- + collectionPolicy declares whether the zoneinfo collector collects metrics. + This field is required. + Valid values are "Collect" and "DoNotCollect". + When set to "Collect", the zoneinfo collector is active and zone memory statistics are collected. + When set to "DoNotCollect", the zoneinfo collector is inactive. + enum: + - Collect + - DoNotCollect + type: string + required: + - collectionPolicy + type: object type: object ignoredNetworkDevices: description: |- @@ -3849,6 +3916,17 @@ spec: x-kubernetes-list-map-keys: - name x-kubernetes-list-type: map + messageVersion: + description: |- + messageVersion defines the Remote Write message's version to use when writing to the endpoint. + When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. + The default value is "V1.0". + When set to "V1.0", Prometheus uses the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0. + When set to "V2.0", Prometheus uses the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0. + enum: + - V1.0 + - V2.0 + type: string metadataConfig: description: |- metadataConfig configures the sending of series metadata to remote storage. diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml similarity index 50% rename from vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml rename to vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml index 7a720440ac..af584009de 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-Hypershift.crd.yaml @@ -2,11 +2,10 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - api-approved.openshift.io: https://github.com/openshift/api/pull/2725 + api-approved.openshift.io: https://github.com/openshift/api/pull/2557 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,DevPreviewNoUpgrade,TechPreviewNoUpgrade + release.openshift.io/feature-set: CustomNoUpgrade name: criocredentialproviderconfigs.config.openshift.io spec: group: config.openshift.io @@ -17,201 +16,6 @@ spec: singular: criocredentialproviderconfig scope: Cluster versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - CRIOCredentialProviderConfig holds cluster-wide singleton resource configurations for CRI-O credential provider, the name of this instance is "cluster". CRI-O credential provider is a binary shipped with CRI-O that provides a way to obtain container image pull credentials from external sources. - For example, it can be used to fetch mirror registry credentials from secrets resources in the cluster within the same namespace the pod will be running in. - CRIOCredentialProviderConfig configuration specifies the pod image sources registries that should trigger the CRI-O credential provider execution, which will resolve the CRI-O mirror configurations and obtain the necessary credentials for pod creation. - Note: Configuration changes will only take effect after the kubelet restarts, which is automatically managed by the cluster during rollout. - - The resource is a singleton named "cluster". - - 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 defines the desired configuration of the CRI-O Credential Provider. - This field is required and must be provided when creating the resource. - minProperties: 0 - properties: - matchImages: - description: |- - matchImages is a list of string patterns used to determine whether - the CRI-O credential provider should be invoked for a given image. This list is - passed to the kubelet CredentialProviderConfig, and if any pattern matches - the requested image, CRI-O credential provider will be invoked to obtain credentials for pulling - that image or its mirrors. - Depending on the platform, the CRI-O credential provider may be installed alongside an existing platform specific provider. - Conflicts between the existing platform specific provider image match configuration and this list will be handled by - the following precedence rule: credentials from built-in kubelet providers (e.g., ECR, GCR, ACR) take precedence over those - from the CRIOCredentialProviderConfig when both match the same image. - To avoid uncertainty, it is recommended to avoid configuring your private image patterns to overlap with - existing platform specific provider config(e.g., the entries from https://github.com/openshift/machine-config-operator/blob/main/templates/common/aws/files/etc-kubernetes-credential-providers-ecr-credential-provider.yaml). - You can check the resource's Status conditions - to see if any entries were ignored due to exact matches with known built-in provider patterns. - - This field is optional, the items of the list must contain between 1 and 50 entries. - The list is treated as a set, so duplicate entries are not allowed. - - For more details, see: - https://kubernetes.io/docs/tasks/administer-cluster/kubelet-credential-provider/ - https://github.com/cri-o/crio-credential-provider#architecture - - Each entry in matchImages is a pattern which can optionally contain a port and a path. Each entry must be no longer than 512 characters. - Wildcards ('*') are supported for full subdomain labels, such as '*.k8s.io' or 'k8s.*.io', - and for top-level domains, such as 'k8s.*' (which matches 'k8s.io' or 'k8s.net'). - A global wildcard '*' (matching any domain) is not allowed. - Wildcards may replace an entire hostname label (e.g., *.example.com), but they cannot appear within a label (e.g., f*oo.example.com) and are not allowed in the port or path. - For example, 'example.*.com' is valid, but 'exa*mple.*.com' is not. - Each wildcard matches only a single domain label, - so '*.io' does **not** match '*.k8s.io'. - - A match exists between an image and a matchImage when all of the below are true: - Both contain the same number of domain parts and each part matches. - The URL path of an matchImages must be a prefix of the target image URL path. - If the matchImages contains a port, then the port must match in the image as well. - - Example values of matchImages: - - 123456789.dkr.ecr.us-east-1.amazonaws.com - - *.azurecr.io - - gcr.io - - *.*.registry.io - - registry.io:8080/path - items: - description: |- - MatchImage is a string pattern used to match container image registry addresses. - It must be a valid fully qualified domain name with optional wildcard, port, and path. - The maximum length is 512 characters. - - Wildcards ('*') are supported for full subdomain labels and top-level domains. - Each entry can optionally contain a port (e.g., :8080) and a path (e.g., /path). - Wildcards are not allowed in the port or path portions. - - Examples: - - "registry.io" - matches exactly registry.io - - "*.azurecr.io" - matches any single subdomain of azurecr.io - - "registry.io:8080/path" - matches with specific port and path prefix - maxLength: 512 - minLength: 1 - type: string - x-kubernetes-validations: - - message: global wildcard '*' is not allowed - rule: self != '*' - - message: invalid matchImages value, must be a valid fully qualified - domain name in lowercase with optional wildcard, port, and path - rule: self.matches('^((\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?)(\\.(\\*|[a-z0-9]([a-z0-9-]*[a-z0-9])?))*)(:[0-9]+)?(/[-a-z0-9._/]*)?$') - maxItems: 50 - minItems: 1 - type: array - x-kubernetes-list-type: set - type: object - status: - description: |- - status represents the current state of the CRIOCredentialProviderConfig. - When omitted or nil, it indicates that the status has not yet been set by the controller. - The controller will populate this field with validation conditions and operational state. - minProperties: 1 - properties: - conditions: - description: |- - conditions represent the latest available observations of the configuration state. - When omitted, it indicates that no conditions have been reported yet. - The maximum number of conditions is 16. - Conditions are stored as a map keyed by condition type, ensuring uniqueness. - - Expected condition types include: - "Validated": indicates whether the matchImages configuration is valid - 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: 16 - minItems: 1 - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - type: object - required: - - spec - type: object - x-kubernetes-validations: - - message: criocredentialproviderconfig is a singleton, .metadata.name must - be 'cluster' - rule: self.metadata.name == 'cluster' - served: true - storage: false - subresources: - status: {} - name: v1alpha1 schema: openAPIV3Schema: diff --git a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml similarity index 98% rename from vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml rename to vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml index 0e12b8cc45..1668e532f9 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.crd-manifests/0000_10_config-operator_01_criocredentialproviderconfigs-SelfManagedHA.crd.yaml @@ -4,9 +4,7 @@ metadata: annotations: api-approved.openshift.io: https://github.com/openshift/api/pull/2557 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,DevPreviewNoUpgrade,TechPreviewNoUpgrade name: criocredentialproviderconfigs.config.openshift.io spec: group: config.openshift.io diff --git a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.go index 12dd0cd312..660e2931a7 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.deepcopy.go @@ -1024,6 +1024,9 @@ func (in *NodeExporterCollectorConfig) DeepCopyInto(out *NodeExporterCollectorCo out.Processes = in.Processes in.Systemd.DeepCopyInto(&out.Systemd) out.Softirqs = in.Softirqs + out.DeviceMapperMultipath = in.DeviceMapperMultipath + out.Zoneinfo = in.Zoneinfo + out.NVMExpressSubsystem = in.NVMExpressSubsystem return } @@ -1053,6 +1056,22 @@ func (in *NodeExporterCollectorCpufreqConfig) DeepCopy() *NodeExporterCollectorC return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeExporterCollectorDeviceMapperMultipathConfig) DeepCopyInto(out *NodeExporterCollectorDeviceMapperMultipathConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeExporterCollectorDeviceMapperMultipathConfig. +func (in *NodeExporterCollectorDeviceMapperMultipathConfig) DeepCopy() *NodeExporterCollectorDeviceMapperMultipathConfig { + if in == nil { + return nil + } + out := new(NodeExporterCollectorDeviceMapperMultipathConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeExporterCollectorEthtoolConfig) DeepCopyInto(out *NodeExporterCollectorEthtoolConfig) { *out = *in @@ -1101,6 +1120,22 @@ func (in *NodeExporterCollectorMountStatsConfig) DeepCopy() *NodeExporterCollect return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeExporterCollectorNVMExpressSubsystemConfig) DeepCopyInto(out *NodeExporterCollectorNVMExpressSubsystemConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeExporterCollectorNVMExpressSubsystemConfig. +func (in *NodeExporterCollectorNVMExpressSubsystemConfig) DeepCopy() *NodeExporterCollectorNVMExpressSubsystemConfig { + if in == nil { + return nil + } + out := new(NodeExporterCollectorNVMExpressSubsystemConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeExporterCollectorNetClassCollectConfig) DeepCopyInto(out *NodeExporterCollectorNetClassCollectConfig) { *out = *in @@ -1236,6 +1271,22 @@ func (in *NodeExporterCollectorTcpStatConfig) DeepCopy() *NodeExporterCollectorT return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *NodeExporterCollectorZoneinfoConfig) DeepCopyInto(out *NodeExporterCollectorZoneinfoConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new NodeExporterCollectorZoneinfoConfig. +func (in *NodeExporterCollectorZoneinfoConfig) DeepCopy() *NodeExporterCollectorZoneinfoConfig { + if in == nil { + return nil + } + out := new(NodeExporterCollectorZoneinfoConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *NodeExporterConfig) DeepCopyInto(out *NodeExporterConfig) { *out = *in diff --git a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.model_name.go b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.model_name.go index 36a7803bf2..e7e61f4450 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.model_name.go +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.model_name.go @@ -230,6 +230,11 @@ func (in NodeExporterCollectorCpufreqConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorCpufreqConfig" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NodeExporterCollectorDeviceMapperMultipathConfig) OpenAPIModelName() string { + return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorDeviceMapperMultipathConfig" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in NodeExporterCollectorEthtoolConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorEthtoolConfig" @@ -245,6 +250,11 @@ func (in NodeExporterCollectorMountStatsConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorMountStatsConfig" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NodeExporterCollectorNVMExpressSubsystemConfig) OpenAPIModelName() string { + return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNVMExpressSubsystemConfig" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in NodeExporterCollectorNetClassCollectConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNetClassCollectConfig" @@ -285,6 +295,11 @@ func (in NodeExporterCollectorTcpStatConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorTcpStatConfig" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in NodeExporterCollectorZoneinfoConfig) OpenAPIModelName() string { + return "com.github.openshift.api.config.v1alpha1.NodeExporterCollectorZoneinfoConfig" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in NodeExporterConfig) OpenAPIModelName() string { return "com.github.openshift.api.config.v1alpha1.NodeExporterConfig" diff --git a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.go index 8f6cda1915..2c20659cac 100644 --- a/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/config/v1alpha1/zz_generated.swagger_doc_generated.go @@ -344,18 +344,21 @@ func (NodeExporterCollectorBuddyInfoConfig) SwaggerDoc() map[string]string { } var map_NodeExporterCollectorConfig = map[string]string{ - "": "NodeExporterCollectorConfig defines settings for individual collectors of the node-exporter agent. Each collector can be individually set to collect or not collect metrics. At least one collector must be specified.", - "cpuFreq": "cpuFreq configures the cpufreq collector, which collects CPU frequency statistics. cpuFreq is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Consider enabling when you need to observe CPU frequency scaling; expect higher CPU usage on many-core nodes when collectionPolicy is Collect.", - "tcpStat": "tcpStat configures the tcpstat collector, which collects TCP connection statistics. tcpStat is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when debugging TCP connection behavior or capacity at the node level.", - "ethtool": "ethtool configures the ethtool collector, which collects ethernet device statistics. ethtool is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when you need NIC driver-level ethtool metrics beyond generic netdev counters.", - "netDev": "netDev configures the netdev collector, which collects network device statistics. netDev is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled. Turn off if you must reduce per-interface metric cardinality on hosts with many virtual interfaces.", - "netClass": "netClass configures the netclass collector, which collects information about network devices. netClass is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled with netlink mode active. Use statsGatherer when sysfs vs netlink implementation matters or when matching node_exporter tuning.", - "buddyInfo": "buddyInfo configures the buddyinfo collector, which collects statistics about memory fragmentation from the node_buddyinfo_blocks metric. This metric collects data from /proc/buddyinfo. buddyInfo is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when investigating kernel memory fragmentation; typically for advanced troubleshooting only.", - "mountStats": "mountStats configures the mountstats collector, which collects statistics about NFS volume I/O activities. mountStats is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enabling this collector may produce metrics with high cardinality. If you enable this collector, closely monitor the prometheus-k8s deployment for excessive memory usage. Enable when you care about per-mount NFS client statistics.", - "ksmd": "ksmd configures the ksmd collector, which collects statistics from the kernel same-page merger daemon. ksmd is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable on nodes where KSM is in use and you want visibility into merging activity.", - "processes": "processes configures the processes collector, which collects statistics from processes and threads running in the system. processes is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable for process/thread-level insight; can be expensive on busy nodes.", - "systemd": "systemd configures the systemd collector, which collects statistics on the systemd daemon and its managed services. systemd is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enabling this collector with a long list of selected units may produce metrics with high cardinality. If you enable this collector, closely monitor the prometheus-k8s deployment for excessive memory usage. Enable when you need metrics for specific units; scope units carefully.", - "softirqs": "softirqs configures the softirqs collector, which exposes detailed softirq statistics from /proc/softirqs. softirqs is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when you need visibility into kernel softirq processing across CPUs.", + "": "NodeExporterCollectorConfig defines settings for individual collectors of the node-exporter agent. Each collector can be individually set to collect or not collect metrics. At least one collector must be specified.", + "cpuFreq": "cpuFreq configures the cpufreq collector, which collects CPU frequency statistics. cpuFreq is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Consider enabling when you need to observe CPU frequency scaling; expect higher CPU usage on many-core nodes when collectionPolicy is Collect.", + "tcpStat": "tcpStat configures the tcpstat collector, which collects TCP connection statistics. tcpStat is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when debugging TCP connection behavior or capacity at the node level.", + "ethtool": "ethtool configures the ethtool collector, which collects ethernet device statistics. ethtool is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when you need NIC driver-level ethtool metrics beyond generic netdev counters.", + "netDev": "netDev configures the netdev collector, which collects network device statistics. netDev is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled. Turn off if you must reduce per-interface metric cardinality on hosts with many virtual interfaces.", + "netClass": "netClass configures the netclass collector, which collects information about network devices. netClass is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled with netlink mode active. Use statsGatherer when sysfs vs netlink implementation matters or when matching node_exporter tuning.", + "buddyInfo": "buddyInfo configures the buddyinfo collector, which collects statistics about memory fragmentation from the node_buddyinfo_blocks metric. This metric collects data from /proc/buddyinfo. buddyInfo is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when investigating kernel memory fragmentation; typically for advanced troubleshooting only.", + "mountStats": "mountStats configures the mountstats collector, which collects statistics about NFS volume I/O activities. mountStats is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enabling this collector may produce metrics with high cardinality. If you enable this collector, closely monitor the prometheus-k8s deployment for excessive memory usage. Enable when you care about per-mount NFS client statistics.", + "ksmd": "ksmd configures the ksmd collector, which collects statistics from the kernel same-page merger daemon. ksmd is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable on nodes where KSM is in use and you want visibility into merging activity.", + "processes": "processes configures the processes collector, which collects statistics from processes and threads running in the system. processes is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable for process/thread-level insight; can be expensive on busy nodes.", + "systemd": "systemd configures the systemd collector, which collects statistics on the systemd daemon and its managed services. systemd is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enabling this collector with a long list of selected units may produce metrics with high cardinality. If you enable this collector, closely monitor the prometheus-k8s deployment for excessive memory usage. Enable when you need metrics for specific units; scope units carefully.", + "softirqs": "softirqs configures the softirqs collector, which exposes detailed softirq statistics from /proc/softirqs. softirqs is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is disabled. Enable when you need visibility into kernel softirq processing across CPUs.", + "deviceMapperMultipath": "deviceMapperMultipath configures the dmmultipath collector, which collects statistics about DM-Multipath devices. deviceMapperMultipath is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled.", + "zoneinfo": "zoneinfo configures the zoneinfo collector, which exposes per-zone memory page counts, watermarks, and protection thresholds from /proc/zoneinfo. zoneinfo is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is to not collect zoneinfo metrics. Enable when you need visibility into kernel memory zone allocation and pressure.", + "nvmExpressSubsystem": "nvmExpressSubsystem configures the nvmesubsystem collector, which collects statistics about NVM Express (NVMe) subsystem devices. nvmExpressSubsystem is optional. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is enabled.", } func (NodeExporterCollectorConfig) SwaggerDoc() map[string]string { @@ -371,6 +374,15 @@ func (NodeExporterCollectorCpufreqConfig) SwaggerDoc() map[string]string { return map_NodeExporterCollectorCpufreqConfig } +var map_NodeExporterCollectorDeviceMapperMultipathConfig = map[string]string{ + "": "NodeExporterCollectorDeviceMapperMultipathConfig provides configuration for the dmmultipath collector of the node-exporter agent. The dmmultipath collector collects statistics about DM-Multipath devices. It is enabled by default.", + "collectionPolicy": "collectionPolicy declares whether the dmmultipath collector collects metrics. This field is required. Valid values are \"Collect\" and \"DoNotCollect\". When set to \"Collect\", the dmmultipath collector is active and DM-Multipath device statistics are collected. When set to \"DoNotCollect\", the dmmultipath collector is inactive and the corresponding metrics become unavailable.", +} + +func (NodeExporterCollectorDeviceMapperMultipathConfig) SwaggerDoc() map[string]string { + return map_NodeExporterCollectorDeviceMapperMultipathConfig +} + var map_NodeExporterCollectorEthtoolConfig = map[string]string{ "": "NodeExporterCollectorEthtoolConfig provides configuration for the ethtool collector of the node-exporter agent. The ethtool collector collects ethernet device statistics. It is disabled by default.", "collectionPolicy": "collectionPolicy declares whether the ethtool collector collects metrics. This field is required. Valid values are \"Collect\" and \"DoNotCollect\". When set to \"Collect\", the ethtool collector is active and ethernet device statistics are collected. When set to \"DoNotCollect\", the ethtool collector is inactive.", @@ -398,6 +410,15 @@ func (NodeExporterCollectorMountStatsConfig) SwaggerDoc() map[string]string { return map_NodeExporterCollectorMountStatsConfig } +var map_NodeExporterCollectorNVMExpressSubsystemConfig = map[string]string{ + "": "NodeExporterCollectorNVMExpressSubsystemConfig provides configuration for the nvmesubsystem collector of the node-exporter agent. The nvmesubsystem collector collects statistics about NVM Express (NVMe) subsystem devices. It is enabled by default.", + "collectionPolicy": "collectionPolicy declares whether the nvmesubsystem collector collects metrics. This field is required. Valid values are \"Collect\" and \"DoNotCollect\". When set to \"Collect\", the nvmesubsystem collector is active and NVMe subsystem statistics are collected. When set to \"DoNotCollect\", the nvmesubsystem collector is inactive and the corresponding metrics become unavailable.", +} + +func (NodeExporterCollectorNVMExpressSubsystemConfig) SwaggerDoc() map[string]string { + return map_NodeExporterCollectorNVMExpressSubsystemConfig +} + var map_NodeExporterCollectorNetClassCollectConfig = map[string]string{ "": "NodeExporterCollectorNetClassCollectConfig holds configuration options for the netclass collector when it is actively collecting metrics. At least one field must be specified.", "statsGatherer": "statsGatherer selects which implementation the netclass collector uses to gather statistics (sysfs or netlink). statsGatherer is optional. Valid values are \"Sysfs\" and \"Netlink\". When set to \"Netlink\", the netlink implementation is used; when set to \"Sysfs\", the sysfs implementation is used. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The current default is Netlink.", @@ -472,6 +493,15 @@ func (NodeExporterCollectorTcpStatConfig) SwaggerDoc() map[string]string { return map_NodeExporterCollectorTcpStatConfig } +var map_NodeExporterCollectorZoneinfoConfig = map[string]string{ + "": "NodeExporterCollectorZoneinfoConfig provides configuration for the zoneinfo collector of the node-exporter agent. The zoneinfo collector exposes per-zone memory page counts, watermarks, and protection thresholds from /proc/zoneinfo. By default, the zoneinfo collector does not collect metrics.", + "collectionPolicy": "collectionPolicy declares whether the zoneinfo collector collects metrics. This field is required. Valid values are \"Collect\" and \"DoNotCollect\". When set to \"Collect\", the zoneinfo collector is active and zone memory statistics are collected. When set to \"DoNotCollect\", the zoneinfo collector is inactive.", +} + +func (NodeExporterCollectorZoneinfoConfig) SwaggerDoc() map[string]string { + return map_NodeExporterCollectorZoneinfoConfig +} + var map_NodeExporterConfig = map[string]string{ "": "NodeExporterConfig provides configuration options for the node-exporter agent that runs as a DaemonSet in the `openshift-monitoring` namespace. The node-exporter agent collects hardware and OS-level metrics from every node in the cluster, including CPU, memory, disk, and network statistics. At least one field must be specified.", "resources": "resources defines the compute resource requests and limits for the node-exporter container. This includes CPU, memory and HugePages constraints to help control scheduling and resource usage. When not specified, defaults are used by the platform. Requests cannot exceed limits. This field is optional. More info: https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/ This is a simplified API that maps to Kubernetes ResourceRequirements. The current default values are:\n resources:\n - name: cpu\n request: 8m\n limit: null\n - name: memory\n request: 32Mi\n limit: null", @@ -635,6 +665,7 @@ var map_RemoteWriteSpec = map[string]string{ "": "RemoteWriteSpec represents configuration for remote write endpoints.", "url": "url is the URL of the remote write endpoint. Must be a valid URL with http or https scheme and a non-empty hostname. Query parameters, fragments, and user information (e.g. user:password@host) are not allowed. Empty string is invalid. Must be between 1 and 2048 characters in length.", "name": "name is a required identifier for this remote write configuration (name is the list key for the remoteWrite list). This name is used in metrics and logging to differentiate remote write queues. Must contain only alphanumeric characters, hyphens, and underscores. Must be between 1 and 63 characters in length.", + "messageVersion": "messageVersion defines the Remote Write message's version to use when writing to the endpoint. When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. The default value is \"V1.0\". When set to \"V1.0\", Prometheus uses the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0. When set to \"V2.0\", Prometheus uses the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0.", "authorization": "authorization defines the authorization method for the remote write endpoint. When omitted, no authorization is performed. When set, type must be one of Authorization, BasicAuth, OAuth2, SigV4, or ServiceAccount; the corresponding nested config must be set (ServiceAccount has no config).", "headers": "headers specifies the custom HTTP headers to be sent along with each remote write request. Sending custom headers makes the configuration of a proxy in between optional and helps the receiver recognize the given source better. Clients MAY allow users to send custom HTTP headers; they MUST NOT allow users to configure them in such a way as to send reserved headers. Headers set by Prometheus cannot be overwritten. When omitted, no custom headers are sent. Maximum of 50 headers can be specified. Each header name must be unique. Each header name must contain only alphanumeric characters, hyphens, and underscores, and must not be a reserved Prometheus header (Host, Authorization, Content-Encoding, Content-Type, X-Prometheus-Remote-Write-Version, User-Agent, Connection, Keep-Alive, Proxy-Authenticate, Proxy-Authorization, WWW-Authenticate).", "metadataConfig": "metadataConfig configures the sending of series metadata to remote storage. When omitted, no metadata is sent. When set to sendPolicy: Default, metadata is sent using platform-chosen defaults (e.g. send interval 30 seconds). When set to sendPolicy: Custom, metadata is sent using the settings in the custom field (e.g. custom.sendIntervalSeconds).", diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md index 8179ba4524..c89925276f 100644 --- a/vendor/github.com/openshift/api/features.md +++ b/vendor/github.com/openshift/api/features.md @@ -26,15 +26,10 @@ | NewOLMCatalogdAPIV1Metas| | | | Enabled | | | | Enabled | | NewOLMConfigAPI| | | | Enabled | | | | Enabled | | NewOLMOwnSingleNamespace| | | | Enabled | | | | Enabled | -| NewOLMPreflightPermissionChecks| | | | Enabled | | | | Enabled | -| NoRegistryClusterInstall| | | | Enabled | | | | Enabled | -| OLMLifecycleAndCompatibility| | | | Enabled | | | | Enabled | | ProvisioningRequestAvailable| | | Enabled | Enabled | | | | | | AWSClusterHostedDNS| | | Enabled | Enabled | | | Enabled | Enabled | | AWSDedicatedHosts| | | Enabled | Enabled | | | Enabled | Enabled | -| AWSDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled | | AWSEuropeanSovereignCloudInstall| | | Enabled | Enabled | | | Enabled | Enabled | -| AdditionalStorageConfig| | | Enabled | Enabled | | | Enabled | Enabled | | AutomatedEtcdBackup| | | Enabled | Enabled | | | Enabled | Enabled | | AzureDedicatedHosts| | | Enabled | Enabled | | | Enabled | Enabled | | AzureDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled | @@ -42,7 +37,7 @@ | BootcNodeManagement| | | Enabled | Enabled | | | Enabled | Enabled | | CBORServingAndStorage| | | Enabled | Enabled | | | Enabled | Enabled | | CRDCompatibilityRequirementOperator| | | Enabled | Enabled | | | Enabled | Enabled | -| CRIOCredentialProviderConfig| | | Enabled | Enabled | | | Enabled | Enabled | +| CRIOCredentialProviderConfig| | Enabled | | Enabled | | Enabled | | Enabled | | ClientsPreferCBOR| | | Enabled | Enabled | | | Enabled | Enabled | | ClusterAPIInstallIBMCloud| | | Enabled | Enabled | | | Enabled | Enabled | | ClusterAPIMachineManagement| | | Enabled | Enabled | | | Enabled | Enabled | @@ -67,11 +62,10 @@ | GCPCustomAPIEndpoints| | | Enabled | Enabled | | | Enabled | Enabled | | GCPCustomAPIEndpointsInstall| | | Enabled | Enabled | | | Enabled | Enabled | | GCPDualStackInstall| | | Enabled | Enabled | | | Enabled | Enabled | +| GatewayAPIManagementMode| | | Enabled | Enabled | | | Enabled | Enabled | | HyperShiftOnlyDynamicResourceAllocation| Enabled | | Enabled | | Enabled | | Enabled | | | ImageModeStatusReporting| | | Enabled | Enabled | | | Enabled | Enabled | | IngressComponentRouteLabels| | | Enabled | Enabled | | | Enabled | Enabled | -| IngressControllerMultipleHAProxyVersions| | | Enabled | Enabled | | | Enabled | Enabled | -| IrreconcilableMachineConfig| | | Enabled | Enabled | | | Enabled | Enabled | | KMSEncryption| | | Enabled | Enabled | | | Enabled | Enabled | | MachineAPIMigration| | | Enabled | Enabled | | | Enabled | Enabled | | MachineAPIMigrationAWS| | | Enabled | Enabled | | | Enabled | Enabled | @@ -84,7 +78,9 @@ | 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 | +| OLMLifecycleAndCompatibility| | Enabled | | Enabled | | Enabled | | Enabled | | OVNObservability| | | Enabled | Enabled | | | Enabled | Enabled | | OnPremDNSRecords| | | Enabled | Enabled | | | Enabled | Enabled | | SELinuxMount| | | Enabled | Enabled | | | Enabled | Enabled | @@ -97,7 +93,9 @@ | VolumeGroupSnapshot| | | Enabled | Enabled | | | Enabled | Enabled | | OSStreams| | Enabled | Enabled | Enabled | | Enabled | Enabled | Enabled | | AWSClusterHostedDNSInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| AWSDualStackInstall| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | AWSServiceLBNetworkSecurityGroup| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| AdditionalStorageConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | AzureWorkloadIdentity| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | BootImageSkewEnforcement| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | BuildCSIVolumes| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | @@ -109,15 +107,16 @@ | GatewayAPIWithoutOLM| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ImageStreamImportMode| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | IngressControllerDynamicConfigurationManager| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| IngressControllerMultipleHAProxyVersions| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | InsightsConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | InsightsOnDemandDataGather| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | +| IrreconcilableMachineConfig| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | KMSv1| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ManagedBootImagesCPMS| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | MetricsCollectionProfiles| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | MutableCSINodeAllocatableCount| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | MutatingAdmissionPolicy| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | OpenShiftPodSecurityAdmission| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | -| RouteExternalCertificate| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | ServiceAccountTokenNodeBinding| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | SigstoreImageVerification| Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | Enabled | | SigstoreImageVerificationPKI| Enabled | Enabled | Enabled | Enabled | 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 e59194f9d4..591b6147b1 100644 --- a/vendor/github.com/openshift/api/features/features.go +++ b/vendor/github.com/openshift/api/features/features.go @@ -159,7 +159,7 @@ var ( contactPerson("QiWang"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1861"). - enable(inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). + enable(inClusterProfile(SelfManaged), inDefault(), inOKD(), inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). mustRegister() FeatureGateVSphereHostVMGroupZonal = newFeatureGate("VSphereHostVMGroupZonal"). @@ -178,14 +178,6 @@ var ( enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() - FeatureGateRouteExternalCertificate = newFeatureGate("RouteExternalCertificate"). - reportProblemsToJiraComponent("router"). - contactPerson("chiragkyal"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). - mustRegister() - FeatureGateNetworkConnect = newFeatureGate("NetworkConnect"). reportProblemsToJiraComponent("Networking/ovn-kubernetes"). contactPerson("tssurya"). @@ -325,7 +317,7 @@ var ( contactPerson("saschagrunert"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1934"). - enable(inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureGateUpgradeStatus = newFeatureGate("UpgradeStatus"). @@ -424,14 +416,6 @@ var ( enable(inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() - FeatureGateNewOLMPreflightPermissionChecks = newFeatureGate("NewOLMPreflightPermissionChecks"). - reportProblemsToJiraComponent("olm"). - contactPerson("tshort"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1768"). - enable(inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). - mustRegister() - FeatureGateNewOLMOwnSingleNamespace = newFeatureGate("NewOLMOwnSingleNamespace"). reportProblemsToJiraComponent("olm"). contactPerson("nschieder"). @@ -469,7 +453,7 @@ var ( contactPerson("joelanford"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1991"). - enable(inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inClusterProfile(SelfManaged), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather"). @@ -679,7 +663,7 @@ var ( contactPerson("miciah"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1965"). - enable(inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). mustRegister() FeatureGateMinimumKubeletVersion = newFeatureGate("MinimumKubeletVersion"). @@ -838,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"). @@ -862,14 +846,14 @@ var ( contactPerson("pabrodri"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1785"). - enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureGateAWSDualStackInstall = newFeatureGate("AWSDualStackInstall"). reportProblemsToJiraComponent("Installer"). contactPerson("sadasu"). productScope(ocpSpecific). enhancementPR("https://github.com/openshift/enhancements/pull/1806"). - enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + enable(inDefault(), inOKD(), inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). mustRegister() FeatureGateAzureDualStackInstall = newFeatureGate("AzureDualStackInstall"). @@ -1022,6 +1006,14 @@ var ( enable(inDefault(), inOKD(), inDevPreviewNoUpgrade(), inTechPreviewNoUpgrade()). mustRegister() + FeatureGateGatewayAPIManagementMode = newFeatureGate("GatewayAPIManagementMode"). + reportProblemsToJiraComponent("Routing"). + contactPerson("miciah"). + productScope(ocpSpecific). + enhancementPR("https://github.com/openshift/enhancements/pull/2023"). + enable(inTechPreviewNoUpgrade(), inDevPreviewNoUpgrade()). + mustRegister() + FeatureGateTLSAdherence = newFeatureGate("TLSAdherence"). reportProblemsToJiraComponent("HPCASE / TLS Adherence"). contactPerson("joelanford"). diff --git a/vendor/github.com/openshift/api/features/legacyfeaturegates.go b/vendor/github.com/openshift/api/features/legacyfeaturegates.go index a82089b9f7..53b8962a28 100644 --- a/vendor/github.com/openshift/api/features/legacyfeaturegates.go +++ b/vendor/github.com/openshift/api/features/legacyfeaturegates.go @@ -83,8 +83,6 @@ var legacyFeatureGates = sets.New( // never add to this list, if you think you have an exception ask @deads2k "PrivateHostedZoneAWS", // never add to this list, if you think you have an exception ask @deads2k - "RouteExternalCertificate", - // never add to this list, if you think you have an exception ask @deads2k "SetEIPForNLBIngressController", // never add to this list, if you think you have an exception ask @deads2k "SignatureStores", diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-Default.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-Default.crd.yaml deleted file mode 100644 index a983664180..0000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-Default.crd.yaml +++ /dev/null @@ -1,197 +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: containerruntimeconfigs.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: ContainerRuntimeConfig - listKind: ContainerRuntimeConfigList - plural: containerruntimeconfigs - shortNames: - - ctrcfg - singular: containerruntimeconfig - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - ContainerRuntimeConfig describes a customized Container Runtime configuration. - - 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 container runtime configuration. - properties: - containerRuntimeConfig: - description: containerRuntimeConfig defines the tuneables of the container - runtime. - properties: - defaultRuntime: - description: |- - defaultRuntime is the name of the OCI runtime to be used as the default for containers. - Allowed values are `runc` and `crun`. - When set to `runc`, OpenShift will use runc to execute the container - When set to `crun`, OpenShift will use crun to execute the container - When omitted, this means no opinion and the platform is left to choose a reasonable default, - which is subject to change over time. Currently, the default is `crun`. - enum: - - crun - - runc - type: string - logLevel: - description: |- - logLevel specifies the verbosity of the logs based on the level it is set to. - Options are fatal, panic, error, warn, info, and debug. - type: string - logSizeMax: - anyOf: - - type: integer - - type: string - description: |- - logSizeMax specifies the Maximum size allowed for the container log file. - Negative numbers indicate that no size limit is imposed. - If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - overlaySize: - anyOf: - - type: integer - - type: string - description: |- - overlaySize specifies the maximum size of a container image. - This flag can be used to set quota on the size of container images. (default: 10GB) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - pidsLimit: - description: pidsLimit specifies the maximum number of processes - allowed in a container - format: int64 - type: integer - type: object - machineConfigPoolSelector: - description: |- - machineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to. - A nil selector will result in no pools being selected. - 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 - required: - - containerRuntimeConfig - type: object - status: - description: status contains observed information about the container - runtime configuration. - properties: - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: ContainerRuntimeConfigCondition defines the state of - the ContainerRuntimeConfig - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status object. - format: date-time - nullable: true - type: string - message: - description: |- - message provides additional information about the current condition. - This is only to be consumed by humans. - type: string - reason: - description: reason is the reason for the condition's last transition. Reasons - are PascalCase - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the state of the operator's reconciliation - functionality. - type: string - type: object - type: array - x-kubernetes-list-type: atomic - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - type: object - required: - - spec - type: object - 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_containerruntimeconfigs-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 8d918545b2..0000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,328 +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: containerruntimeconfigs.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: ContainerRuntimeConfig - listKind: ContainerRuntimeConfigList - plural: containerruntimeconfigs - shortNames: - - ctrcfg - singular: containerruntimeconfig - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - ContainerRuntimeConfig describes a customized Container Runtime configuration. - - 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 container runtime configuration. - properties: - containerRuntimeConfig: - description: containerRuntimeConfig defines the tuneables of the container - runtime. - properties: - additionalArtifactStores: - description: |- - additionalArtifactStores configures additional read-only artifact storage locations for Open Container Initiative (OCI) artifacts. - - Artifacts are checked in order: additional stores first, then the default location (/var/lib/containers/storage/artifacts). - Stores are read-only. - Maximum of 10 stores allowed. - Each path must be unique. - - When omitted, only the default artifact location is used. - When specified, at least one store must be provided. - items: - description: AdditionalArtifactStore defines an additional read-only - storage location for Open Container Initiative (OCI) artifacts. - properties: - path: - description: |- - path specifies the absolute location of the additional artifact store. - The path must exist on the node before configuration is applied. - When an artifact is requested, artifacts found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 10 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalArtifactStores must not contain duplicate - paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - additionalImageStores: - description: |- - additionalImageStores configures additional read-only container image store locations for Open Container Initiative (OCI) images. - - Images are checked in order: additional stores first, then the default location. - Stores are read-only. - Maximum of 10 stores allowed. - Each path must be unique. - - When omitted, only the default image location is used. - When specified, at least one store must be provided. - items: - description: AdditionalImageStore defines an additional read-only - storage location for Open Container Initiative (OCI) images. - properties: - path: - description: |- - path specifies the absolute location of the additional image store. - The path must exist on the node before configuration is applied. - When a container image is requested, images found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 10 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalImageStores must not contain duplicate paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - additionalLayerStores: - description: |- - additionalLayerStores configures additional read-only container image layer store locations for Open Container Initiative (OCI) images. - - Layers are checked in order: additional stores first, then the default location. - Stores are read-only. - Maximum of 5 stores allowed. - Each path must be unique. - - When omitted, only the default layer location is used. - When specified, at least one store must be provided. - items: - description: AdditionalLayerStore defines a read-only storage - location for Open Container Initiative (OCI) container image - layers. - properties: - path: - description: |- - path specifies the absolute location of the additional layer store. - The path must exist on the node before configuration is applied. - When a container image is requested, layers found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 5 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalLayerStores must not contain duplicate paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - defaultRuntime: - description: |- - defaultRuntime is the name of the OCI runtime to be used as the default for containers. - Allowed values are `runc` and `crun`. - When set to `runc`, OpenShift will use runc to execute the container - When set to `crun`, OpenShift will use crun to execute the container - When omitted, this means no opinion and the platform is left to choose a reasonable default, - which is subject to change over time. Currently, the default is `crun`. - enum: - - crun - - runc - type: string - logLevel: - description: |- - logLevel specifies the verbosity of the logs based on the level it is set to. - Options are fatal, panic, error, warn, info, and debug. - type: string - logSizeMax: - anyOf: - - type: integer - - type: string - description: |- - logSizeMax specifies the Maximum size allowed for the container log file. - Negative numbers indicate that no size limit is imposed. - If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - overlaySize: - anyOf: - - type: integer - - type: string - description: |- - overlaySize specifies the maximum size of a container image. - This flag can be used to set quota on the size of container images. (default: 10GB) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - pidsLimit: - description: pidsLimit specifies the maximum number of processes - allowed in a container - format: int64 - type: integer - type: object - machineConfigPoolSelector: - description: |- - machineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to. - A nil selector will result in no pools being selected. - 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 - required: - - containerRuntimeConfig - type: object - status: - description: status contains observed information about the container - runtime configuration. - properties: - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: ContainerRuntimeConfigCondition defines the state of - the ContainerRuntimeConfig - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status object. - format: date-time - nullable: true - type: string - message: - description: |- - message provides additional information about the current condition. - This is only to be consumed by humans. - type: string - reason: - description: reason is the reason for the condition's last transition. Reasons - are PascalCase - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the state of the operator's reconciliation - functionality. - type: string - type: object - type: array - x-kubernetes-list-type: atomic - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - type: object - required: - - spec - type: object - 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_containerruntimeconfigs-OKD.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-OKD.crd.yaml deleted file mode 100644 index db82f1a141..0000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-OKD.crd.yaml +++ /dev/null @@ -1,197 +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: OKD - labels: - openshift.io/operator-managed: "" - name: containerruntimeconfigs.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: ContainerRuntimeConfig - listKind: ContainerRuntimeConfigList - plural: containerruntimeconfigs - shortNames: - - ctrcfg - singular: containerruntimeconfig - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - ContainerRuntimeConfig describes a customized Container Runtime configuration. - - 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 container runtime configuration. - properties: - containerRuntimeConfig: - description: containerRuntimeConfig defines the tuneables of the container - runtime. - properties: - defaultRuntime: - description: |- - defaultRuntime is the name of the OCI runtime to be used as the default for containers. - Allowed values are `runc` and `crun`. - When set to `runc`, OpenShift will use runc to execute the container - When set to `crun`, OpenShift will use crun to execute the container - When omitted, this means no opinion and the platform is left to choose a reasonable default, - which is subject to change over time. Currently, the default is `crun`. - enum: - - crun - - runc - type: string - logLevel: - description: |- - logLevel specifies the verbosity of the logs based on the level it is set to. - Options are fatal, panic, error, warn, info, and debug. - type: string - logSizeMax: - anyOf: - - type: integer - - type: string - description: |- - logSizeMax specifies the Maximum size allowed for the container log file. - Negative numbers indicate that no size limit is imposed. - If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - overlaySize: - anyOf: - - type: integer - - type: string - description: |- - overlaySize specifies the maximum size of a container image. - This flag can be used to set quota on the size of container images. (default: 10GB) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - pidsLimit: - description: pidsLimit specifies the maximum number of processes - allowed in a container - format: int64 - type: integer - type: object - machineConfigPoolSelector: - description: |- - machineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to. - A nil selector will result in no pools being selected. - 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 - required: - - containerRuntimeConfig - type: object - status: - description: status contains observed information about the container - runtime configuration. - properties: - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: ContainerRuntimeConfigCondition defines the state of - the ContainerRuntimeConfig - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status object. - format: date-time - nullable: true - type: string - message: - description: |- - message provides additional information about the current condition. - This is only to be consumed by humans. - type: string - reason: - description: reason is the reason for the condition's last transition. Reasons - are PascalCase - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the state of the operator's reconciliation - functionality. - type: string - type: object - type: array - x-kubernetes-list-type: atomic - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - type: object - required: - - spec - type: object - 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_containerruntimeconfigs-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 27a0cb3c17..0000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,328 +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: containerruntimeconfigs.machineconfiguration.openshift.io -spec: - group: machineconfiguration.openshift.io - names: - kind: ContainerRuntimeConfig - listKind: ContainerRuntimeConfigList - plural: containerruntimeconfigs - shortNames: - - ctrcfg - singular: containerruntimeconfig - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - ContainerRuntimeConfig describes a customized Container Runtime configuration. - - 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 container runtime configuration. - properties: - containerRuntimeConfig: - description: containerRuntimeConfig defines the tuneables of the container - runtime. - properties: - additionalArtifactStores: - description: |- - additionalArtifactStores configures additional read-only artifact storage locations for Open Container Initiative (OCI) artifacts. - - Artifacts are checked in order: additional stores first, then the default location (/var/lib/containers/storage/artifacts). - Stores are read-only. - Maximum of 10 stores allowed. - Each path must be unique. - - When omitted, only the default artifact location is used. - When specified, at least one store must be provided. - items: - description: AdditionalArtifactStore defines an additional read-only - storage location for Open Container Initiative (OCI) artifacts. - properties: - path: - description: |- - path specifies the absolute location of the additional artifact store. - The path must exist on the node before configuration is applied. - When an artifact is requested, artifacts found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 10 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalArtifactStores must not contain duplicate - paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - additionalImageStores: - description: |- - additionalImageStores configures additional read-only container image store locations for Open Container Initiative (OCI) images. - - Images are checked in order: additional stores first, then the default location. - Stores are read-only. - Maximum of 10 stores allowed. - Each path must be unique. - - When omitted, only the default image location is used. - When specified, at least one store must be provided. - items: - description: AdditionalImageStore defines an additional read-only - storage location for Open Container Initiative (OCI) images. - properties: - path: - description: |- - path specifies the absolute location of the additional image store. - The path must exist on the node before configuration is applied. - When a container image is requested, images found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 10 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalImageStores must not contain duplicate paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - additionalLayerStores: - description: |- - additionalLayerStores configures additional read-only container image layer store locations for Open Container Initiative (OCI) images. - - Layers are checked in order: additional stores first, then the default location. - Stores are read-only. - Maximum of 5 stores allowed. - Each path must be unique. - - When omitted, only the default layer location is used. - When specified, at least one store must be provided. - items: - description: AdditionalLayerStore defines a read-only storage - location for Open Container Initiative (OCI) container image - layers. - properties: - path: - description: |- - path specifies the absolute location of the additional layer store. - The path must exist on the node before configuration is applied. - When a container image is requested, layers found at this location will be used instead of - retrieving from the registry. - The path is required and must be between 1 and 256 characters long, begin with a forward slash, - and only contain the characters a-z, A-Z, 0-9, '/', '.', '_', and '-'. - Consecutive forward slashes are not permitted. - maxLength: 256 - minLength: 1 - type: string - x-kubernetes-validations: - - message: path must be absolute and contain only alphanumeric - characters, '/', '.', '_', and '-' - rule: self.matches('^/[a-zA-Z0-9/._-]+$') - - message: path must not contain consecutive forward slashes - rule: '!self.contains(''//'')' - required: - - path - type: object - maxItems: 5 - minItems: 1 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: additionalLayerStores must not contain duplicate paths - rule: self.all(x, self.exists_one(y, x.path == y.path)) - defaultRuntime: - description: |- - defaultRuntime is the name of the OCI runtime to be used as the default for containers. - Allowed values are `runc` and `crun`. - When set to `runc`, OpenShift will use runc to execute the container - When set to `crun`, OpenShift will use crun to execute the container - When omitted, this means no opinion and the platform is left to choose a reasonable default, - which is subject to change over time. Currently, the default is `crun`. - enum: - - crun - - runc - type: string - logLevel: - description: |- - logLevel specifies the verbosity of the logs based on the level it is set to. - Options are fatal, panic, error, warn, info, and debug. - type: string - logSizeMax: - anyOf: - - type: integer - - type: string - description: |- - logSizeMax specifies the Maximum size allowed for the container log file. - Negative numbers indicate that no size limit is imposed. - If it is positive, it must be >= 8192 to match/exceed conmon's read buffer. - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - overlaySize: - anyOf: - - type: integer - - type: string - description: |- - overlaySize specifies the maximum size of a container image. - This flag can be used to set quota on the size of container images. (default: 10GB) - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - pidsLimit: - description: pidsLimit specifies the maximum number of processes - allowed in a container - format: int64 - type: integer - type: object - machineConfigPoolSelector: - description: |- - machineConfigPoolSelector selects which pools the ContainerRuntimeConfig shoud apply to. - A nil selector will result in no pools being selected. - 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 - required: - - containerRuntimeConfig - type: object - status: - description: status contains observed information about the container - runtime configuration. - properties: - conditions: - description: conditions represents the latest available observations - of current state. - items: - description: ContainerRuntimeConfigCondition defines the state of - the ContainerRuntimeConfig - properties: - lastTransitionTime: - description: lastTransitionTime is the time of the last update - to the current status object. - format: date-time - nullable: true - type: string - message: - description: |- - message provides additional information about the current condition. - This is only to be consumed by humans. - type: string - reason: - description: reason is the reason for the condition's last transition. Reasons - are PascalCase - type: string - status: - description: status of the condition, one of True, False, Unknown. - type: string - type: - description: type specifies the state of the operator's reconciliation - functionality. - type: string - type: object - type: array - x-kubernetes-list-type: atomic - observedGeneration: - description: observedGeneration represents the generation observed - by the controller. - format: int64 - type: integer - type: object - required: - - spec - type: object - 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_containerruntimeconfigs-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs.crd.yaml similarity index 99% rename from vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-CustomNoUpgrade.crd.yaml rename to vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs.crd.yaml index 68726d9ce1..a1c686ee5e 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_containerruntimeconfigs.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: containerruntimeconfigs.machineconfiguration.openshift.io diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml index 7c0f73b041..d22d2598e8 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml @@ -916,6 +916,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -956,8 +957,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1578,6 +1582,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml index 82ede74273..14c72b8985 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-CustomNoUpgrade.crd.yaml @@ -1010,6 +1010,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -1050,8 +1051,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1412,6 +1416,11 @@ spec: x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding + vCenter entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' @@ -1686,6 +1695,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2395,6 +2413,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml index eaf72ab25e..f12bc55134 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-Hypershift-DevPreviewNoUpgrade.crd.yaml @@ -995,6 +995,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -1035,8 +1036,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1397,6 +1401,11 @@ spec: x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding + vCenter entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' @@ -1671,6 +1680,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2380,6 +2398,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml index baa96854da..172e7b089c 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-OKD.crd.yaml @@ -916,6 +916,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -956,8 +957,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1578,6 +1582,30 @@ spec: is ClusterHosted rule: 'has(self.dnsType) && self.dnsType != ''ClusterHosted'' ? !has(self.clusterHosted) : true' + ipFamily: + default: IPv4 + description: |- + ipFamily specifies the IP protocol family that should be used for AWS + network resources. This controls whether AWS resources are created with + IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary + protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. + enum: + - IPv4 + - DualStackIPv6Primary + - DualStackIPv4Primary + type: string + x-kubernetes-validations: + - message: ipFamily is immutable once set + rule: oldSelf == '' || self == oldSelf region: description: region holds the default AWS region for new AWS resources created by the cluster. diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml index 7de0c329ea..b165a5cbbb 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-CustomNoUpgrade.crd.yaml @@ -1010,6 +1010,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -1050,8 +1051,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1412,6 +1416,11 @@ spec: x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding + vCenter entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' @@ -1686,6 +1695,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2395,6 +2413,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml index a3ede95448..c2385d302e 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-SelfManagedHA-DevPreviewNoUpgrade.crd.yaml @@ -1010,6 +1010,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -1050,8 +1051,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1412,6 +1416,11 @@ spec: x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding + vCenter entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' @@ -1686,6 +1695,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary @@ -2395,6 +2413,28 @@ spec: be configured during installation rule: self.all(x, x in oldSelf) && oldSelf.all(x, x in self) + universeDomain: + description: |- + universeDomain is the GCP universe domain for the cluster, detected from + the installer credentials. Components with their own GCP credentials should + read the universe domain from those credentials, as they are the authoritative + source. This field is provided for components that do not have GCP credentials + and for general observability. + + When omitted, standard public GCP (googleapis.com) is assumed. + + universeDomain is an optional field that, when specified, must be non-empty and at most + 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + characters, '-' or '.', and starting and ending with an alphanumeric character. + maxLength: 253 + minLength: 1 + type: string + x-kubernetes-validations: + - message: 'universeDomain must be a valid DNS subdomain: + contain no more than 253 characters, contain only + lowercase alphanumeric characters, ''-'' or ''.'', + and start and end with an alphanumeric character' + rule: '!format.dns1123Subdomain().validate(self).hasValue()' type: object x-kubernetes-validations: - message: resourceLabels may only be configured during diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml index 0d318c38c1..52d8b4b22b 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml @@ -984,6 +984,7 @@ spec: description: |- failureDomains contains the definition of region, zone and the vCenter topology. If this is omitted failure domains (regions and zones) will not be used. + Each failure domain's server must match the server field of an entry in the vcenters list. items: description: VSpherePlatformFailureDomainSpec holds the region and zone failure domain and the vCenter @@ -1024,8 +1025,11 @@ spec: - type type: object server: - description: server is the fully-qualified domain - name or the IP address of the vCenter server. + description: |- + server is the fully-qualified domain name or the IP address of the vCenter server. + This must match the server field of an entry in the vcenters list. + The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + The value must be between 1 and 255 characters long. maxLength: 255 minLength: 1 type: string @@ -1386,6 +1390,11 @@ spec: x.server)) type: object x-kubernetes-validations: + - message: all failure domains must have a corresponding + vCenter entry + rule: '!has(self.failureDomains) || size(self.failureDomains) + == 0 || (has(self.vcenters) && self.failureDomains.all(fd, + self.vcenters.exists(vc, vc.server == fd.server)))' - message: apiServerInternalIPs list is required once set rule: '!has(oldSelf.apiServerInternalIPs) || has(self.apiServerInternalIPs)' @@ -1660,6 +1669,15 @@ spec: network resources. This controls whether AWS resources are created with IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary protocol family. + + Valid values are: + * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + + When omitted, this field defaults to "IPv4". + + This field is immutable and cannot be changed once set. enum: - IPv4 - DualStackIPv6Primary 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 88% 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..7a2cf3e0ec 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: "" @@ -284,6 +283,52 @@ spec: required: - desired type: object + irreconcilableChanges: + description: |- + irreconcilableChanges is an optional field that contains the observed differences between this nodes + configuration and the target rendered MachineConfig. + This field will be set when there are changes to the target rendered MachineConfig that can only be applied to + new nodes joining the cluster. + Entries must be unique, keyed on the fieldPath field. + Must not exceed 32 entries. + items: + description: |- + IrreconcilableChangeDiff holds an individual diff between the initial install-time MachineConfig + and the latest applied one caused by the presence of irreconcilable changes. + properties: + diff: + description: |- + diff is a required field containing the difference between the nodes current configuration and the latest + rendered MachineConfig for the field specified in fieldPath. + Must not be an empty string and must not exceed 4096 characters in length. + maxLength: 4096 + minLength: 1 + type: string + fieldPath: + description: |- + fieldPath is a required reference to the path in the latest rendered MachineConfig that differs from this nodes + configuration. + Must not be empty and must not exceed 70 characters in length. + Must begin with the prefix 'spec.' and only contain alphanumeric characters, square brackets ('[]'), or dots ('.'). + maxLength: 70 + minLength: 1 + type: string + x-kubernetes-validations: + - message: The fieldPath must start with `spec.` + rule: self.startsWith('spec.') + - message: The fieldPath must consist only of alphanumeric characters, + brackets [] and dots ('.'). + rule: self.matches('^[\\da-zA-Z\\.\\[\\]]+$') + required: + - diff + - fieldPath + type: object + maxItems: 32 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - fieldPath + x-kubernetes-list-type: map observedGeneration: description: |- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller. 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 88% 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..4d4947d255 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: "" @@ -284,6 +283,52 @@ spec: required: - desired type: object + irreconcilableChanges: + description: |- + irreconcilableChanges is an optional field that contains the observed differences between this nodes + configuration and the target rendered MachineConfig. + This field will be set when there are changes to the target rendered MachineConfig that can only be applied to + new nodes joining the cluster. + Entries must be unique, keyed on the fieldPath field. + Must not exceed 32 entries. + items: + description: |- + IrreconcilableChangeDiff holds an individual diff between the initial install-time MachineConfig + and the latest applied one caused by the presence of irreconcilable changes. + properties: + diff: + description: |- + diff is a required field containing the difference between the nodes current configuration and the latest + rendered MachineConfig for the field specified in fieldPath. + Must not be an empty string and must not exceed 4096 characters in length. + maxLength: 4096 + minLength: 1 + type: string + fieldPath: + description: |- + fieldPath is a required reference to the path in the latest rendered MachineConfig that differs from this nodes + configuration. + Must not be empty and must not exceed 70 characters in length. + Must begin with the prefix 'spec.' and only contain alphanumeric characters, square brackets ('[]'), or dots ('.'). + maxLength: 70 + minLength: 1 + type: string + x-kubernetes-validations: + - message: The fieldPath must start with `spec.` + rule: self.startsWith('spec.') + - message: The fieldPath must consist only of alphanumeric characters, + brackets [] and dots ('.'). + rule: self.matches('^[\\da-zA-Z\\.\\[\\]]+$') + required: + - diff + - fieldPath + type: object + maxItems: 32 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - fieldPath + x-kubernetes-list-type: map observedGeneration: description: |- observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller. 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..728285d157 --- /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,566 @@ +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 + irreconcilableChanges: + description: |- + irreconcilableChanges is an optional field that contains the observed differences between this nodes + configuration and the target rendered MachineConfig. + This field will be set when there are changes to the target rendered MachineConfig that can only be applied to + new nodes joining the cluster. + Entries must be unique, keyed on the fieldPath field. + Must not exceed 32 entries. + items: + description: |- + IrreconcilableChangeDiff holds an individual diff between the initial install-time MachineConfig + and the latest applied one caused by the presence of irreconcilable changes. + properties: + diff: + description: |- + diff is a required field containing the difference between the nodes current configuration and the latest + rendered MachineConfig for the field specified in fieldPath. + Must not be an empty string and must not exceed 4096 characters in length. + maxLength: 4096 + minLength: 1 + type: string + fieldPath: + description: |- + fieldPath is a required reference to the path in the latest rendered MachineConfig that differs from this nodes + configuration. + Must not be empty and must not exceed 70 characters in length. + Must begin with the prefix 'spec.' and only contain alphanumeric characters, square brackets ('[]'), or dots ('.'). + maxLength: 70 + minLength: 1 + type: string + x-kubernetes-validations: + - message: The fieldPath must start with `spec.` + rule: self.startsWith('spec.') + - message: The fieldPath must consist only of alphanumeric characters, + brackets [] and dots ('.'). + rule: self.matches('^[\\da-zA-Z\\.\\[\\]]+$') + required: + - diff + - fieldPath + type: object + maxItems: 32 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - fieldPath + x-kubernetes-list-type: map + 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..9b11bc79f0 --- /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,566 @@ +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 + irreconcilableChanges: + description: |- + irreconcilableChanges is an optional field that contains the observed differences between this nodes + configuration and the target rendered MachineConfig. + This field will be set when there are changes to the target rendered MachineConfig that can only be applied to + new nodes joining the cluster. + Entries must be unique, keyed on the fieldPath field. + Must not exceed 32 entries. + items: + description: |- + IrreconcilableChangeDiff holds an individual diff between the initial install-time MachineConfig + and the latest applied one caused by the presence of irreconcilable changes. + properties: + diff: + description: |- + diff is a required field containing the difference between the nodes current configuration and the latest + rendered MachineConfig for the field specified in fieldPath. + Must not be an empty string and must not exceed 4096 characters in length. + maxLength: 4096 + minLength: 1 + type: string + fieldPath: + description: |- + fieldPath is a required reference to the path in the latest rendered MachineConfig that differs from this nodes + configuration. + Must not be empty and must not exceed 70 characters in length. + Must begin with the prefix 'spec.' and only contain alphanumeric characters, square brackets ('[]'), or dots ('.'). + maxLength: 70 + minLength: 1 + type: string + x-kubernetes-validations: + - message: The fieldPath must start with `spec.` + rule: self.startsWith('spec.') + - message: The fieldPath must consist only of alphanumeric characters, + brackets [] and dots ('.'). + rule: self.matches('^[\\da-zA-Z\\.\\[\\]]+$') + required: + - diff + - fieldPath + type: object + maxItems: 32 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - fieldPath + x-kubernetes-list-type: map + 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.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml index a7866043ce..7e977bb53b 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.featuregated-crd-manifests.yaml @@ -36,6 +36,7 @@ controllerconfigs.machineconfiguration.openshift.io: - BGPBasedVIPManagement - DualReplica - DyanmicServiceEndpointIBMCloud + - GCPSovereignCloudInstall - MutableTopology - NutanixMultiSubnets - OnPremDNSRecords 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.go b/vendor/github.com/openshift/api/operator/v1/types.go index 3a2141abb9..599ceb03e1 100644 --- a/vendor/github.com/openshift/api/operator/v1/types.go +++ b/vendor/github.com/openshift/api/operator/v1/types.go @@ -266,6 +266,18 @@ type NodeStatus struct { // +required NodeName string `json:"nodeName"` + // nodeUID is the UID of the node. + // This field is used to detect that a node has been deleted and recreated + // with the same name. When the UID changes, it indicates the node is a + // new instance and the controller should treat this status entry as stale. + // When omitted, UID-based node replacement detection is not available + // for this entry. + // +kubebuilder:validation:MinLength=36 + // +kubebuilder:validation:MaxLength=36 + // +kubebuilder:validation:Format=uuid + // +optional + NodeUID string `json:"nodeUID,omitempty"` + // currentRevision is the generation of the most recently successful deployment. // Can not be set on creation of a nodeStatus. Updates must only increase the value. // +kubebuilder:validation:XValidation:rule="self >= oldSelf",message="must only increase" diff --git a/vendor/github.com/openshift/api/operator/v1/types_kmsencryption.go b/vendor/github.com/openshift/api/operator/v1/types_kmsencryption.go index e8c4b1c6f7..51a981b716 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_kmsencryption.go +++ b/vendor/github.com/openshift/api/operator/v1/types_kmsencryption.go @@ -15,11 +15,10 @@ const ( KMSPluginHealthStatusError KMSPluginHealthStatus = "Error" ) -// +openshift:compatibility-gen:level=1 type KMSPluginHealthReport struct { // nodeName is the name of the node this instance of the plugin runs on. - // The combination of nodeName and keyId makes this health report unique. + // The combination of nodeName and keyID makes this health report unique. // The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain // consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with // an alphanumeric character, and be at most 253 characters in length. @@ -29,13 +28,24 @@ type KMSPluginHealthReport struct { // +required NodeName string `json:"nodeName,omitempty"` + // keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. + // This is not a cryptographic key used to encrypt/decrypt any resources. + // The value must be between 1 and 512 characters. + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength=512 + // +required + KeyID string `json:"keyID,omitempty"` + + // --- TOMBSTONE --- // keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. // This is not a cryptographic key used to encrypt/decrypt any resources. // The value must be between 1 and 512 characters. + // It has been renamed to keyID. + // The field name is reserved to prevent reuse. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=512 // +required - KeyId string `json:"keyId,omitempty"` + // KeyId string `json:"keyId,omitempty"` // status contains a health indicator for the respective KMS plugin // The field can have three states: healthy, unhealthy, error. @@ -47,13 +57,24 @@ type KMSPluginHealthReport struct { // +required LastCheckedTime metav1.Time `json:"lastCheckedTime,omitempty"` + // remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + // This is not a cryptographic key, but a unique representation of the KEK. + // The value must be between 1 and 1024 characters. + // +kubebuilder:validation:MinLength=1 + // +kubebuilder:validation:MaxLength=1024 + // +required + RemoteKeyID string `json:"remoteKeyID,omitempty"` + + // --- TOMBSTONE --- // kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. // This is not a cryptographic key, but a unique representation of the KEK. // The value must be between 1 and 1024 characters. + // It has been renamed to remoteKeyID. + // The field name is reserved to prevent reuse. // +kubebuilder:validation:MinLength=1 // +kubebuilder:validation:MaxLength=1024 // +required - KEKId string `json:"kekId,omitempty"` + // KEKId string `json:"kekId,omitempty"` // detail contains additional error/health information for the respective KMS plugin. // When omitted, no additional error or health information is provided. @@ -69,13 +90,13 @@ type KMSPluginHealthReport struct { type KMSEncryptionStatus struct { // healthReports contains all KMS plugin health reports. // When omitted, no health reports are available. - // Each entry must have a unique combination of nodeName and keyId. + // Each entry must have a unique combination of nodeName and keyID. // +optional // +kubebuilder:validation:MinItems=1 // +kubebuilder:validation:MaxItems=200 // +listType=map // +listMapKey=nodeName - // +listMapKey=keyId + // +listMapKey=keyID HealthReports []KMSPluginHealthReport `json:"healthReports,omitempty"` // preflight contains the state of KMS preflight validation for this operator. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-CustomNoUpgrade.crd.yaml index 1feb64cbb5..f9fa7e7756 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-CustomNoUpgrade.crd.yaml @@ -292,6 +292,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-Default.crd.yaml index 23e6bdc63f..b200e8cdff 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-Default.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-Default.crd.yaml @@ -279,6 +279,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-DevPreviewNoUpgrade.crd.yaml index 2c32b9c964..be8d5cc544 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-DevPreviewNoUpgrade.crd.yaml @@ -292,6 +292,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-OKD.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-OKD.crd.yaml index b1ad9fc093..3727f7d8e3 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-OKD.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-OKD.crd.yaml @@ -279,6 +279,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-TechPreviewNoUpgrade.crd.yaml index b74dfb9893..01e0da8872 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_12_etcd_01_etcds-TechPreviewNoUpgrade.crd.yaml @@ -292,6 +292,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-CustomNoUpgrade.crd.yaml index 37b6831596..c317150626 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-CustomNoUpgrade.crd.yaml @@ -182,7 +182,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -193,17 +193,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -217,7 +209,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -230,6 +222,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -239,12 +239,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -252,7 +254,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- @@ -425,6 +427,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-Default.crd.yaml index 3eb9d7d49e..f9cc4d3cb7 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-Default.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-Default.crd.yaml @@ -276,6 +276,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-DevPreviewNoUpgrade.crd.yaml index fa289dce14..0f79f43385 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-DevPreviewNoUpgrade.crd.yaml @@ -182,7 +182,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -193,17 +193,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -217,7 +209,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -230,6 +222,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -239,12 +239,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -252,7 +254,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- @@ -425,6 +427,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-OKD.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-OKD.crd.yaml index fa02abd00f..c6d06e5e66 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-OKD.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-OKD.crd.yaml @@ -276,6 +276,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-TechPreviewNoUpgrade.crd.yaml index ea688ff422..d88c7c3a83 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_20_kube-apiserver_01_kubeapiservers-TechPreviewNoUpgrade.crd.yaml @@ -182,7 +182,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -193,17 +193,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -217,7 +209,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -230,6 +222,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -239,12 +239,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -252,7 +254,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- @@ -425,6 +427,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-controller-manager_01_kubecontrollermanagers.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-controller-manager_01_kubecontrollermanagers.crd.yaml index 72bb37b762..55601b0f4b 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-controller-manager_01_kubecontrollermanagers.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-controller-manager_01_kubecontrollermanagers.crd.yaml @@ -270,6 +270,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-scheduler_01_kubeschedulers.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-scheduler_01_kubeschedulers.crd.yaml index e59fedb33e..73eb731264 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-scheduler_01_kubeschedulers.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_25_kube-scheduler_01_kubeschedulers.crd.yaml @@ -261,6 +261,18 @@ spec: nodeName: description: nodeName is the name of the node type: string + nodeUID: + description: |- + nodeUID is the UID of the node. + This field is used to detect that a node has been deleted and recreated + with the same name. When the UID changes, it indicates the node is a + new instance and the controller should treat this status entry as stale. + When omitted, UID-based node replacement detection is not available + for this entry. + format: uuid + maxLength: 36 + minLength: 36 + type: string targetRevision: description: |- targetRevision is the generation of the deployment we're trying to apply. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-CustomNoUpgrade.crd.yaml index d34b121d8e..aed95f2681 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-CustomNoUpgrade.crd.yaml @@ -149,7 +149,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -160,17 +160,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -184,7 +176,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -197,6 +189,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -206,12 +206,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -219,7 +221,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-DevPreviewNoUpgrade.crd.yaml index 7f1e255e78..9190f48f13 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-DevPreviewNoUpgrade.crd.yaml @@ -149,7 +149,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -160,17 +160,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -184,7 +176,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -197,6 +189,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -206,12 +206,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -219,7 +221,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-TechPreviewNoUpgrade.crd.yaml index ee81770228..71c417170b 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_30_openshift-apiserver_01_openshiftapiservers-TechPreviewNoUpgrade.crd.yaml @@ -149,7 +149,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -160,17 +160,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -184,7 +176,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -197,6 +189,14 @@ spec: or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -206,12 +206,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -219,7 +221,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-CustomNoUpgrade.crd.yaml index 666a325396..1d9ea6c92b 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-CustomNoUpgrade.crd.yaml @@ -304,7 +304,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -315,17 +315,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -339,7 +331,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -352,6 +344,14 @@ spec: '-' or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -361,12 +361,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -374,7 +376,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-DevPreviewNoUpgrade.crd.yaml index 4852e6cbcf..424bdeacf8 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-DevPreviewNoUpgrade.crd.yaml @@ -304,7 +304,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -315,17 +315,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -339,7 +331,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -352,6 +344,14 @@ spec: '-' or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -361,12 +361,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -374,7 +376,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-TechPreviewNoUpgrade.crd.yaml index 219c856cec..44d6c08742 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-TechPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_50_authentication_01_authentications-TechPreviewNoUpgrade.crd.yaml @@ -304,7 +304,7 @@ spec: description: |- healthReports contains all KMS plugin health reports. When omitted, no health reports are available. - Each entry must have a unique combination of nodeName and keyId. + Each entry must have a unique combination of nodeName and keyID. items: properties: detail: @@ -315,17 +315,9 @@ spec: maxLength: 1024 minLength: 1 type: string - kekId: + keyID: description: |- - kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. - This is not a cryptographic key, but a unique representation of the KEK. - The value must be between 1 and 1024 characters. - maxLength: 1024 - minLength: 1 - type: string - keyId: - description: |- - keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters. maxLength: 512 @@ -339,7 +331,7 @@ spec: nodeName: description: |- nodeName is the name of the node this instance of the plugin runs on. - The combination of nodeName and keyId makes this health report unique. + The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length. @@ -352,6 +344,14 @@ spec: '-' or '.', and must start and end with an alphanumeric character rule: '!format.dns1123Subdomain().validate(self).hasValue()' + remoteKeyID: + description: |- + remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. + This is not a cryptographic key, but a unique representation of the KEK. + The value must be between 1 and 1024 characters. + maxLength: 1024 + minLength: 1 + type: string status: description: |- status contains a health indicator for the respective KMS plugin @@ -361,12 +361,14 @@ spec: - Healthy - Unhealthy - Error + maxLength: 512 + minLength: 1 type: string required: - - kekId - - keyId + - keyID - lastCheckedTime - nodeName + - remoteKeyID - status type: object maxItems: 200 @@ -374,7 +376,7 @@ spec: type: array x-kubernetes-list-map-keys: - nodeName - - keyId + - keyID x-kubernetes-list-type: map preflight: description: |- 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 4232835954..85ff60dbf8 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 @@ -924,6 +924,32 @@ spec: required: - type type: object + haproxyVersion: + description: |- + haproxyVersion specifies the HAProxy version to use for this + IngressController. + + OpenShift 5.0 introduces HAProxy 3.2 as its default version and supports + HAProxy 2.8 from OpenShift 4.22 for migration purposes. When an OpenShift + release introduces a new default HAProxy version, that HAProxy version + becomes available as a pinnable value in subsequent OpenShift releases, + providing a smooth migration path for administrators who want to defer + HAProxy upgrades. + + Valid values for OpenShift 5.0: + - Unset (default): Uses HAProxy 3.2 (the default for OpenShift 5.0) + - "3.2": Explicitly pins HAProxy 3.2 for preservation during cluster + upgrades to future OpenShift releases + - "2.8": Uses HAProxy 2.8 from OpenShift 4.22 (migration support, will + be dropped in the next OpenShift release) + + If a specific HAProxy version is set and would become unsupported in a + target cluster upgrade, a preflight check will block the cluster upgrade + until this field is updated to unset or a supported version. + enum: + - "2.8" + - "3.2" + type: string httpCompression: description: |- httpCompression defines a policy for HTTP traffic compression. @@ -2561,6 +2587,20 @@ spec: domain: description: domain is the actual domain in use. type: string + effectiveHAProxyVersion: + description: |- + effectiveHAProxyVersion reports the HAProxy version currently in use by + this IngressController. This reflects the resolved value of the + spec.haproxyVersion field. When omitted, the effective value has not yet + been resolved by the operator or the feature is not enabled for this cluster. + + Examples for OpenShift 5.0: + - "3.2": Using HAProxy 3.2 + - "2.8": Using HAProxy 2.8 + enum: + - "2.8" + - "3.2" + type: string endpointPublishingStrategy: description: endpointPublishingStrategy is the actual strategy in use. 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 90b250d4a6..8220b5b91e 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 @@ -924,6 +924,32 @@ spec: required: - type type: object + haproxyVersion: + description: |- + haproxyVersion specifies the HAProxy version to use for this + IngressController. + + OpenShift 5.0 introduces HAProxy 3.2 as its default version and supports + HAProxy 2.8 from OpenShift 4.22 for migration purposes. When an OpenShift + release introduces a new default HAProxy version, that HAProxy version + becomes available as a pinnable value in subsequent OpenShift releases, + providing a smooth migration path for administrators who want to defer + HAProxy upgrades. + + Valid values for OpenShift 5.0: + - Unset (default): Uses HAProxy 3.2 (the default for OpenShift 5.0) + - "3.2": Explicitly pins HAProxy 3.2 for preservation during cluster + upgrades to future OpenShift releases + - "2.8": Uses HAProxy 2.8 from OpenShift 4.22 (migration support, will + be dropped in the next OpenShift release) + + If a specific HAProxy version is set and would become unsupported in a + target cluster upgrade, a preflight check will block the cluster upgrade + until this field is updated to unset or a supported version. + enum: + - "2.8" + - "3.2" + type: string httpCompression: description: |- httpCompression defines a policy for HTTP traffic compression. @@ -2561,6 +2587,20 @@ spec: domain: description: domain is the actual domain in use. type: string + effectiveHAProxyVersion: + description: |- + effectiveHAProxyVersion reports the HAProxy version currently in use by + this IngressController. This reflects the resolved value of the + spec.haproxyVersion field. When omitted, the effective value has not yet + been resolved by the operator or the feature is not enabled for this cluster. + + Examples for OpenShift 5.0: + - "3.2": Using HAProxy 3.2 + - "2.8": Using HAProxy 2.8 + enum: + - "2.8" + - "3.2" + type: string endpointPublishingStrategy: description: endpointPublishingStrategy is the actual strategy in use. diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml deleted file mode 100644 index 58dcee7c30..0000000000 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml +++ /dev/null @@ -1,1517 +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 - name: machineconfigurations.operator.openshift.io -spec: - group: operator.openshift.io - names: - kind: MachineConfiguration - listKind: MachineConfigurationList - plural: machineconfigurations - singular: machineconfiguration - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfiguration provides information to configure an operator to manage Machine Configuration. - - 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 is the specification of the desired behavior of the - Machine Config Operator - properties: - bootImageSkewEnforcement: - description: |- - bootImageSkewEnforcement allows an admin to configure how boot image version skew is - enforced on the cluster. - When omitted, this will default to Automatic for clusters that support automatic boot image updates. - For clusters that do not support automatic boot image updates, cluster upgrades will be disabled until - a skew enforcement mode has been specified. - When version skew is being enforced, cluster upgrades will be disabled until the version skew is deemed - acceptable for the current release payload. - properties: - manual: - description: |- - manual describes the current boot image of the cluster. - This should be set to the oldest boot image used amongst all machine resources in the cluster. - This must include either the RHCOS version of the boot image or the OCP release version which shipped with that - RHCOS boot image. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Manual and None. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''Manual'') ? has(self.manual) - : !has(self.manual)' - failedRevisionLimit: - description: |- - failedRevisionLimit is the number of failed static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - forceRedeploymentReason: - description: |- - forceRedeploymentReason can be used to force the redeployment of the operand by providing a unique string. - This provides a mechanism to kick a previously failed deployment and provide a reason why you think it will work - this time instead of failing again on the same config. - type: string - logLevel: - default: Normal - description: |- - logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for their operands. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - managedBootImages: - description: |- - managedBootImages allows configuration for the management of boot images for machine - resources within the cluster. This configuration allows users to select resources that should - be updated to the latest boot images during cluster upgrades, ensuring that new machines - always boot with the current cluster version's boot image. When omitted, this means no opinion - and the platform is left to choose a reasonable default, which is subject to change over time. - The default for each machine manager mode is All for GCP and AWS platforms, and None for all - other platforms. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - managementState: - description: managementState indicates whether and how the operator - should manage the component - pattern: ^(Managed|Unmanaged|Force|Removed)$ - type: string - nodeDisruptionPolicy: - description: |- - nodeDisruptionPolicy allows an admin to set granular node disruption actions for - MachineConfig-based updates, such as drains, service reloads, etc. Specifying this will allow - for less downtime when doing small configuration updates to the cluster. This configuration - has no effect on cluster upgrades which will still incur node disruption where required. - properties: - files: - description: |- - files is a list of MachineConfig file definitions and actions to take to changes on those paths - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecFile is a file entry and - corresponding actions to take and is used in the NodeDisruptionPolicyConfig - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: |- - sshkey maps to the ignition.sshkeys field in the MachineConfig object, definition an action for this - will apply to all sshkey changes in the cluster - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and forbidden - otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart) - : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) == - 1 : true' - - message: None action can only be specified standalone, as - it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - required: - - actions - type: object - units: - description: |- - units is a list MachineConfig unit definitions and actions to take on changes to those services - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecUnit is a systemd unit - name and corresponding actions to take and is used in the - NodeDisruptionPolicyConfig object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", ".mount", - ".automount", ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected format - is ${NAME}${SERVICETYPE}, where {NAME} must be atleast - 1 character long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - observedConfig: - description: |- - observedConfig holds a sparse config that controller has observed from the cluster state. It exists in spec because - it is an input to the level for the operator - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - operatorLogLevel: - default: Normal - description: |- - operatorLogLevel is an intent based logging for the operator itself. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for themselves. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - succeededRevisionLimit: - description: |- - succeededRevisionLimit is the number of successful static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - unsupportedConfigOverrides: - description: |- - unsupportedConfigOverrides overrides the final configuration that was computed by the operator. - Red Hat does not support the use of this field. - Misuse of this field could lead to unexpected behavior or conflict with other configuration options. - Seek guidance from the Red Hat support before using this field. - Use of this property blocks cluster upgrades, it must be removed before upgrading your cluster. - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - status: - description: status is the most recently observed status of the Machine - Config Operator - properties: - bootImageSkewEnforcementStatus: - description: |- - bootImageSkewEnforcementStatus reflects what the latest cluster-validated boot image skew enforcement - configuration is and will be used by Machine Config Controller while performing boot image skew enforcement. - When omitted, the MCO has no knowledge of how to enforce boot image skew. When the MCO does not know how - boot image skew should be enforced, cluster upgrades will be blocked until it can either automatically - determine skew enforcement or there is an explicit skew enforcement configuration provided in the - spec.bootImageSkewEnforcement field. - properties: - automatic: - description: |- - automatic describes the current boot image of the cluster. - This will be populated by the MCO when performing boot image updates. This value will be compared against - the cluster's skew limit to determine skew compliance. - Required when mode is set to "Automatic" and forbidden otherwise. - minProperties: 1 - properties: - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - type: object - x-kubernetes-validations: - - message: at least one of ocpVersion or rhcosVersion is required - rule: has(self.ocpVersion) || has(self.rhcosVersion) - manual: - description: |- - manual describes the current boot image of the cluster. - This will be populated by the MCO using the values provided in the spec.bootImageSkewEnforcement.manual field. - This value will be compared against the cluster's skew limit to determine skew compliance. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Automatic, Manual and None. - Automatic means that the MCO will perform boot image updates and store the - OCP & RHCOS version associated with the last boot image update in the automatic field. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Automatic and Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Automatic - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: automatic is required when mode is Automatic, and forbidden - otherwise - rule: 'has(self.mode) && (self.mode == ''Automatic'') ? has(self.automatic) - : !has(self.automatic)' - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode == ''Manual'') ? has(self.manual) - : !has(self.manual)' - conditions: - description: conditions is a list of conditions and their status - 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 - managedBootImagesStatus: - description: |- - managedBootImagesStatus reflects what the latest cluster-validated boot image configuration is - and will be used by Machine Config Controller while performing boot image updates. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - nodeDisruptionPolicyStatus: - description: |- - nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, - and will be used by the Machine Config Daemon during future node updates. - properties: - clusterPolicies: - description: clusterPolicies is a merge of cluster default and - user provided node disruption policies. - properties: - files: - description: files is a list of MachineConfig file definitions - and actions to take to changes on those paths - items: - description: NodeDisruptionPolicyStatusFile is a file entry - and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: sshkey is the overall sshkey MachineConfig definition - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? - has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - required: - - actions - type: object - units: - description: units is a list MachineConfig unit definitions - and actions to take on changes to those services - items: - description: NodeDisruptionPolicyStatusUnit is a systemd - unit name and corresponding actions to take and is used - in the NodeDisruptionPolicyClusterStatus object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", - ".mount", ".automount", ".swap", ".target", ".path", - ".timer",".snapshot", ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} must - be atleast 1 character long and can only consist - of alphabets, digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - type: object - observedGeneration: - description: observedGeneration is the last generation change you've - dealt with - format: int64 - type: integer - type: object - required: - - spec - type: object - x-kubernetes-validations: - - message: when skew enforcement is in Automatic mode, a boot image configuration - is required - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? self.?spec.managedBootImages.hasValue() || self.?status.managedBootImagesStatus.hasValue() - : true' - - message: when skew enforcement is in Automatic mode, managedBootImages.machineManagers - must not be an empty list - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || size(self.spec.managedBootImages.machineManagers) - > 0 : true' - - message: when skew enforcement is in Automatic mode, any MachineAPI MachineSet - MachineManager must use selection mode 'All' - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || !self.spec.managedBootImages.machineManagers.exists(m, - m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io'') - || self.spec.managedBootImages.machineManagers.exists(m, m.resource == - ''machinesets'' && m.apiGroup == ''machine.openshift.io'' && m.selection.mode - == ''All'') : true' - - message: when skew enforcement is in Automatic mode, managedBootImagesStatus - must contain a MachineManager opting in all MachineAPI MachineSets - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?status.managedBootImagesStatus.machineManagers.hasValue()) || - self.status.managedBootImagesStatus.machineManagers.exists(m, m.selection.mode - == ''All'' && m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io''): - true' - served: true - storage: true - subresources: - status: {} diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 201cee1f87..0000000000 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,1550 +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 - name: machineconfigurations.operator.openshift.io -spec: - group: operator.openshift.io - names: - kind: MachineConfiguration - listKind: MachineConfigurationList - plural: machineconfigurations - singular: machineconfiguration - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfiguration provides information to configure an operator to manage Machine Configuration. - - 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 is the specification of the desired behavior of the - Machine Config Operator - properties: - bootImageSkewEnforcement: - description: |- - bootImageSkewEnforcement allows an admin to configure how boot image version skew is - enforced on the cluster. - When omitted, this will default to Automatic for clusters that support automatic boot image updates. - For clusters that do not support automatic boot image updates, cluster upgrades will be disabled until - a skew enforcement mode has been specified. - When version skew is being enforced, cluster upgrades will be disabled until the version skew is deemed - acceptable for the current release payload. - properties: - manual: - description: |- - manual describes the current boot image of the cluster. - This should be set to the oldest boot image used amongst all machine resources in the cluster. - This must include either the RHCOS version of the boot image or the OCP release version which shipped with that - RHCOS boot image. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Manual and None. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''Manual'') ? has(self.manual) - : !has(self.manual)' - failedRevisionLimit: - description: |- - failedRevisionLimit is the number of failed static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - forceRedeploymentReason: - description: |- - forceRedeploymentReason can be used to force the redeployment of the operand by providing a unique string. - This provides a mechanism to kick a previously failed deployment and provide a reason why you think it will work - this time instead of failing again on the same config. - type: string - irreconcilableValidationOverrides: - description: |- - irreconcilableValidationOverrides is an optional field that can used to make changes to a MachineConfig that - cannot be applied to existing nodes. - When specified, the fields configured with validation overrides will no longer reject changes to those - respective fields due to them not being able to be applied to existing nodes. - Only newly provisioned nodes will have these configurations applied. - Existing nodes will report observed configuration differences in their MachineConfigNode status. - minProperties: 1 - properties: - storage: - description: |- - storage can be used to allow making irreconcilable changes to the selected sections under the - `spec.config.storage` field of MachineConfig CRs - It must have at least one item, may not exceed 3 items and must not contain duplicates. - Allowed element values are "Disks", "FileSystems", "Raid" and omitted. - When contains "Disks" changes to the `spec.config.storage.disks` section of MachineConfig CRs are allowed. - When contains "FileSystems" changes to the `spec.config.storage.filesystems` section of MachineConfig CRs are allowed. - When contains "Raid" changes to the `spec.config.storage.raid` section of MachineConfig CRs are allowed. - When omitted changes to the `spec.config.storage` section are forbidden. - items: - description: IrreconcilableValidationOverridesStorage defines - available storage irreconcilable overrides. - enum: - - Disks - - FileSystems - - Raid - type: string - maxItems: 3 - minItems: 1 - type: array - x-kubernetes-list-type: set - type: object - logLevel: - default: Normal - description: |- - logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for their operands. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - managedBootImages: - description: |- - managedBootImages allows configuration for the management of boot images for machine - resources within the cluster. This configuration allows users to select resources that should - be updated to the latest boot images during cluster upgrades, ensuring that new machines - always boot with the current cluster version's boot image. When omitted, this means no opinion - and the platform is left to choose a reasonable default, which is subject to change over time. - The default for each machine manager mode is All for GCP and AWS platforms, and None for all - other platforms. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - managementState: - description: managementState indicates whether and how the operator - should manage the component - pattern: ^(Managed|Unmanaged|Force|Removed)$ - type: string - nodeDisruptionPolicy: - description: |- - nodeDisruptionPolicy allows an admin to set granular node disruption actions for - MachineConfig-based updates, such as drains, service reloads, etc. Specifying this will allow - for less downtime when doing small configuration updates to the cluster. This configuration - has no effect on cluster upgrades which will still incur node disruption where required. - properties: - files: - description: |- - files is a list of MachineConfig file definitions and actions to take to changes on those paths - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecFile is a file entry and - corresponding actions to take and is used in the NodeDisruptionPolicyConfig - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: |- - sshkey maps to the ignition.sshkeys field in the MachineConfig object, definition an action for this - will apply to all sshkey changes in the cluster - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and forbidden - otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart) - : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) == - 1 : true' - - message: None action can only be specified standalone, as - it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - required: - - actions - type: object - units: - description: |- - units is a list MachineConfig unit definitions and actions to take on changes to those services - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecUnit is a systemd unit - name and corresponding actions to take and is used in the - NodeDisruptionPolicyConfig object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", ".mount", - ".automount", ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected format - is ${NAME}${SERVICETYPE}, where {NAME} must be atleast - 1 character long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - observedConfig: - description: |- - observedConfig holds a sparse config that controller has observed from the cluster state. It exists in spec because - it is an input to the level for the operator - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - operatorLogLevel: - default: Normal - description: |- - operatorLogLevel is an intent based logging for the operator itself. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for themselves. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - succeededRevisionLimit: - description: |- - succeededRevisionLimit is the number of successful static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - unsupportedConfigOverrides: - description: |- - unsupportedConfigOverrides overrides the final configuration that was computed by the operator. - Red Hat does not support the use of this field. - Misuse of this field could lead to unexpected behavior or conflict with other configuration options. - Seek guidance from the Red Hat support before using this field. - Use of this property blocks cluster upgrades, it must be removed before upgrading your cluster. - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - status: - description: status is the most recently observed status of the Machine - Config Operator - properties: - bootImageSkewEnforcementStatus: - description: |- - bootImageSkewEnforcementStatus reflects what the latest cluster-validated boot image skew enforcement - configuration is and will be used by Machine Config Controller while performing boot image skew enforcement. - When omitted, the MCO has no knowledge of how to enforce boot image skew. When the MCO does not know how - boot image skew should be enforced, cluster upgrades will be blocked until it can either automatically - determine skew enforcement or there is an explicit skew enforcement configuration provided in the - spec.bootImageSkewEnforcement field. - properties: - automatic: - description: |- - automatic describes the current boot image of the cluster. - This will be populated by the MCO when performing boot image updates. This value will be compared against - the cluster's skew limit to determine skew compliance. - Required when mode is set to "Automatic" and forbidden otherwise. - minProperties: 1 - properties: - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - type: object - x-kubernetes-validations: - - message: at least one of ocpVersion or rhcosVersion is required - rule: has(self.ocpVersion) || has(self.rhcosVersion) - manual: - description: |- - manual describes the current boot image of the cluster. - This will be populated by the MCO using the values provided in the spec.bootImageSkewEnforcement.manual field. - This value will be compared against the cluster's skew limit to determine skew compliance. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Automatic, Manual and None. - Automatic means that the MCO will perform boot image updates and store the - OCP & RHCOS version associated with the last boot image update in the automatic field. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Automatic and Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Automatic - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: automatic is required when mode is Automatic, and forbidden - otherwise - rule: 'has(self.mode) && (self.mode == ''Automatic'') ? has(self.automatic) - : !has(self.automatic)' - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode == ''Manual'') ? has(self.manual) - : !has(self.manual)' - conditions: - description: conditions is a list of conditions and their status - 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 - managedBootImagesStatus: - description: |- - managedBootImagesStatus reflects what the latest cluster-validated boot image configuration is - and will be used by Machine Config Controller while performing boot image updates. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - nodeDisruptionPolicyStatus: - description: |- - nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, - and will be used by the Machine Config Daemon during future node updates. - properties: - clusterPolicies: - description: clusterPolicies is a merge of cluster default and - user provided node disruption policies. - properties: - files: - description: files is a list of MachineConfig file definitions - and actions to take to changes on those paths - items: - description: NodeDisruptionPolicyStatusFile is a file entry - and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: sshkey is the overall sshkey MachineConfig definition - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? - has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - required: - - actions - type: object - units: - description: units is a list MachineConfig unit definitions - and actions to take on changes to those services - items: - description: NodeDisruptionPolicyStatusUnit is a systemd - unit name and corresponding actions to take and is used - in the NodeDisruptionPolicyClusterStatus object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", - ".mount", ".automount", ".swap", ".target", ".path", - ".timer",".snapshot", ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} must - be atleast 1 character long and can only consist - of alphabets, digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - type: object - observedGeneration: - description: observedGeneration is the last generation change you've - dealt with - format: int64 - type: integer - type: object - required: - - spec - type: object - x-kubernetes-validations: - - message: when skew enforcement is in Automatic mode, a boot image configuration - is required - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? self.?spec.managedBootImages.hasValue() || self.?status.managedBootImagesStatus.hasValue() - : true' - - message: when skew enforcement is in Automatic mode, managedBootImages.machineManagers - must not be an empty list - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || size(self.spec.managedBootImages.machineManagers) - > 0 : true' - - message: when skew enforcement is in Automatic mode, any MachineAPI MachineSet - MachineManager must use selection mode 'All' - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || !self.spec.managedBootImages.machineManagers.exists(m, - m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io'') - || self.spec.managedBootImages.machineManagers.exists(m, m.resource == - ''machinesets'' && m.apiGroup == ''machine.openshift.io'' && m.selection.mode - == ''All'') : true' - - message: when skew enforcement is in Automatic mode, managedBootImagesStatus - must contain a MachineManager opting in all MachineAPI MachineSets - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?status.managedBootImagesStatus.machineManagers.hasValue()) || - self.status.managedBootImagesStatus.machineManagers.exists(m, m.selection.mode - == ''All'' && m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io''): - true' - served: true - storage: true - subresources: - status: {} diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-OKD.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-OKD.crd.yaml deleted file mode 100644 index eaffd23a32..0000000000 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-OKD.crd.yaml +++ /dev/null @@ -1,1517 +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: OKD - name: machineconfigurations.operator.openshift.io -spec: - group: operator.openshift.io - names: - kind: MachineConfiguration - listKind: MachineConfigurationList - plural: machineconfigurations - singular: machineconfiguration - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfiguration provides information to configure an operator to manage Machine Configuration. - - 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 is the specification of the desired behavior of the - Machine Config Operator - properties: - bootImageSkewEnforcement: - description: |- - bootImageSkewEnforcement allows an admin to configure how boot image version skew is - enforced on the cluster. - When omitted, this will default to Automatic for clusters that support automatic boot image updates. - For clusters that do not support automatic boot image updates, cluster upgrades will be disabled until - a skew enforcement mode has been specified. - When version skew is being enforced, cluster upgrades will be disabled until the version skew is deemed - acceptable for the current release payload. - properties: - manual: - description: |- - manual describes the current boot image of the cluster. - This should be set to the oldest boot image used amongst all machine resources in the cluster. - This must include either the RHCOS version of the boot image or the OCP release version which shipped with that - RHCOS boot image. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Manual and None. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''Manual'') ? has(self.manual) - : !has(self.manual)' - failedRevisionLimit: - description: |- - failedRevisionLimit is the number of failed static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - forceRedeploymentReason: - description: |- - forceRedeploymentReason can be used to force the redeployment of the operand by providing a unique string. - This provides a mechanism to kick a previously failed deployment and provide a reason why you think it will work - this time instead of failing again on the same config. - type: string - logLevel: - default: Normal - description: |- - logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for their operands. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - managedBootImages: - description: |- - managedBootImages allows configuration for the management of boot images for machine - resources within the cluster. This configuration allows users to select resources that should - be updated to the latest boot images during cluster upgrades, ensuring that new machines - always boot with the current cluster version's boot image. When omitted, this means no opinion - and the platform is left to choose a reasonable default, which is subject to change over time. - The default for each machine manager mode is All for GCP and AWS platforms, and None for all - other platforms. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - managementState: - description: managementState indicates whether and how the operator - should manage the component - pattern: ^(Managed|Unmanaged|Force|Removed)$ - type: string - nodeDisruptionPolicy: - description: |- - nodeDisruptionPolicy allows an admin to set granular node disruption actions for - MachineConfig-based updates, such as drains, service reloads, etc. Specifying this will allow - for less downtime when doing small configuration updates to the cluster. This configuration - has no effect on cluster upgrades which will still incur node disruption where required. - properties: - files: - description: |- - files is a list of MachineConfig file definitions and actions to take to changes on those paths - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecFile is a file entry and - corresponding actions to take and is used in the NodeDisruptionPolicyConfig - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: |- - sshkey maps to the ignition.sshkeys field in the MachineConfig object, definition an action for this - will apply to all sshkey changes in the cluster - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and forbidden - otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart) - : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) == - 1 : true' - - message: None action can only be specified standalone, as - it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - required: - - actions - type: object - units: - description: |- - units is a list MachineConfig unit definitions and actions to take on changes to those services - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecUnit is a systemd unit - name and corresponding actions to take and is used in the - NodeDisruptionPolicyConfig object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", ".mount", - ".automount", ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected format - is ${NAME}${SERVICETYPE}, where {NAME} must be atleast - 1 character long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - observedConfig: - description: |- - observedConfig holds a sparse config that controller has observed from the cluster state. It exists in spec because - it is an input to the level for the operator - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - operatorLogLevel: - default: Normal - description: |- - operatorLogLevel is an intent based logging for the operator itself. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for themselves. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - succeededRevisionLimit: - description: |- - succeededRevisionLimit is the number of successful static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - unsupportedConfigOverrides: - description: |- - unsupportedConfigOverrides overrides the final configuration that was computed by the operator. - Red Hat does not support the use of this field. - Misuse of this field could lead to unexpected behavior or conflict with other configuration options. - Seek guidance from the Red Hat support before using this field. - Use of this property blocks cluster upgrades, it must be removed before upgrading your cluster. - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - status: - description: status is the most recently observed status of the Machine - Config Operator - properties: - bootImageSkewEnforcementStatus: - description: |- - bootImageSkewEnforcementStatus reflects what the latest cluster-validated boot image skew enforcement - configuration is and will be used by Machine Config Controller while performing boot image skew enforcement. - When omitted, the MCO has no knowledge of how to enforce boot image skew. When the MCO does not know how - boot image skew should be enforced, cluster upgrades will be blocked until it can either automatically - determine skew enforcement or there is an explicit skew enforcement configuration provided in the - spec.bootImageSkewEnforcement field. - properties: - automatic: - description: |- - automatic describes the current boot image of the cluster. - This will be populated by the MCO when performing boot image updates. This value will be compared against - the cluster's skew limit to determine skew compliance. - Required when mode is set to "Automatic" and forbidden otherwise. - minProperties: 1 - properties: - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - type: object - x-kubernetes-validations: - - message: at least one of ocpVersion or rhcosVersion is required - rule: has(self.ocpVersion) || has(self.rhcosVersion) - manual: - description: |- - manual describes the current boot image of the cluster. - This will be populated by the MCO using the values provided in the spec.bootImageSkewEnforcement.manual field. - This value will be compared against the cluster's skew limit to determine skew compliance. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Automatic, Manual and None. - Automatic means that the MCO will perform boot image updates and store the - OCP & RHCOS version associated with the last boot image update in the automatic field. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Automatic and Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Automatic - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: automatic is required when mode is Automatic, and forbidden - otherwise - rule: 'has(self.mode) && (self.mode == ''Automatic'') ? has(self.automatic) - : !has(self.automatic)' - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode == ''Manual'') ? has(self.manual) - : !has(self.manual)' - conditions: - description: conditions is a list of conditions and their status - 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 - managedBootImagesStatus: - description: |- - managedBootImagesStatus reflects what the latest cluster-validated boot image configuration is - and will be used by Machine Config Controller while performing boot image updates. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - nodeDisruptionPolicyStatus: - description: |- - nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, - and will be used by the Machine Config Daemon during future node updates. - properties: - clusterPolicies: - description: clusterPolicies is a merge of cluster default and - user provided node disruption policies. - properties: - files: - description: files is a list of MachineConfig file definitions - and actions to take to changes on those paths - items: - description: NodeDisruptionPolicyStatusFile is a file entry - and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: sshkey is the overall sshkey MachineConfig definition - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? - has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - required: - - actions - type: object - units: - description: units is a list MachineConfig unit definitions - and actions to take on changes to those services - items: - description: NodeDisruptionPolicyStatusUnit is a systemd - unit name and corresponding actions to take and is used - in the NodeDisruptionPolicyClusterStatus object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", - ".mount", ".automount", ".swap", ".target", ".path", - ".timer",".snapshot", ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} must - be atleast 1 character long and can only consist - of alphabets, digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - type: object - observedGeneration: - description: observedGeneration is the last generation change you've - dealt with - format: int64 - type: integer - type: object - required: - - spec - type: object - x-kubernetes-validations: - - message: when skew enforcement is in Automatic mode, a boot image configuration - is required - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? self.?spec.managedBootImages.hasValue() || self.?status.managedBootImagesStatus.hasValue() - : true' - - message: when skew enforcement is in Automatic mode, managedBootImages.machineManagers - must not be an empty list - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || size(self.spec.managedBootImages.machineManagers) - > 0 : true' - - message: when skew enforcement is in Automatic mode, any MachineAPI MachineSet - MachineManager must use selection mode 'All' - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || !self.spec.managedBootImages.machineManagers.exists(m, - m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io'') - || self.spec.managedBootImages.machineManagers.exists(m, m.resource == - ''machinesets'' && m.apiGroup == ''machine.openshift.io'' && m.selection.mode - == ''All'') : true' - - message: when skew enforcement is in Automatic mode, managedBootImagesStatus - must contain a MachineManager opting in all MachineAPI MachineSets - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?status.managedBootImagesStatus.machineManagers.hasValue()) || - self.status.managedBootImagesStatus.machineManagers.exists(m, m.selection.mode - == ''All'' && m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io''): - true' - served: true - storage: true - subresources: - status: {} diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml deleted file mode 100644 index 0e521a7577..0000000000 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml +++ /dev/null @@ -1,1550 +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 - name: machineconfigurations.operator.openshift.io -spec: - group: operator.openshift.io - names: - kind: MachineConfiguration - listKind: MachineConfigurationList - plural: machineconfigurations - singular: machineconfiguration - scope: Cluster - versions: - - name: v1 - schema: - openAPIV3Schema: - description: |- - MachineConfiguration provides information to configure an operator to manage Machine Configuration. - - 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 is the specification of the desired behavior of the - Machine Config Operator - properties: - bootImageSkewEnforcement: - description: |- - bootImageSkewEnforcement allows an admin to configure how boot image version skew is - enforced on the cluster. - When omitted, this will default to Automatic for clusters that support automatic boot image updates. - For clusters that do not support automatic boot image updates, cluster upgrades will be disabled until - a skew enforcement mode has been specified. - When version skew is being enforced, cluster upgrades will be disabled until the version skew is deemed - acceptable for the current release payload. - properties: - manual: - description: |- - manual describes the current boot image of the cluster. - This should be set to the oldest boot image used amongst all machine resources in the cluster. - This must include either the RHCOS version of the boot image or the OCP release version which shipped with that - RHCOS boot image. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Manual and None. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''Manual'') ? has(self.manual) - : !has(self.manual)' - failedRevisionLimit: - description: |- - failedRevisionLimit is the number of failed static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - forceRedeploymentReason: - description: |- - forceRedeploymentReason can be used to force the redeployment of the operand by providing a unique string. - This provides a mechanism to kick a previously failed deployment and provide a reason why you think it will work - this time instead of failing again on the same config. - type: string - irreconcilableValidationOverrides: - description: |- - irreconcilableValidationOverrides is an optional field that can used to make changes to a MachineConfig that - cannot be applied to existing nodes. - When specified, the fields configured with validation overrides will no longer reject changes to those - respective fields due to them not being able to be applied to existing nodes. - Only newly provisioned nodes will have these configurations applied. - Existing nodes will report observed configuration differences in their MachineConfigNode status. - minProperties: 1 - properties: - storage: - description: |- - storage can be used to allow making irreconcilable changes to the selected sections under the - `spec.config.storage` field of MachineConfig CRs - It must have at least one item, may not exceed 3 items and must not contain duplicates. - Allowed element values are "Disks", "FileSystems", "Raid" and omitted. - When contains "Disks" changes to the `spec.config.storage.disks` section of MachineConfig CRs are allowed. - When contains "FileSystems" changes to the `spec.config.storage.filesystems` section of MachineConfig CRs are allowed. - When contains "Raid" changes to the `spec.config.storage.raid` section of MachineConfig CRs are allowed. - When omitted changes to the `spec.config.storage` section are forbidden. - items: - description: IrreconcilableValidationOverridesStorage defines - available storage irreconcilable overrides. - enum: - - Disks - - FileSystems - - Raid - type: string - maxItems: 3 - minItems: 1 - type: array - x-kubernetes-list-type: set - type: object - logLevel: - default: Normal - description: |- - logLevel is an intent based logging for an overall component. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for their operands. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - managedBootImages: - description: |- - managedBootImages allows configuration for the management of boot images for machine - resources within the cluster. This configuration allows users to select resources that should - be updated to the latest boot images during cluster upgrades, ensuring that new machines - always boot with the current cluster version's boot image. When omitted, this means no opinion - and the platform is left to choose a reasonable default, which is subject to change over time. - The default for each machine manager mode is All for GCP and AWS platforms, and None for all - other platforms. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - managementState: - description: managementState indicates whether and how the operator - should manage the component - pattern: ^(Managed|Unmanaged|Force|Removed)$ - type: string - nodeDisruptionPolicy: - description: |- - nodeDisruptionPolicy allows an admin to set granular node disruption actions for - MachineConfig-based updates, such as drains, service reloads, etc. Specifying this will allow - for less downtime when doing small configuration updates to the cluster. This configuration - has no effect on cluster upgrades which will still incur node disruption where required. - properties: - files: - description: |- - files is a list of MachineConfig file definitions and actions to take to changes on those paths - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecFile is a file entry and - corresponding actions to take and is used in the NodeDisruptionPolicyConfig - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: |- - sshkey maps to the ignition.sshkeys field in the MachineConfig object, definition an action for this - will apply to all sshkey changes in the cluster - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, where - ${SERVICETYPE} must be one of ".service", ".socket", - ".device", ".mount", ".automount", ".swap", - ".target", ".path", ".timer",".snapshot", ".slice" - or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and forbidden - otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? has(self.restart) - : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) == - 1 : true' - - message: None action can only be specified standalone, as - it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - required: - - actions - type: object - units: - description: |- - units is a list MachineConfig unit definitions and actions to take on changes to those services - This list supports a maximum of 50 entries. - items: - description: NodeDisruptionPolicySpecUnit is a systemd unit - name and corresponding actions to take and is used in the - NodeDisruptionPolicyConfig object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} - must be atleast 1 character long and can only - consist of alphabets, digits, ":", "-", "_", - ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicySpecActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload and None. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? has(self.reload) - : !has(self.reload)' - - message: restart is required when type is Restart, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' ? - has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) == - 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", ".mount", - ".automount", ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected format - is ${NAME}${SERVICETYPE}, where {NAME} must be atleast - 1 character long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 50 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - observedConfig: - description: |- - observedConfig holds a sparse config that controller has observed from the cluster state. It exists in spec because - it is an input to the level for the operator - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - operatorLogLevel: - default: Normal - description: |- - operatorLogLevel is an intent based logging for the operator itself. It does not give fine grained control, but it is a - simple way to manage coarse grained logging choices that operators have to interpret for themselves. - - Valid values are: "Normal", "Debug", "Trace", "TraceAll". - Defaults to "Normal". - enum: - - "" - - Normal - - Debug - - Trace - - TraceAll - type: string - succeededRevisionLimit: - description: |- - succeededRevisionLimit is the number of successful static pod installer revisions to keep on disk and in the api - -1 = unlimited, 0 or unset = 5 (default) - format: int32 - type: integer - unsupportedConfigOverrides: - description: |- - unsupportedConfigOverrides overrides the final configuration that was computed by the operator. - Red Hat does not support the use of this field. - Misuse of this field could lead to unexpected behavior or conflict with other configuration options. - Seek guidance from the Red Hat support before using this field. - Use of this property blocks cluster upgrades, it must be removed before upgrading your cluster. - nullable: true - type: object - x-kubernetes-preserve-unknown-fields: true - type: object - status: - description: status is the most recently observed status of the Machine - Config Operator - properties: - bootImageSkewEnforcementStatus: - description: |- - bootImageSkewEnforcementStatus reflects what the latest cluster-validated boot image skew enforcement - configuration is and will be used by Machine Config Controller while performing boot image skew enforcement. - When omitted, the MCO has no knowledge of how to enforce boot image skew. When the MCO does not know how - boot image skew should be enforced, cluster upgrades will be blocked until it can either automatically - determine skew enforcement or there is an explicit skew enforcement configuration provided in the - spec.bootImageSkewEnforcement field. - properties: - automatic: - description: |- - automatic describes the current boot image of the cluster. - This will be populated by the MCO when performing boot image updates. This value will be compared against - the cluster's skew limit to determine skew compliance. - Required when mode is set to "Automatic" and forbidden otherwise. - minProperties: 1 - properties: - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - type: object - x-kubernetes-validations: - - message: at least one of ocpVersion or rhcosVersion is required - rule: has(self.ocpVersion) || has(self.rhcosVersion) - manual: - description: |- - manual describes the current boot image of the cluster. - This will be populated by the MCO using the values provided in the spec.bootImageSkewEnforcement.manual field. - This value will be compared against the cluster's skew limit to determine skew compliance. - Required when mode is set to "Manual" and forbidden otherwise. - properties: - mode: - description: |- - mode is used to configure which boot image field is defined in Manual mode. - Valid values are OCPVersion and RHCOSVersion. - OCPVersion means that the cluster admin is expected to set the OCP version associated with the last boot image update - in the OCPVersion field. - RHCOSVersion means that the cluster admin is expected to set the RHCOS version associated with the last boot image update - in the RHCOSVersion field. - This field is required. - enum: - - OCPVersion - - RHCOSVersion - type: string - ocpVersion: - description: |- - ocpVersion provides a string which represents the OCP version of the boot image. - This field must match the OCP semver compatible format of x.y.z. This field must be between - 5 and 10 characters long. - Required when mode is set to "OCPVersion" and forbidden otherwise. - maxLength: 10 - minLength: 5 - type: string - x-kubernetes-validations: - - message: ocpVersion must match the OCP semver compatible - format of x.y.z - rule: self.matches('^[0-9]+\\.[0-9]+\\.[0-9]+$') - rhcosVersion: - description: |- - rhcosVersion provides a string which represents the RHCOS version of the boot image - This field must match rhcosVersion formatting of [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] or the legacy - format of [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber]. This field must be between - 14 and 21 characters long. - Required when mode is set to "RHCOSVersion" and forbidden otherwise. - maxLength: 21 - minLength: 14 - type: string - x-kubernetes-validations: - - message: rhcosVersion must match format [major].[minor].[datestamp(YYYYMMDD)]-[buildnumber] - or must match legacy format [major].[minor].[timestamp(YYYYMMDDHHmm)]-[buildnumber] - rule: self.matches('^[0-9]+\\.[0-9]+\\.([0-9]{8}|[0-9]{12})-[0-9]+$') - required: - - mode - type: object - x-kubernetes-validations: - - message: ocpVersion is required when mode is OCPVersion, and - forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''OCPVersion'') ? has(self.ocpVersion) - : !has(self.ocpVersion)' - - message: rhcosVersion is required when mode is RHCOSVersion, - and forbidden otherwise - rule: 'has(self.mode) && (self.mode ==''RHCOSVersion'') ? has(self.rhcosVersion) - : !has(self.rhcosVersion)' - mode: - description: |- - mode determines the underlying behavior of skew enforcement mechanism. - Valid values are Automatic, Manual and None. - Automatic means that the MCO will perform boot image updates and store the - OCP & RHCOS version associated with the last boot image update in the automatic field. - Manual means that the cluster admin is expected to perform manual boot image updates and store the OCP - & RHCOS version associated with the last boot image update in the manual field. - In Automatic and Manual mode, the MCO will prevent upgrades when the boot image skew exceeds the - skew limit described by the release image. - None means that the MCO will no longer monitor the boot image skew. This may affect - the cluster's ability to scale. - This field is required. - enum: - - Automatic - - Manual - - None - type: string - required: - - mode - type: object - x-kubernetes-validations: - - message: automatic is required when mode is Automatic, and forbidden - otherwise - rule: 'has(self.mode) && (self.mode == ''Automatic'') ? has(self.automatic) - : !has(self.automatic)' - - message: manual is required when mode is Manual, and forbidden otherwise - rule: 'has(self.mode) && (self.mode == ''Manual'') ? has(self.manual) - : !has(self.manual)' - conditions: - description: conditions is a list of conditions and their status - 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 - managedBootImagesStatus: - description: |- - managedBootImagesStatus reflects what the latest cluster-validated boot image configuration is - and will be used by Machine Config Controller while performing boot image updates. - properties: - machineManagers: - description: |- - machineManagers can be used to register machine management resources for boot image updates. The Machine Config Operator - will watch for changes to this list. Only one entry is permitted per type of machine management resource. - items: - description: |- - MachineManager describes a target machine resource that is registered for boot image updates. It stores identifying information - such as the resource type and the API Group of the resource. It also provides granular control via the selection field. - properties: - apiGroup: - description: |- - apiGroup is name of the APIGroup that the machine management resource belongs to. - The only current valid value is machine.openshift.io. - machine.openshift.io means that the machine manager will only register resources that belong to OpenShift machine API group. - enum: - - machine.openshift.io - type: string - resource: - description: |- - resource is the machine management resource's type. - Valid values are machinesets and controlplanemachinesets. - machinesets means that the machine manager will only register resources of the kind MachineSet. - controlplanemachinesets means that the machine manager will only register resources of the kind ControlPlaneMachineSet. - enum: - - machinesets - - controlplanemachinesets - type: string - selection: - description: selection allows granular control of the machine - management resources that will be registered for boot - image updates. - properties: - mode: - description: |- - mode determines how machine managers will be selected for updates. - Valid values are All, Partial and None. - All means that every resource matched by the machine manager will be updated. - Partial requires specified selector(s) and allows customisation of which resources matched by the machine manager will be updated. - Partial is not permitted for the controlplanemachinesets resource type as they are a singleton within the cluster. - None means that every resource matched by the machine manager will not be updated. - enum: - - All - - Partial - - None - type: string - partial: - description: |- - partial provides label selector(s) that can be used to match machine management resources. - Only permitted when mode is set to "Partial". - properties: - machineResourceSelector: - description: machineResourceSelector is a label - selector that can be used to select machine resources - like MachineSets. - 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 - required: - - machineResourceSelector - type: object - required: - - mode - type: object - x-kubernetes-validations: - - message: Partial is required when type is partial, and - forbidden otherwise - rule: 'has(self.mode) && self.mode == ''Partial'' ? has(self.partial) - : !has(self.partial)' - required: - - apiGroup - - resource - - selection - type: object - x-kubernetes-validations: - - message: Only All or None selection mode is permitted for - ControlPlaneMachineSets - rule: self.resource != 'controlplanemachinesets' || self.selection.mode - == 'All' || self.selection.mode == 'None' - maxItems: 5 - type: array - x-kubernetes-list-map-keys: - - resource - - apiGroup - x-kubernetes-list-type: map - type: object - nodeDisruptionPolicyStatus: - description: |- - nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, - and will be used by the Machine Config Daemon during future node updates. - properties: - clusterPolicies: - description: clusterPolicies is a merge of cluster default and - user provided node disruption policies. - properties: - files: - description: files is a list of MachineConfig file definitions - and actions to take to changes on those paths - items: - description: NodeDisruptionPolicyStatusFile is a file entry - and corresponding actions to take and is used in the NodeDisruptionPolicyClusterStatus - object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - path: - description: |- - path is the location of a file being managed through a MachineConfig. - The Actions in the policy will apply to changes to the file at this path. - type: string - required: - - actions - - path - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - path - x-kubernetes-list-type: map - sshkey: - description: sshkey is the overall sshkey MachineConfig definition - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to restart, - only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, and - forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' ? - has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - required: - - actions - type: object - units: - description: units is a list MachineConfig unit definitions - and actions to take on changes to those services - items: - description: NodeDisruptionPolicyStatusUnit is a systemd - unit name and corresponding actions to take and is used - in the NodeDisruptionPolicyClusterStatus object - properties: - actions: - description: |- - actions represents the series of commands to be executed on changes to the file at - the corresponding file path. Actions will be applied in the order that - they are set in this list. If there are other incoming changes to other MachineConfig - entries in the same update that require a reboot, the reboot will supercede these actions. - Valid actions are Reboot, Drain, Reload, DaemonReload and None. - The Reboot action and the None action cannot be used in conjunction with any of the other actions. - This list supports a maximum of 10 entries. - items: - properties: - reload: - description: reload specifies the service to reload, - only valid if type is reload - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be reloaded - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - restart: - description: restart specifies the service to - restart, only valid if type is restart - properties: - serviceName: - description: |- - serviceName is the full name (e.g. crio.service) of the service to be restarted - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service - name. Expected format is ${NAME}${SERVICETYPE}, - where ${SERVICETYPE} must be one of ".service", - ".socket", ".device", ".mount", ".automount", - ".swap", ".target", ".path", ".timer",".snapshot", - ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. - Expected format is ${NAME}${SERVICETYPE}, - where {NAME} must be atleast 1 character - long and can only consist of alphabets, - digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - serviceName - type: object - type: - description: |- - type represents the commands that will be carried out if this NodeDisruptionPolicyStatusActionType is executed - Valid values are Reboot, Drain, Reload, Restart, DaemonReload, None and Special. - reload/restart requires a corresponding service target specified in the reload/restart field. - Other values require no further configuration - enum: - - Reboot - - Drain - - Reload - - Restart - - DaemonReload - - None - - Special - type: string - required: - - type - type: object - x-kubernetes-validations: - - message: reload is required when type is Reload, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Reload'' - ? has(self.reload) : !has(self.reload)' - - message: restart is required when type is Restart, - and forbidden otherwise - rule: 'has(self.type) && self.type == ''Restart'' - ? has(self.restart) : !has(self.restart)' - maxItems: 10 - type: array - x-kubernetes-list-type: atomic - x-kubernetes-validations: - - message: Reboot action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''Reboot'') ? size(self) - == 1 : true' - - message: None action can only be specified standalone, - as it will override any other actions - rule: 'self.exists(x, x.type==''None'') ? size(self) - == 1 : true' - name: - description: |- - name represents the service name of a systemd service managed through a MachineConfig - Actions specified will be applied for changes to the named service. - Service names should be of the format ${NAME}${SERVICETYPE} and can up to 255 characters long. - ${NAME} must be atleast 1 character long and can only consist of alphabets, digits, ":", "-", "_", ".", and "\". - ${SERVICETYPE} must be one of ".service", ".socket", ".device", ".mount", ".automount", ".swap", ".target", ".path", ".timer", ".snapshot", ".slice" or ".scope". - maxLength: 255 - type: string - x-kubernetes-validations: - - message: Invalid ${SERVICETYPE} in service name. Expected - format is ${NAME}${SERVICETYPE}, where ${SERVICETYPE} - must be one of ".service", ".socket", ".device", - ".mount", ".automount", ".swap", ".target", ".path", - ".timer",".snapshot", ".slice" or ".scope". - rule: self.matches('\\.(service|socket|device|mount|automount|swap|target|path|timer|snapshot|slice|scope)$') - - message: Invalid ${NAME} in service name. Expected - format is ${NAME}${SERVICETYPE}, where {NAME} must - be atleast 1 character long and can only consist - of alphabets, digits, ":", "-", "_", ".", and "\" - rule: self.matches('^[a-zA-Z0-9:._\\\\-]+\\..') - required: - - actions - - name - type: object - maxItems: 100 - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - type: object - type: object - observedGeneration: - description: observedGeneration is the last generation change you've - dealt with - format: int64 - type: integer - type: object - required: - - spec - type: object - x-kubernetes-validations: - - message: when skew enforcement is in Automatic mode, a boot image configuration - is required - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? self.?spec.managedBootImages.hasValue() || self.?status.managedBootImagesStatus.hasValue() - : true' - - message: when skew enforcement is in Automatic mode, managedBootImages.machineManagers - must not be an empty list - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || size(self.spec.managedBootImages.machineManagers) - > 0 : true' - - message: when skew enforcement is in Automatic mode, any MachineAPI MachineSet - MachineManager must use selection mode 'All' - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?spec.managedBootImages.machineManagers.hasValue()) || !self.spec.managedBootImages.machineManagers.exists(m, - m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io'') - || self.spec.managedBootImages.machineManagers.exists(m, m.resource == - ''machinesets'' && m.apiGroup == ''machine.openshift.io'' && m.selection.mode - == ''All'') : true' - - message: when skew enforcement is in Automatic mode, managedBootImagesStatus - must contain a MachineManager opting in all MachineAPI MachineSets - rule: 'self.?status.bootImageSkewEnforcementStatus.mode.orValue("") == ''Automatic'' - ? !(self.?status.managedBootImagesStatus.machineManagers.hasValue()) || - self.status.managedBootImagesStatus.machineManagers.exists(m, m.selection.mode - == ''All'' && m.resource == ''machinesets'' && m.apiGroup == ''machine.openshift.io''): - true' - served: true - storage: true - subresources: - status: {} diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.crd.yaml similarity index 99% rename from vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml rename to vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.crd.yaml index 831b519754..6bfe83a8d1 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.crd-manifests/0000_80_machine-config_01_machineconfigurations.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 name: machineconfigurations.operator.openshift.io spec: group: operator.openshift.io 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 1dbaf9d9b9..27e0916168 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 @@ -37,6 +37,7 @@ func (MyOperatorResource) SwaggerDoc() map[string]string { var map_NodeStatus = map[string]string{ "": "NodeStatus provides information about the current state of a particular node managed by this operator.", "nodeName": "nodeName is the name of the node", + "nodeUID": "nodeUID is the UID of the node. This field is used to detect that a node has been deleted and recreated with the same name. When the UID changes, it indicates the node is a new instance and the controller should treat this status entry as stale. When omitted, UID-based node replacement detection is not available for this entry.", "currentRevision": "currentRevision is the generation of the most recently successful deployment. Can not be set on creation of a nodeStatus. Updates must only increase the value.", "targetRevision": "targetRevision is the generation of the deployment we're trying to apply. Can not be set on creation of a nodeStatus.", "lastFailedRevision": "lastFailedRevision is the generation of the deployment we tried and failed to deploy.", @@ -1389,7 +1390,7 @@ func (InsightsReport) SwaggerDoc() map[string]string { } var map_KMSEncryptionStatus = map[string]string{ - "healthReports": "healthReports contains all KMS plugin health reports. When omitted, no health reports are available. Each entry must have a unique combination of nodeName and keyId.", + "healthReports": "healthReports contains all KMS plugin health reports. When omitted, no health reports are available. Each entry must have a unique combination of nodeName and keyID.", "preflight": "preflight contains the state of KMS preflight validation for this operator. The preflight validates the KMS provider configuration before it is used to create a new encryption key, catching configuration issues early such as incorrect login credentials or an unreachable Vault service. When omitted, no preflight validation is in progress.", } @@ -1398,11 +1399,11 @@ func (KMSEncryptionStatus) SwaggerDoc() map[string]string { } var map_KMSPluginHealthReport = map[string]string{ - "nodeName": "nodeName is the name of the node this instance of the plugin runs on. The combination of nodeName and keyId makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length.", - "keyId": "keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters.", + "nodeName": "nodeName is the name of the node this instance of the plugin runs on. The combination of nodeName and keyID makes this health report unique. The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with an alphanumeric character, and be at most 253 characters in length.", + "keyID": "keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. This is not a cryptographic key used to encrypt/decrypt any resources. The value must be between 1 and 512 characters.", "status": "status contains a health indicator for the respective KMS plugin The field can have three states: healthy, unhealthy, error. With error and unhealthy containing additional information in Detail.", "lastCheckedTime": "lastCheckedTime is a timestamp of when the probe was last checked.", - "kekId": "kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. This is not a cryptographic key, but a unique representation of the KEK. The value must be between 1 and 1024 characters.", + "remoteKeyID": "remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. This is not a cryptographic key, but a unique representation of the KEK. The value must be between 1 and 1024 characters.", "detail": "detail contains additional error/health information for the respective KMS plugin. When omitted, no additional error or health information is provided. When set, the value must be between 1 and 1024 characters.", } diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/register.go b/vendor/github.com/openshift/api/operator/v1alpha1/register.go index ec19cba3a9..099f1f7557 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/register.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/register.go @@ -43,6 +43,8 @@ func addKnownTypes(scheme *runtime.Scheme) error { &ClusterVersionOperatorList{}, &ClusterAPI{}, &ClusterAPIList{}, + &Ingress{}, + &IngressList{}, ) return nil diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/types_ingress.go b/vendor/github.com/openshift/api/operator/v1alpha1/types_ingress.go new file mode 100644 index 0000000000..0dbf9ead8b --- /dev/null +++ b/vendor/github.com/openshift/api/operator/v1alpha1/types_ingress.go @@ -0,0 +1,146 @@ +package v1alpha1 + +import ( + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" +) + +// +genclient +// +genclient:nonNamespaced +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// Ingress contains configuration options specific to the Ingress Operator itself, +// including how it manages Gateway API integration. +// +// 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. +// +openshift:compatibility-gen:level=4 +// +openshift:file-pattern=cvoRunLevel=0000_50,operatorName=ingress,operatorOrdering=02 +// +kubebuilder:object:root=true +// +kubebuilder:resource:path=ingresses,scope=Cluster +// +kubebuilder:subresource:status +// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/2890 +// +openshift:capability=Ingress +// +openshift:enable:FeatureGate=GatewayAPIManagementMode +// +kubebuilder:validation:XValidation:rule="self.metadata.name == 'cluster'",message="Ingress is a singleton; the .metadata.name field must be 'cluster'" +type Ingress struct { + metav1.TypeMeta `json:",inline"` + + // metadata is the standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + // +required + metav1.ObjectMeta `json:"metadata"` + + // spec holds user settable values for configuration. + // +required + Spec IngressSpec `json:"spec,omitzero"` + + // status holds observed values from the cluster. + // +optional + Status IngressStatus `json:"status,omitzero"` +} + +// IngressSpec is the specification of the desired behavior of the Ingress Operator. +// +kubebuilder:validation:MinProperties=1 +type IngressSpec struct { + // gatewayAPI holds configuration for Gateway API integration, including how the + // ingress operator manages Gateway API CRDs, the OpenShift Gateway API + // implementation, and its Gateway API controllers. + // + // +optional + GatewayAPI GatewayAPIIngressConfig `json:"gatewayAPI,omitzero"` +} + +// IngressStatus defines the observed status of the Ingress Operator. +// +kubebuilder:validation:MinProperties=1 +// +kubebuilder:validation:XValidation:rule="!has(oldSelf.observedGeneration) || (has(self.observedGeneration) && self.observedGeneration >= oldSelf.observedGeneration)",message="observedGeneration must remain set and only increase once set" +type IngressStatus struct { + // conditions is a list of conditions and their status. + // + // Gateway API CRD management conditions are reported here with the "GatewayAPI" prefix: + // + // * "GatewayAPICRDsManaged" indicates whether the ingress operator is actively + // managing Gateway API CRDs. + // * "GatewayAPICRDsPresent" indicates whether Gateway API CRDs exist on the + // cluster. + // * "GatewayAPICRDsCompliant" indicates whether the installed CRDs match the + // version expected by this ingress operator release. + // + // +listType=map + // +listMapKey=type + // +kubebuilder:validation:MinItems=1 + // +kubebuilder:validation:MaxItems=32 + // +optional + Conditions []metav1.Condition `json:"conditions,omitempty"` + + // observedGeneration represents the most recent generation observed by the operator and specifies the version of + // the spec field currently being synced. + // + // When omitted, the operator has not yet observed the resource. + // +optional + // +kubebuilder:validation:Minimum=1 + ObservedGeneration int64 `json:"observedGeneration,omitempty"` +} + +// GatewayAPIIngressConfig holds configuration for Gateway API integration in the +// Cluster Ingress Operator. +// +kubebuilder:validation:MinProperties=1 +type GatewayAPIIngressConfig struct { + // managementMode specifies how the Cluster Ingress Operator manages Gateway API + // Custom Resource Definitions (CRDs), the OpenShift Gateway API implementation, + // and its Gateway API controllers. + // + // Allowed values are "Managed" and "Unmanaged". + // + // When omitted or set to "Managed", the ingress operator installs, owns, and + // upgrades the Gateway API CRDs, protects them with a Validating Admission + // Policy, and deploys the OpenShift Gateway API implementation and its Gateway + // API controllers. + // + // When set to "Unmanaged", the ingress operator does not install or manage + // Gateway API CRDs and does not deploy the OpenShift Gateway API implementation + // or its Gateway API controllers. The cluster administrator or a third-party + // product is responsible for providing their own CRDs and Gateway controller. + // The ingress operator reports observational status only. + // + // +optional + ManagementMode GatewayAPIManagementMode `json:"managementMode,omitempty"` +} + +// GatewayAPIManagementMode describes how the Cluster Ingress Operator manages +// Gateway API Custom Resource Definitions. +// +kubebuilder:validation:Enum=Managed;Unmanaged +type GatewayAPIManagementMode string + +const ( + // GatewayAPIManagementModeManaged means the ingress operator installs, owns, + // protects (via a Validating Admission Policy), and upgrades the Gateway API + // CRDs, deploys the OpenShift Gateway API implementation, and runs its Gateway + // API controllers. This is the default mode and the only fully supported + // configuration. + GatewayAPIManagementModeManaged GatewayAPIManagementMode = "Managed" + + // GatewayAPIManagementModeUnmanaged means the ingress operator does not + // install or manage Gateway API CRDs, does not deploy the OpenShift Gateway + // API implementation, and does not run its Gateway API controllers. The + // cluster administrator or a third-party product is responsible for bringing + // their own CRDs and Gateway controller. The ingress operator reports + // observational status only. + GatewayAPIManagementModeUnmanaged GatewayAPIManagementMode = "Unmanaged" +) + +// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object + +// IngressList is a collection of Ingresses. +// +// 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. +// +openshift:compatibility-gen:level=4 +type IngressList struct { + metav1.TypeMeta `json:",inline"` + + // metadata is the standard list's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + metav1.ListMeta `json:"metadata"` + + // items is a list of Ingresses. + // +optional + Items []Ingress `json:"items,omitempty"` +} diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_50_ingress_02_ingresses.crd.yaml b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_50_ingress_02_ingresses.crd.yaml new file mode 100644 index 0000000000..5be17494f6 --- /dev/null +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.crd-manifests/0000_50_ingress_02_ingresses.crd.yaml @@ -0,0 +1,182 @@ +apiVersion: apiextensions.k8s.io/v1 +kind: CustomResourceDefinition +metadata: + annotations: + api-approved.openshift.io: https://github.com/openshift/api/pull/2890 + api.openshift.io/merged-by-featuregates: "true" + capability.openshift.io/name: Ingress + include.release.openshift.io/ibm-cloud-managed: "true" + include.release.openshift.io/self-managed-high-availability: "true" + release.openshift.io/feature-set: CustomNoUpgrade,DevPreviewNoUpgrade,TechPreviewNoUpgrade + name: ingresses.operator.openshift.io +spec: + group: operator.openshift.io + names: + kind: Ingress + listKind: IngressList + plural: ingresses + singular: ingress + scope: Cluster + versions: + - name: v1alpha1 + schema: + openAPIV3Schema: + description: |- + Ingress contains configuration options specific to the Ingress Operator itself, + including how it manages Gateway API integration. + + 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 holds user settable values for configuration. + minProperties: 1 + properties: + gatewayAPI: + description: |- + gatewayAPI holds configuration for Gateway API integration, including how the + ingress operator manages Gateway API CRDs, the OpenShift Gateway API + implementation, and its Gateway API controllers. + minProperties: 1 + properties: + managementMode: + description: |- + managementMode specifies how the Cluster Ingress Operator manages Gateway API + Custom Resource Definitions (CRDs), the OpenShift Gateway API implementation, + and its Gateway API controllers. + + Allowed values are "Managed" and "Unmanaged". + + When omitted or set to "Managed", the ingress operator installs, owns, and + upgrades the Gateway API CRDs, protects them with a Validating Admission + Policy, and deploys the OpenShift Gateway API implementation and its Gateway + API controllers. + + When set to "Unmanaged", the ingress operator does not install or manage + Gateway API CRDs and does not deploy the OpenShift Gateway API implementation + or its Gateway API controllers. The cluster administrator or a third-party + product is responsible for providing their own CRDs and Gateway controller. + The ingress operator reports observational status only. + enum: + - Managed + - Unmanaged + type: string + type: object + type: object + status: + description: status holds observed values from the cluster. + minProperties: 1 + properties: + conditions: + description: |- + conditions is a list of conditions and their status. + + Gateway API CRD management conditions are reported here with the "GatewayAPI" prefix: + + * "GatewayAPICRDsManaged" indicates whether the ingress operator is actively + managing Gateway API CRDs. + * "GatewayAPICRDsPresent" indicates whether Gateway API CRDs exist on the + cluster. + * "GatewayAPICRDsCompliant" indicates whether the installed CRDs match the + version expected by this ingress operator release. + 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: 32 + minItems: 1 + type: array + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + observedGeneration: + description: |- + observedGeneration represents the most recent generation observed by the operator and specifies the version of + the spec field currently being synced. + + When omitted, the operator has not yet observed the resource. + format: int64 + minimum: 1 + type: integer + type: object + x-kubernetes-validations: + - message: observedGeneration must remain set and only increase once set + rule: '!has(oldSelf.observedGeneration) || (has(self.observedGeneration) + && self.observedGeneration >= oldSelf.observedGeneration)' + required: + - metadata + - spec + type: object + x-kubernetes-validations: + - message: Ingress is a singleton; the .metadata.name field must be 'cluster' + rule: self.metadata.name == 'cluster' + served: true + storage: true + subresources: + status: {} diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.deepcopy.go index 3c3dc8e7a5..4d864f167e 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.deepcopy.go @@ -469,6 +469,22 @@ func (in *EtcdBackupStatus) DeepCopy() *EtcdBackupStatus { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *GatewayAPIIngressConfig) DeepCopyInto(out *GatewayAPIIngressConfig) { + *out = *in + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new GatewayAPIIngressConfig. +func (in *GatewayAPIIngressConfig) DeepCopy() *GatewayAPIIngressConfig { + if in == nil { + return nil + } + out := new(GatewayAPIIngressConfig) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *GenerationHistory) DeepCopyInto(out *GenerationHistory) { *out = *in @@ -597,6 +613,107 @@ func (in *ImageContentSourcePolicySpec) DeepCopy() *ImageContentSourcePolicySpec return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Ingress) DeepCopyInto(out *Ingress) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) + out.Spec = in.Spec + in.Status.DeepCopyInto(&out.Status) + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Ingress. +func (in *Ingress) DeepCopy() *Ingress { + if in == nil { + return nil + } + out := new(Ingress) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *Ingress) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressList) DeepCopyInto(out *IngressList) { + *out = *in + out.TypeMeta = in.TypeMeta + in.ListMeta.DeepCopyInto(&out.ListMeta) + if in.Items != nil { + in, out := &in.Items, &out.Items + *out = make([]Ingress, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressList. +func (in *IngressList) DeepCopy() *IngressList { + if in == nil { + return nil + } + out := new(IngressList) + in.DeepCopyInto(out) + return out +} + +// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. +func (in *IngressList) DeepCopyObject() runtime.Object { + if c := in.DeepCopy(); c != nil { + return c + } + return nil +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressSpec) DeepCopyInto(out *IngressSpec) { + *out = *in + out.GatewayAPI = in.GatewayAPI + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressSpec. +func (in *IngressSpec) DeepCopy() *IngressSpec { + if in == nil { + return nil + } + out := new(IngressSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *IngressStatus) DeepCopyInto(out *IngressStatus) { + *out = *in + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]v1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new IngressStatus. +func (in *IngressStatus) DeepCopy() *IngressStatus { + if in == nil { + return nil + } + out := new(IngressStatus) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *LoggingConfig) DeepCopyInto(out *LoggingConfig) { *out = *in diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.featuregated-crd-manifests.yaml index 3ad442d9d8..bb0d1025d4 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.featuregated-crd-manifests.yaml @@ -90,6 +90,29 @@ imagecontentsourcepolicies.operator.openshift.io: TopLevelFeatureGates: [] Version: v1alpha1 +ingresses.operator.openshift.io: + Annotations: {} + ApprovedPRNumber: https://github.com/openshift/api/pull/2890 + CRDName: ingresses.operator.openshift.io + Capability: Ingress + Category: "" + FeatureGates: + - GatewayAPIManagementMode + FilenameOperatorName: ingress + FilenameOperatorOrdering: "02" + FilenameRunLevel: "0000_50" + GroupName: operator.openshift.io + HasStatus: true + KindName: Ingress + Labels: {} + PluralName: ingresses + PrinterColumns: [] + Scope: Cluster + ShortNames: null + TopLevelFeatureGates: + - GatewayAPIManagementMode + Version: v1alpha1 + olms.operator.openshift.io: Annotations: include.release.openshift.io/ibm-cloud-managed: "false" diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.model_name.go b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.model_name.go index e3fe9897dd..cd4dbe030a 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.model_name.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.model_name.go @@ -105,6 +105,11 @@ func (in EtcdBackupStatus) OpenAPIModelName() string { return "com.github.openshift.api.operator.v1alpha1.EtcdBackupStatus" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in GatewayAPIIngressConfig) OpenAPIModelName() string { + return "com.github.openshift.api.operator.v1alpha1.GatewayAPIIngressConfig" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in GenerationHistory) OpenAPIModelName() string { return "com.github.openshift.api.operator.v1alpha1.GenerationHistory" @@ -130,6 +135,26 @@ func (in ImageContentSourcePolicySpec) OpenAPIModelName() string { return "com.github.openshift.api.operator.v1alpha1.ImageContentSourcePolicySpec" } +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in Ingress) OpenAPIModelName() string { + return "com.github.openshift.api.operator.v1alpha1.Ingress" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in IngressList) OpenAPIModelName() string { + return "com.github.openshift.api.operator.v1alpha1.IngressList" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in IngressSpec) OpenAPIModelName() string { + return "com.github.openshift.api.operator.v1alpha1.IngressSpec" +} + +// OpenAPIModelName returns the OpenAPI model name for this type. +func (in IngressStatus) OpenAPIModelName() string { + return "com.github.openshift.api.operator.v1alpha1.IngressStatus" +} + // OpenAPIModelName returns the OpenAPI model name for this type. func (in LoggingConfig) OpenAPIModelName() string { return "com.github.openshift.api.operator.v1alpha1.LoggingConfig" diff --git a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go index bf4117768d..57a7d19669 100644 --- a/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/operator/v1alpha1/zz_generated.swagger_doc_generated.go @@ -351,6 +351,55 @@ func (RepositoryDigestMirrors) SwaggerDoc() map[string]string { return map_RepositoryDigestMirrors } +var map_GatewayAPIIngressConfig = map[string]string{ + "": "GatewayAPIIngressConfig holds configuration for Gateway API integration in the Cluster Ingress Operator.", + "managementMode": "managementMode specifies how the Cluster Ingress Operator manages Gateway API Custom Resource Definitions (CRDs), the OpenShift Gateway API implementation, and its Gateway API controllers.\n\nAllowed values are \"Managed\" and \"Unmanaged\".\n\nWhen omitted or set to \"Managed\", the ingress operator installs, owns, and upgrades the Gateway API CRDs, protects them with a Validating Admission Policy, and deploys the OpenShift Gateway API implementation and its Gateway API controllers.\n\nWhen set to \"Unmanaged\", the ingress operator does not install or manage Gateway API CRDs and does not deploy the OpenShift Gateway API implementation or its Gateway API controllers. The cluster administrator or a third-party product is responsible for providing their own CRDs and Gateway controller. The ingress operator reports observational status only.", +} + +func (GatewayAPIIngressConfig) SwaggerDoc() map[string]string { + return map_GatewayAPIIngressConfig +} + +var map_Ingress = map[string]string{ + "": "Ingress contains configuration options specific to the Ingress Operator itself, including how it manages Gateway API integration.\n\nCompatibility 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.", + "metadata": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "spec": "spec holds user settable values for configuration.", + "status": "status holds observed values from the cluster.", +} + +func (Ingress) SwaggerDoc() map[string]string { + return map_Ingress +} + +var map_IngressList = map[string]string{ + "": "IngressList is a collection of Ingresses.\n\nCompatibility 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.", + "metadata": "metadata is the standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", + "items": "items is a list of Ingresses.", +} + +func (IngressList) SwaggerDoc() map[string]string { + return map_IngressList +} + +var map_IngressSpec = map[string]string{ + "": "IngressSpec is the specification of the desired behavior of the Ingress Operator.", + "gatewayAPI": "gatewayAPI holds configuration for Gateway API integration, including how the ingress operator manages Gateway API CRDs, the OpenShift Gateway API implementation, and its Gateway API controllers.", +} + +func (IngressSpec) SwaggerDoc() map[string]string { + return map_IngressSpec +} + +var map_IngressStatus = map[string]string{ + "": "IngressStatus defines the observed status of the Ingress Operator.", + "conditions": "conditions is a list of conditions and their status.\n\nGateway API CRD management conditions are reported here with the \"GatewayAPI\" prefix:\n\n* \"GatewayAPICRDsManaged\" indicates whether the ingress operator is actively\n managing Gateway API CRDs.\n* \"GatewayAPICRDsPresent\" indicates whether Gateway API CRDs exist on the\n cluster.\n* \"GatewayAPICRDsCompliant\" indicates whether the installed CRDs match the\n version expected by this ingress operator release.", + "observedGeneration": "observedGeneration represents the most recent generation observed by the operator and specifies the version of the spec field currently being synced.\n\nWhen omitted, the operator has not yet observed the resource.", +} + +func (IngressStatus) SwaggerDoc() map[string]string { + return map_IngressStatus +} + var map_OLM = map[string]string{ "": "OLM provides information to configure an operator to manage the OLM controllers\n\nCompatibility 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.", "metadata": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", diff --git a/vendor/github.com/openshift/api/payload-command/render/legacyfeaturegates.go b/vendor/github.com/openshift/api/payload-command/render/legacyfeaturegates.go index a663eb1fb6..b786c0f338 100644 --- a/vendor/github.com/openshift/api/payload-command/render/legacyfeaturegates.go +++ b/vendor/github.com/openshift/api/payload-command/render/legacyfeaturegates.go @@ -87,8 +87,6 @@ var legacyFeatureGates = sets.New( // never add to this list, if you think you have an exception ask @deads2k "PrivateHostedZoneAWS", // never add to this list, if you think you have an exception ask @deads2k - "RouteExternalCertificate", - // never add to this list, if you think you have an exception ask @deads2k "SetEIPForNLBIngressController", // never add to this list, if you think you have an exception ask @deads2k "SignatureStores", diff --git a/vendor/github.com/openshift/api/route/v1/generated.proto b/vendor/github.com/openshift/api/route/v1/generated.proto index 85018b16b7..28f8c311ee 100644 --- a/vendor/github.com/openshift/api/route/v1/generated.proto +++ b/vendor/github.com/openshift/api/route/v1/generated.proto @@ -411,7 +411,7 @@ message RouterShard { // TLSConfig defines config used to secure a route and provide termination // // +kubebuilder:validation:XValidation:rule="has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true", message="cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow" -// +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteExternalCertificate,rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" +// +kubebuilder:validation:XValidation:rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" message TLSConfig { // termination indicates the TLS termination type. // @@ -464,7 +464,6 @@ message TLSConfig { // The router service account needs to be granted with read-only access to this secret, // please refer to openshift docs for additional details. // - // +openshift:enable:FeatureGate=RouteExternalCertificate // +optional optional LocalObjectReference externalCertificate = 7; } diff --git a/vendor/github.com/openshift/api/route/v1/types.go b/vendor/github.com/openshift/api/route/v1/types.go index 35c4064825..41f362fdf4 100644 --- a/vendor/github.com/openshift/api/route/v1/types.go +++ b/vendor/github.com/openshift/api/route/v1/types.go @@ -422,7 +422,7 @@ type RouterShard struct { // TLSConfig defines config used to secure a route and provide termination // // +kubebuilder:validation:XValidation:rule="has(self.termination) && has(self.insecureEdgeTerminationPolicy) ? !((self.termination=='passthrough') && (self.insecureEdgeTerminationPolicy=='Allow')) : true", message="cannot have both spec.tls.termination: passthrough and spec.tls.insecureEdgeTerminationPolicy: Allow" -// +openshift:validation:FeatureGateAwareXValidation:featureGate=RouteExternalCertificate,rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" +// +kubebuilder:validation:XValidation:rule="!(has(self.certificate) && has(self.externalCertificate))", message="cannot have both spec.tls.certificate and spec.tls.externalCertificate" type TLSConfig struct { // termination indicates the TLS termination type. // @@ -475,7 +475,6 @@ type TLSConfig struct { // The router service account needs to be granted with read-only access to this secret, // please refer to openshift docs for additional details. // - // +openshift:enable:FeatureGate=RouteExternalCertificate // +optional ExternalCertificate *LocalObjectReference `json:"externalCertificate,omitempty" protobuf:"bytes,7,opt,name=externalCertificate"` } diff --git a/vendor/github.com/openshift/api/route/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/route/v1/zz_generated.featuregated-crd-manifests.yaml index 0277ba2f32..33666eba4b 100644 --- a/vendor/github.com/openshift/api/route/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/route/v1/zz_generated.featuregated-crd-manifests.yaml @@ -4,8 +4,7 @@ routes.route.openshift.io: CRDName: routes.route.openshift.io Capability: "" Category: "" - FeatureGates: - - RouteExternalCertificate + FeatureGates: [] FilenameOperatorName: "" FilenameOperatorOrdering: "" FilenameRunLevel: "" diff --git a/vendor/modules.txt b/vendor/modules.txt index 4037eb4e4e..d6a3ae15ce 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1360,7 +1360,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-20260724065811-356624ff036f +# github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 ## explicit; go 1.26.0 github.com/openshift/api github.com/openshift/api/annotations From a10013c0cd037dafda07d836dc2f9cdf81170f42 Mon Sep 17 00:00:00 2001 From: Pawan Pinjarkar Date: Mon, 10 Aug 2026 16:36:25 -0400 Subject: [PATCH 3/4] update client-go dependency --- go.mod | 2 +- go.sum | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/go.mod b/go.mod index bbdc0089be..15903b1545 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,7 @@ require ( github.com/opencontainers/go-digest v1.0.0 github.com/openshift-eng/openshift-tests-extension v0.0.0-20260707142426-572a3e9deb7a github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 - github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec + github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146 github.com/openshift/imagebuilder v1.2.21 github.com/openshift/library-go v0.0.0-20260720123941-85336565c3c7 github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b diff --git a/go.sum b/go.sum index f919151152..3217ac4905 100644 --- a/go.sum +++ b/go.sum @@ -657,6 +657,8 @@ github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43 h1: github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43/go.mod h1:ZuzfEq1ccZpHNx05xEUKlm2TcMHt2iXVutb79kAuTfM= github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec h1:UDjX+mot5IVLpcChyBqLXG1oSB29s4UkqFmgNb0Xsqc= github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec/go.mod h1:iMHec0APKVjOH8GfL/RxddX8DuiuSvPlRe+s7KDqlyA= +github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146 h1:fX/gaOPiS2vrYGSAFSeqqoWjj32H+NbMmB5RDjwhCnU= +github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146/go.mod h1:bhbP5y308NNbImrgArOc9611HIDAMcNWdCCO4tq5ob4= github.com/openshift/imagebuilder v1.2.21 h1:XX0tZVznWTxzYevvNVZ/0eeTzmgY6cfcT4/xjs5ToyU= github.com/openshift/imagebuilder v1.2.21/go.mod h1:+L09sXUQ0RPdCU1tmzKrfBhqMlYvZtaA3MHb7aTjVU8= github.com/openshift/kubernetes v1.30.1-0.20260716191900-78acd4d422b2 h1:+FIs6dK2DpIFH7oUGQOfxqtIUJmc4sp8NBHK++q0lGY= From 815f33d91711269b2ec2da73dfc434b1d852b23d Mon Sep 17 00:00:00 2001 From: Pawan Pinjarkar Date: Mon, 10 Aug 2026 16:37:07 -0400 Subject: [PATCH 4/4] go mod tidy; go mod vendor --- go.sum | 2 - .../config/v1/awsplatformstatus.go | 9 + .../config/v1/baremetalplatformstatus.go | 19 ++ .../config/v1/gcpplatformstatus.go | 20 ++ .../config/v1/vaultkmspluginconfig.go | 55 ++-- .../v1/vsphereplatformfailuredomainspec.go | 3 + .../config/v1/vsphereplatformspec.go | 1 + .../v1alpha1/nodeexportercollectorconfig.go | 43 +++ ...tercollectordevicemappermultipathconfig.go | 37 +++ ...ortercollectornvmexpresssubsystemconfig.go | 37 +++ .../nodeexportercollectorzoneinfoconfig.go | 37 +++ .../config/v1alpha1/remotewritespec.go | 14 + .../applyconfigurations/internal/internal.go | 45 ++- .../config/applyconfigurations/utils.go | 6 + .../v1/controllerconfigspec.go | 16 + .../applyconfigurations/internal/internal.go | 87 +++++- .../operator/v1/kmsencryptionstatus.go | 16 +- .../operator/v1/kmspluginhealthreport.go | 26 +- .../operator/v1/kmspreflightcheck.go | 42 +++ .../operator/v1/kmspreflightresult.go | 59 ++++ .../operator/v1/nodestatus.go | 15 + .../v1alpha1/gatewayapiingressconfig.go | 46 +++ .../operator/v1alpha1/ingress.go | 278 ++++++++++++++++++ .../operator/v1alpha1/ingressspec.go | 28 ++ .../operator/v1alpha1/ingressstatus.go | 57 ++++ .../operator/applyconfigurations/utils.go | 12 + .../operator/v1alpha1/fake/fake_ingress.go | 35 +++ .../v1alpha1/fake/fake_operator_client.go | 4 + .../operator/v1alpha1/generated_expansion.go | 2 + .../typed/operator/v1alpha1/ingress.go | 58 ++++ .../operator/v1alpha1/operator_client.go | 5 + .../informers/externalversions/generic.go | 2 + .../operator/v1alpha1/ingress.go | 99 +++++++ .../operator/v1alpha1/interface.go | 7 + .../operator/v1alpha1/expansion_generated.go | 4 + .../listers/operator/v1alpha1/ingress.go | 32 ++ vendor/modules.txt | 2 +- 37 files changed, 1211 insertions(+), 49 deletions(-) create mode 100644 vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectordevicemappermultipathconfig.go create mode 100644 vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectornvmexpresssubsystemconfig.go create mode 100644 vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorzoneinfoconfig.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightcheck.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightresult.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/gatewayapiingressconfig.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingress.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressspec.go create mode 100644 vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressstatus.go create mode 100644 vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_ingress.go create mode 100644 vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/ingress.go create mode 100644 vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/ingress.go create mode 100644 vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/ingress.go diff --git a/go.sum b/go.sum index 3217ac4905..bb017b4698 100644 --- a/go.sum +++ b/go.sum @@ -655,8 +655,6 @@ github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5 h1:/UAIG4kF4dXdamTuN github.com/openshift/api v0.0.0-20260810132456-8f52beb625b5/go.mod h1:k6qH5QOVa5GDln2VVm8Jz4NV3Z7R2SATHFLwGS6Wh3M= github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43 h1:V9hWaBi9cnohNk1F0Ph6wpI0otMWqMHleJ3oj5603Bc= github.com/openshift/apiserver-library-go v0.0.0-20260715200723-42e5e402ca43/go.mod h1:ZuzfEq1ccZpHNx05xEUKlm2TcMHt2iXVutb79kAuTfM= -github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec h1:UDjX+mot5IVLpcChyBqLXG1oSB29s4UkqFmgNb0Xsqc= -github.com/openshift/client-go v0.0.0-20260715172546-dac61734e0ec/go.mod h1:iMHec0APKVjOH8GfL/RxddX8DuiuSvPlRe+s7KDqlyA= github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146 h1:fX/gaOPiS2vrYGSAFSeqqoWjj32H+NbMmB5RDjwhCnU= github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146/go.mod h1:bhbP5y308NNbImrgArOc9611HIDAMcNWdCCO4tq5ob4= github.com/openshift/imagebuilder v1.2.21 h1:XX0tZVznWTxzYevvNVZ/0eeTzmgY6cfcT4/xjs5ToyU= diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformstatus.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformstatus.go index 33007c2103..457caa686a 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformstatus.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/awsplatformstatus.go @@ -33,6 +33,15 @@ type AWSPlatformStatusApplyConfiguration struct { // network resources. This controls whether AWS resources are created with // IPv4-only, or dual-stack networking with IPv4 or IPv6 as the primary // protocol family. + // + // Valid values are: + // * "IPv4" (default): Cloud platform resources use IPv4 addressing only. + // * "DualStackIPv6Primary": Cloud platform resources use dual-stack networking with IPv6 as the primary protocol family. + // * "DualStackIPv4Primary": Cloud platform resources use dual-stack networking with IPv4 as the primary protocol family. + // + // When omitted, this field defaults to "IPv4". + // + // This field is immutable and cannot be changed once set. IPFamily *configv1.IPFamilyType `json:"ipFamily,omitempty"` } diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformstatus.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformstatus.go index 1f6dd6df6b..f90232bff9 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformstatus.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/baremetalplatformstatus.go @@ -45,6 +45,17 @@ type BareMetalPlatformStatusApplyConfiguration struct { NodeDNSIP *string `json:"nodeDNSIP,omitempty"` // loadBalancer defines how the load balancer used by the cluster is configured. LoadBalancer *BareMetalPlatformLoadBalancerApplyConfiguration `json:"loadBalancer,omitempty"` + // vipManagement indicates which VIP management mechanism is active + // on this cluster. + // Allowed values are `Keepalived`, `BGP`, and omitted. + // Once set to a non-empty value, this field is immutable. + // When set to `BGP`, kube-vip (Routing Table Mode) and frr-k8s are + // deployed as static pods to advertise VIPs via BGP, replacing the + // default keepalived/VRRP mechanism. + // When set to `Keepalived`, the default keepalived-based VIP + // management is used. + // When omitted, the default keepalived-based VIP management is used. + VIPManagement *configv1.VIPManagementType `json:"vipManagement,omitempty"` // dnsRecordsType determines whether records for api, api-int, and ingress // are provided by the internal DNS service or externally. // Allowed values are `Internal`, `External`, and omitted. @@ -120,6 +131,14 @@ func (b *BareMetalPlatformStatusApplyConfiguration) WithLoadBalancer(value *Bare return b } +// WithVIPManagement sets the VIPManagement 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 VIPManagement field is set to the value of the last call. +func (b *BareMetalPlatformStatusApplyConfiguration) WithVIPManagement(value configv1.VIPManagementType) *BareMetalPlatformStatusApplyConfiguration { + b.VIPManagement = &value + return b +} + // WithDNSRecordsType sets the DNSRecordsType 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 DNSRecordsType field is set to the value of the last call. diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpplatformstatus.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpplatformstatus.go index bf4c761d1a..158041b9ab 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpplatformstatus.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/gcpplatformstatus.go @@ -27,6 +27,18 @@ type GCPPlatformStatusApplyConfiguration struct { // must be provided for the API and internal API load balancers as well as the // ingress load balancer. CloudLoadBalancerConfig *CloudLoadBalancerConfigApplyConfiguration `json:"cloudLoadBalancerConfig,omitempty"` + // universeDomain is the GCP universe domain for the cluster, detected from + // the installer credentials. Components with their own GCP credentials should + // read the universe domain from those credentials, as they are the authoritative + // source. This field is provided for components that do not have GCP credentials + // and for general observability. + // + // When omitted, standard public GCP (googleapis.com) is assumed. + // + // universeDomain is an optional field that, when specified, must be non-empty and at most + // 253 characters. It must be a valid DNS subdomain: containing only lowercase alphanumeric + // characters, '-' or '.', and starting and ending with an alphanumeric character. + UniverseDomain *string `json:"universeDomain,omitempty"` } // GCPPlatformStatusApplyConfiguration constructs a declarative configuration of the GCPPlatformStatus type for use with @@ -84,3 +96,11 @@ func (b *GCPPlatformStatusApplyConfiguration) WithCloudLoadBalancerConfig(value b.CloudLoadBalancerConfig = value return b } + +// WithUniverseDomain sets the UniverseDomain 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 UniverseDomain field is set to the value of the last call. +func (b *GCPPlatformStatusApplyConfiguration) WithUniverseDomain(value string) *GCPPlatformStatusApplyConfiguration { + b.UniverseDomain = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultkmspluginconfig.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultkmspluginconfig.go index 736095a27d..235cecb939 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultkmspluginconfig.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vaultkmspluginconfig.go @@ -40,24 +40,31 @@ type VaultKMSPluginConfigApplyConfiguration struct { // The value must be between 1 and 4096 characters. // The namespace cannot end with a forward slash, cannot contain spaces, and cannot be one of the reserved strings: root, sys, audit, auth, cubbyhole, or identity. VaultNamespace *string `json:"vaultNamespace,omitempty"` + // vaultAuthNamespace specifies the Vault namespace to use for authentication. + // This is only applicable for Vault Enterprise installations where authentication + // and Transit operations may be in different namespaces. + // When this field is not set, the value of vaultNamespace is used for both + // authentication and Transit key operations. + // + // The value must be between 1 and 4096 characters. + // The namespace cannot end with a forward slash, cannot contain spaces, and cannot be one of the reserved strings: root, sys, audit, auth, cubbyhole, or identity. + VaultAuthNamespace *string `json:"vaultAuthNamespace,omitempty"` // tls contains the TLS configuration for connecting to the Vault server. // When this field is not set, system default TLS settings are used. TLS *VaultTLSConfigApplyConfiguration `json:"tls,omitempty"` // authentication defines the authentication method used to authenticate with Vault. Authentication *VaultAuthenticationApplyConfiguration `json:"authentication,omitempty"` - // transitMount specifies the mount path of the Vault Transit engine. + // vaultKeyPath specifies the full path to the encryption key in Vault's Transit secrets engine, + // combining the Transit engine mount path and the key name separated by "/keys/". + // Format: /keys/ (e.g., transit/keys/my-key, myteam/transit/keys/production-key). // - // The transit mount must be between 1 and 1024 characters, cannot start or - // end with a forward slash, cannot contain consecutive forward slashes, and - // must only contain RFC 3986 unreserved characters (alphanumeric, hyphen, - // period, underscore, tilde) and forward slashes as path separators. - TransitMount *string `json:"transitMount,omitempty"` - // transitKey specifies the name of the encryption key in Vault's Transit engine. - // This key is used to encrypt and decrypt data. - // - // The transit key must be between 1 and 512 characters, cannot contain forward slashes, - // and must only contain alphanumeric characters, hyphens, periods, and underscores. - TransitKey *string `json:"transitKey,omitempty"` + // The total path length must be between 8 and 1542 characters. + // The path cannot start or end with a forward slash, cannot contain consecutive forward slashes, + // must only contain RFC 3986 unreserved characters (alphanumeric, hyphen, period, underscore, tilde) + // and forward slashes as path separators, and must not contain "." or ".." path segments. + // The key name must start and end with an alphanumeric character or underscore, and may contain + // alphanumeric characters, underscores, hyphens, and periods in the middle. + VaultKeyPath *string `json:"vaultKeyPath,omitempty"` } // VaultKMSPluginConfigApplyConfiguration constructs a declarative configuration of the VaultKMSPluginConfig type for use with @@ -90,6 +97,14 @@ func (b *VaultKMSPluginConfigApplyConfiguration) WithVaultNamespace(value string return b } +// WithVaultAuthNamespace sets the VaultAuthNamespace 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 VaultAuthNamespace field is set to the value of the last call. +func (b *VaultKMSPluginConfigApplyConfiguration) WithVaultAuthNamespace(value string) *VaultKMSPluginConfigApplyConfiguration { + b.VaultAuthNamespace = &value + return b +} + // WithTLS sets the TLS 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 TLS field is set to the value of the last call. @@ -106,18 +121,10 @@ func (b *VaultKMSPluginConfigApplyConfiguration) WithAuthentication(value *Vault return b } -// WithTransitMount sets the TransitMount 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 TransitMount field is set to the value of the last call. -func (b *VaultKMSPluginConfigApplyConfiguration) WithTransitMount(value string) *VaultKMSPluginConfigApplyConfiguration { - b.TransitMount = &value - return b -} - -// WithTransitKey sets the TransitKey field in the declarative configuration to the given value +// WithVaultKeyPath sets the VaultKeyPath 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 TransitKey field is set to the value of the last call. -func (b *VaultKMSPluginConfigApplyConfiguration) WithTransitKey(value string) *VaultKMSPluginConfigApplyConfiguration { - b.TransitKey = &value +// If called multiple times, the VaultKeyPath field is set to the value of the last call. +func (b *VaultKMSPluginConfigApplyConfiguration) WithVaultKeyPath(value string) *VaultKMSPluginConfigApplyConfiguration { + b.VaultKeyPath = &value return b } diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformfailuredomainspec.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformfailuredomainspec.go index 4f3d37e0f1..feb5a68fbc 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformfailuredomainspec.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformfailuredomainspec.go @@ -28,6 +28,9 @@ type VSpherePlatformFailureDomainSpecApplyConfiguration struct { // contains the vmHostRule which is an affinity vm-host rule in vCenter. ZoneAffinity *VSphereFailureDomainZoneAffinityApplyConfiguration `json:"zoneAffinity,omitempty"` // server is the fully-qualified domain name or the IP address of the vCenter server. + // This must match the server field of an entry in the vcenters list. + // The match is case-sensitive; the value must be specified exactly as it appears in the vcenters entry. + // The value must be between 1 and 255 characters long. // --- Server *string `json:"server,omitempty"` // topology describes a given failure domain using vSphere constructs diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformspec.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformspec.go index 4f31602e52..971183e94d 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformspec.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1/vsphereplatformspec.go @@ -25,6 +25,7 @@ type VSpherePlatformSpecApplyConfiguration struct { VCenters []VSpherePlatformVCenterSpecApplyConfiguration `json:"vcenters,omitempty"` // failureDomains contains the definition of region, zone and the vCenter topology. // If this is omitted failure domains (regions and zones) will not be used. + // Each failure domain's server must match the server field of an entry in the vcenters list. FailureDomains []VSpherePlatformFailureDomainSpecApplyConfiguration `json:"failureDomains,omitempty"` // nodeNetworking contains the definition of internal and external network constraints for // assigning the node's networking. diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorconfig.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorconfig.go index ce8b83e065..7f74fe4e81 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorconfig.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorconfig.go @@ -87,6 +87,25 @@ type NodeExporterCollectorConfigApplyConfiguration struct { // which is subject to change over time. The current default is disabled. // Enable when you need visibility into kernel softirq processing across CPUs. Softirqs *NodeExporterCollectorSoftirqsConfigApplyConfiguration `json:"softirqs,omitempty"` + // deviceMapperMultipath configures the dmmultipath collector, which collects statistics + // about DM-Multipath devices. + // deviceMapperMultipath is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is enabled. + DeviceMapperMultipath *NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration `json:"deviceMapperMultipath,omitempty"` + // zoneinfo configures the zoneinfo collector, which exposes per-zone memory page counts, + // watermarks, and protection thresholds from /proc/zoneinfo. + // zoneinfo is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is to not collect zoneinfo metrics. + // Enable when you need visibility into kernel memory zone allocation and pressure. + Zoneinfo *NodeExporterCollectorZoneinfoConfigApplyConfiguration `json:"zoneinfo,omitempty"` + // nvmExpressSubsystem configures the nvmesubsystem collector, which + // collects statistics about NVM Express (NVMe) subsystem devices. + // nvmExpressSubsystem is optional. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, + // which is subject to change over time. The current default is enabled. + NVMExpressSubsystem *NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration `json:"nvmExpressSubsystem,omitempty"` } // NodeExporterCollectorConfigApplyConfiguration constructs a declarative configuration of the NodeExporterCollectorConfig type for use with @@ -182,3 +201,27 @@ func (b *NodeExporterCollectorConfigApplyConfiguration) WithSoftirqs(value *Node b.Softirqs = value return b } + +// WithDeviceMapperMultipath sets the DeviceMapperMultipath 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 DeviceMapperMultipath field is set to the value of the last call. +func (b *NodeExporterCollectorConfigApplyConfiguration) WithDeviceMapperMultipath(value *NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration) *NodeExporterCollectorConfigApplyConfiguration { + b.DeviceMapperMultipath = value + return b +} + +// WithZoneinfo sets the Zoneinfo 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 Zoneinfo field is set to the value of the last call. +func (b *NodeExporterCollectorConfigApplyConfiguration) WithZoneinfo(value *NodeExporterCollectorZoneinfoConfigApplyConfiguration) *NodeExporterCollectorConfigApplyConfiguration { + b.Zoneinfo = value + return b +} + +// WithNVMExpressSubsystem sets the NVMExpressSubsystem 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 NVMExpressSubsystem field is set to the value of the last call. +func (b *NodeExporterCollectorConfigApplyConfiguration) WithNVMExpressSubsystem(value *NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration) *NodeExporterCollectorConfigApplyConfiguration { + b.NVMExpressSubsystem = value + return b +} diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectordevicemappermultipathconfig.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectordevicemappermultipathconfig.go new file mode 100644 index 0000000000..2ea3f2c527 --- /dev/null +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectordevicemappermultipathconfig.go @@ -0,0 +1,37 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + configv1alpha1 "github.com/openshift/api/config/v1alpha1" +) + +// NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration represents a declarative configuration of the NodeExporterCollectorDeviceMapperMultipathConfig type for use +// with apply. +// +// NodeExporterCollectorDeviceMapperMultipathConfig provides configuration for the dmmultipath collector +// of the node-exporter agent. The dmmultipath collector collects statistics about +// DM-Multipath devices. +// It is enabled by default. +type NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration struct { + // collectionPolicy declares whether the dmmultipath collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the dmmultipath collector is active and DM-Multipath device statistics are collected. + // When set to "DoNotCollect", the dmmultipath collector is inactive and the corresponding metrics become unavailable. + CollectionPolicy *configv1alpha1.NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + +// NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration constructs a declarative configuration of the NodeExporterCollectorDeviceMapperMultipathConfig type for use with +// apply. +func NodeExporterCollectorDeviceMapperMultipathConfig() *NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration { + return &NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration{} +} + +// WithCollectionPolicy sets the CollectionPolicy 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 CollectionPolicy field is set to the value of the last call. +func (b *NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration) WithCollectionPolicy(value configv1alpha1.NodeExporterCollectorCollectionPolicy) *NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration { + b.CollectionPolicy = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectornvmexpresssubsystemconfig.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectornvmexpresssubsystemconfig.go new file mode 100644 index 0000000000..e072e4b091 --- /dev/null +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectornvmexpresssubsystemconfig.go @@ -0,0 +1,37 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + configv1alpha1 "github.com/openshift/api/config/v1alpha1" +) + +// NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration represents a declarative configuration of the NodeExporterCollectorNVMExpressSubsystemConfig type for use +// with apply. +// +// NodeExporterCollectorNVMExpressSubsystemConfig provides configuration for +// the nvmesubsystem collector of the node-exporter agent. The nvmesubsystem +// collector collects statistics about NVM Express (NVMe) subsystem devices. +// It is enabled by default. +type NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration struct { + // collectionPolicy declares whether the nvmesubsystem collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the nvmesubsystem collector is active and NVMe subsystem statistics are collected. + // When set to "DoNotCollect", the nvmesubsystem collector is inactive and the corresponding metrics become unavailable. + CollectionPolicy *configv1alpha1.NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + +// NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration constructs a declarative configuration of the NodeExporterCollectorNVMExpressSubsystemConfig type for use with +// apply. +func NodeExporterCollectorNVMExpressSubsystemConfig() *NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration { + return &NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration{} +} + +// WithCollectionPolicy sets the CollectionPolicy 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 CollectionPolicy field is set to the value of the last call. +func (b *NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration) WithCollectionPolicy(value configv1alpha1.NodeExporterCollectorCollectionPolicy) *NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration { + b.CollectionPolicy = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorzoneinfoconfig.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorzoneinfoconfig.go new file mode 100644 index 0000000000..cdd1a5748f --- /dev/null +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/nodeexportercollectorzoneinfoconfig.go @@ -0,0 +1,37 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + configv1alpha1 "github.com/openshift/api/config/v1alpha1" +) + +// NodeExporterCollectorZoneinfoConfigApplyConfiguration represents a declarative configuration of the NodeExporterCollectorZoneinfoConfig type for use +// with apply. +// +// NodeExporterCollectorZoneinfoConfig provides configuration for the zoneinfo collector +// of the node-exporter agent. The zoneinfo collector exposes per-zone memory page counts, +// watermarks, and protection thresholds from /proc/zoneinfo. +// By default, the zoneinfo collector does not collect metrics. +type NodeExporterCollectorZoneinfoConfigApplyConfiguration struct { + // collectionPolicy declares whether the zoneinfo collector collects metrics. + // This field is required. + // Valid values are "Collect" and "DoNotCollect". + // When set to "Collect", the zoneinfo collector is active and zone memory statistics are collected. + // When set to "DoNotCollect", the zoneinfo collector is inactive. + CollectionPolicy *configv1alpha1.NodeExporterCollectorCollectionPolicy `json:"collectionPolicy,omitempty"` +} + +// NodeExporterCollectorZoneinfoConfigApplyConfiguration constructs a declarative configuration of the NodeExporterCollectorZoneinfoConfig type for use with +// apply. +func NodeExporterCollectorZoneinfoConfig() *NodeExporterCollectorZoneinfoConfigApplyConfiguration { + return &NodeExporterCollectorZoneinfoConfigApplyConfiguration{} +} + +// WithCollectionPolicy sets the CollectionPolicy 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 CollectionPolicy field is set to the value of the last call. +func (b *NodeExporterCollectorZoneinfoConfigApplyConfiguration) WithCollectionPolicy(value configv1alpha1.NodeExporterCollectorCollectionPolicy) *NodeExporterCollectorZoneinfoConfigApplyConfiguration { + b.CollectionPolicy = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/remotewritespec.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/remotewritespec.go index 07c4b1e15f..727c23a453 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/remotewritespec.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/config/v1alpha1/remotewritespec.go @@ -21,6 +21,12 @@ type RemoteWriteSpecApplyConfiguration struct { // Must contain only alphanumeric characters, hyphens, and underscores. // Must be between 1 and 63 characters in length. Name *string `json:"name,omitempty"` + // messageVersion defines the Remote Write message's version to use when writing to the endpoint. + // When omitted, this means no opinion and the platform is left to choose a reasonable default, which is subject to change over time. + // The default value is "V1.0". + // When set to "V1.0", Prometheus uses the `prometheus.WriteRequest` protobuf message introduced in Remote Write 1.0. + // When set to "V2.0", Prometheus uses the `io.prometheus.write.v2.Request` protobuf message introduced in Remote Write 2.0. + MessageVersion *configv1alpha1.RemoteWriteMessageVersion `json:"messageVersion,omitempty"` // authorization defines the authorization method for the remote write endpoint. // When omitted, no authorization is performed. // When set, type must be one of Authorization, BasicAuth, OAuth2, SigV4, or ServiceAccount; the corresponding nested config must be set (ServiceAccount has no config). @@ -92,6 +98,14 @@ func (b *RemoteWriteSpecApplyConfiguration) WithName(value string) *RemoteWriteS return b } +// WithMessageVersion sets the MessageVersion 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 MessageVersion field is set to the value of the last call. +func (b *RemoteWriteSpecApplyConfiguration) WithMessageVersion(value configv1alpha1.RemoteWriteMessageVersion) *RemoteWriteSpecApplyConfiguration { + b.MessageVersion = &value + return b +} + // WithAuthorizationConfig sets the AuthorizationConfig 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 AuthorizationConfig field is set to the value of the last call. diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/internal/internal.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/internal/internal.go index d71561a0bf..12c03ff097 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/internal/internal.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/internal/internal.go @@ -462,6 +462,9 @@ var schemaYAML = typed.YAMLObject(`types: - name: nodeDNSIP type: scalar: string + - name: vipManagement + type: + scalar: string - name: com.github.openshift.api.config.v1.BasicAuthIdentityProvider map: fields: @@ -1546,6 +1549,9 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - key + - name: universeDomain + type: + scalar: string - name: com.github.openshift.api.config.v1.GCPResourceLabel map: fields: @@ -4344,13 +4350,13 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: com.github.openshift.api.config.v1.VaultTLSConfig default: {} - - name: transitKey + - name: vaultAddress type: scalar: string - - name: transitMount + - name: vaultAuthNamespace type: scalar: string - - name: vaultAddress + - name: vaultKeyPath type: scalar: string - name: vaultNamespace @@ -5001,6 +5007,10 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorCpufreqConfig default: {} + - name: deviceMapperMultipath + type: + namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorDeviceMapperMultipathConfig + default: {} - name: ethtool type: namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorEthtoolConfig @@ -5021,6 +5031,10 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNetDevConfig default: {} + - name: nvmExpressSubsystem + type: + namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNVMExpressSubsystemConfig + default: {} - name: processes type: namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorProcessesConfig @@ -5037,12 +5051,22 @@ var schemaYAML = typed.YAMLObject(`types: type: namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorTcpStatConfig default: {} + - name: zoneinfo + type: + namedType: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorZoneinfoConfig + default: {} - name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorCpufreqConfig map: fields: - name: collectionPolicy type: scalar: string +- name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorDeviceMapperMultipathConfig + map: + fields: + - name: collectionPolicy + type: + scalar: string - name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorEthtoolConfig map: fields: @@ -5061,6 +5085,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: collectionPolicy type: scalar: string +- name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNVMExpressSubsystemConfig + map: + fields: + - name: collectionPolicy + type: + scalar: string - name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorNetClassCollectConfig map: fields: @@ -5130,6 +5160,12 @@ var schemaYAML = typed.YAMLObject(`types: - name: collectionPolicy type: scalar: string +- name: com.github.openshift.api.config.v1alpha1.NodeExporterCollectorZoneinfoConfig + map: + fields: + - name: collectionPolicy + type: + scalar: string - name: com.github.openshift.api.config.v1alpha1.NodeExporterConfig map: fields: @@ -5572,6 +5608,9 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - name + - name: messageVersion + type: + scalar: string - name: metadataConfig type: namedType: com.github.openshift.api.config.v1alpha1.MetadataConfig diff --git a/vendor/github.com/openshift/client-go/config/applyconfigurations/utils.go b/vendor/github.com/openshift/client-go/config/applyconfigurations/utils.go index e849c0e45c..62dd8d61f4 100644 --- a/vendor/github.com/openshift/client-go/config/applyconfigurations/utils.go +++ b/vendor/github.com/openshift/client-go/config/applyconfigurations/utils.go @@ -590,6 +590,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &configv1alpha1.NodeExporterCollectorConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorCpufreqConfig"): return &configv1alpha1.NodeExporterCollectorCpufreqConfigApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorDeviceMapperMultipathConfig"): + return &configv1alpha1.NodeExporterCollectorDeviceMapperMultipathConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorEthtoolConfig"): return &configv1alpha1.NodeExporterCollectorEthtoolConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorKSMDConfig"): @@ -602,6 +604,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &configv1alpha1.NodeExporterCollectorNetClassConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorNetDevConfig"): return &configv1alpha1.NodeExporterCollectorNetDevConfigApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorNVMExpressSubsystemConfig"): + return &configv1alpha1.NodeExporterCollectorNVMExpressSubsystemConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorProcessesConfig"): return &configv1alpha1.NodeExporterCollectorProcessesConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorSoftirqsConfig"): @@ -612,6 +616,8 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &configv1alpha1.NodeExporterCollectorSystemdConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorTcpStatConfig"): return &configv1alpha1.NodeExporterCollectorTcpStatConfigApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterCollectorZoneinfoConfig"): + return &configv1alpha1.NodeExporterCollectorZoneinfoConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("NodeExporterConfig"): return &configv1alpha1.NodeExporterConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("OAuth2"): diff --git a/vendor/github.com/openshift/client-go/machineconfiguration/applyconfigurations/machineconfiguration/v1/controllerconfigspec.go b/vendor/github.com/openshift/client-go/machineconfiguration/applyconfigurations/machineconfiguration/v1/controllerconfigspec.go index f67b3365ff..944100958c 100644 --- a/vendor/github.com/openshift/client-go/machineconfiguration/applyconfigurations/machineconfiguration/v1/controllerconfigspec.go +++ b/vendor/github.com/openshift/client-go/machineconfiguration/applyconfigurations/machineconfiguration/v1/controllerconfigspec.go @@ -42,6 +42,14 @@ type ControllerConfigSpecApplyConfiguration struct { InternalRegistryPullSecret []byte `json:"internalRegistryPullSecret,omitempty"` // images is map of images that are used by the controller to render templates under ./templates/ Images map[string]string `json:"images,omitempty"` + // bgpVIPPeersJSON carries the BGP VIP peer configuration (the config.json + // payload of the bgp-vip-config ConfigMap) for rendering the frr-k8s + // static pod peer file on control plane nodes. Only set when BGP-based + // VIP management is enabled. + // When omitted, BGP-based VIP management is not configured and no + // frr-k8s peer file is rendered. + // When set, the value must be between 1 and 65536 characters long. + BGPVIPPeersJSON *string `json:"bgpVIPPeersJSON,omitempty"` // baseOSContainerImage is the new-format container image for operating system updates. BaseOSContainerImage *string `json:"baseOSContainerImage,omitempty"` // baseOSExtensionsContainerImage is the matching extensions container for the new-format container @@ -204,6 +212,14 @@ func (b *ControllerConfigSpecApplyConfiguration) WithImages(entries map[string]s return b } +// WithBGPVIPPeersJSON sets the BGPVIPPeersJSON 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 BGPVIPPeersJSON field is set to the value of the last call. +func (b *ControllerConfigSpecApplyConfiguration) WithBGPVIPPeersJSON(value string) *ControllerConfigSpecApplyConfiguration { + b.BGPVIPPeersJSON = &value + return b +} + // WithBaseOSContainerImage sets the BaseOSContainerImage 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 BaseOSContainerImage field is set to the value of the last call. diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/internal/internal.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/internal/internal.go index 7e41cc30bf..bbc2e8ad6c 100644 --- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/internal/internal.go +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/internal/internal.go @@ -2192,17 +2192,18 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - nodeName - - keyId + - keyID + - name: preflight + type: + namedType: com.github.openshift.api.operator.v1.KMSPreflightCheck + default: {} - name: com.github.openshift.api.operator.v1.KMSPluginHealthReport map: fields: - name: detail type: scalar: string - - name: kekId - type: - scalar: string - - name: keyId + - name: keyID type: scalar: string - name: lastCheckedTime @@ -2211,6 +2212,31 @@ var schemaYAML = typed.YAMLObject(`types: - name: nodeName type: scalar: string + - name: remoteKeyID + type: + scalar: string + - name: status + type: + scalar: string +- name: com.github.openshift.api.operator.v1.KMSPreflightCheck + map: + fields: + - name: observedConfigHash + type: + scalar: string + - name: result + type: + namedType: com.github.openshift.api.operator.v1.KMSPreflightResult + default: {} +- name: com.github.openshift.api.operator.v1.KMSPreflightResult + map: + fields: + - name: configHash + type: + scalar: string + - name: remoteKeyID + type: + scalar: string - name: status type: scalar: string @@ -3181,6 +3207,9 @@ var schemaYAML = typed.YAMLObject(`types: type: scalar: string default: "" + - name: nodeUID + type: + scalar: string - name: targetRevision type: scalar: numeric @@ -4453,6 +4482,12 @@ var schemaYAML = typed.YAMLObject(`types: elementRelationship: associative keys: - type +- name: com.github.openshift.api.operator.v1alpha1.GatewayAPIIngressConfig + map: + fields: + - name: managementMode + type: + scalar: string - name: com.github.openshift.api.operator.v1alpha1.ImageContentSourcePolicy map: fields: @@ -4479,6 +4514,48 @@ var schemaYAML = typed.YAMLObject(`types: elementType: namedType: com.github.openshift.api.operator.v1alpha1.RepositoryDigestMirrors elementRelationship: atomic +- name: com.github.openshift.api.operator.v1alpha1.Ingress + map: + fields: + - name: apiVersion + type: + scalar: string + - name: kind + type: + scalar: string + - name: metadata + type: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.ObjectMeta + default: {} + - name: spec + type: + namedType: com.github.openshift.api.operator.v1alpha1.IngressSpec + default: {} + - name: status + type: + namedType: com.github.openshift.api.operator.v1alpha1.IngressStatus + default: {} +- name: com.github.openshift.api.operator.v1alpha1.IngressSpec + map: + fields: + - name: gatewayAPI + type: + namedType: com.github.openshift.api.operator.v1alpha1.GatewayAPIIngressConfig + default: {} +- name: com.github.openshift.api.operator.v1alpha1.IngressStatus + map: + fields: + - name: conditions + type: + list: + elementType: + namedType: io.k8s.apimachinery.pkg.apis.meta.v1.Condition + elementRelationship: associative + keys: + - type + - name: observedGeneration + type: + scalar: numeric - name: com.github.openshift.api.operator.v1alpha1.OLM map: fields: diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmsencryptionstatus.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmsencryptionstatus.go index 34297c2140..11e54164ad 100644 --- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmsencryptionstatus.go +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmsencryptionstatus.go @@ -7,8 +7,14 @@ package v1 type KMSEncryptionStatusApplyConfiguration struct { // healthReports contains all KMS plugin health reports. // When omitted, no health reports are available. - // Each entry must have a unique combination of nodeName and keyId. + // Each entry must have a unique combination of nodeName and keyID. HealthReports []KMSPluginHealthReportApplyConfiguration `json:"healthReports,omitempty"` + // preflight contains the state of KMS preflight validation for this operator. + // The preflight validates the KMS provider configuration before it is used + // to create a new encryption key, catching configuration issues early such + // as incorrect login credentials or an unreachable Vault service. + // When omitted, no preflight validation is in progress. + Preflight *KMSPreflightCheckApplyConfiguration `json:"preflight,omitempty"` } // KMSEncryptionStatusApplyConfiguration constructs a declarative configuration of the KMSEncryptionStatus type for use with @@ -29,3 +35,11 @@ func (b *KMSEncryptionStatusApplyConfiguration) WithHealthReports(values ...*KMS } return b } + +// WithPreflight sets the Preflight 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 Preflight field is set to the value of the last call. +func (b *KMSEncryptionStatusApplyConfiguration) WithPreflight(value *KMSPreflightCheckApplyConfiguration) *KMSEncryptionStatusApplyConfiguration { + b.Preflight = value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspluginhealthreport.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspluginhealthreport.go index 40d8eac773..023f134a95 100644 --- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspluginhealthreport.go +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspluginhealthreport.go @@ -11,25 +11,25 @@ import ( // with apply. type KMSPluginHealthReportApplyConfiguration struct { // nodeName is the name of the node this instance of the plugin runs on. - // The combination of nodeName and keyId makes this health report unique. + // The combination of nodeName and keyID makes this health report unique. // The value must be a valid Kubernetes node name: a lowercase RFC 1123 subdomain // consisting of lowercase alphanumeric characters, '-' or '.', starting and ending with // an alphanumeric character, and be at most 253 characters in length. NodeName *string `json:"nodeName,omitempty"` - // keyId is the encryption-key-secret id (kms-{keyId}.sock), a unique identifier of the plugin on that node. + // keyID is the encryption-key-secret id (kms-{keyID}.sock), a unique identifier of the plugin on that node. // This is not a cryptographic key used to encrypt/decrypt any resources. // The value must be between 1 and 512 characters. - KeyId *string `json:"keyId,omitempty"` + KeyID *string `json:"keyID,omitempty"` // status contains a health indicator for the respective KMS plugin // The field can have three states: healthy, unhealthy, error. // With error and unhealthy containing additional information in Detail. Status *operatorv1.KMSPluginHealthStatus `json:"status,omitempty"` // lastCheckedTime is a timestamp of when the probe was last checked. LastCheckedTime *metav1.Time `json:"lastCheckedTime,omitempty"` - // kekId refers to the remote KEK id from KMS v2 StatusResponse.key_id. + // remoteKeyID refers to the remote key identifier from KMS v2 StatusResponse.key_id. // This is not a cryptographic key, but a unique representation of the KEK. // The value must be between 1 and 1024 characters. - KEKId *string `json:"kekId,omitempty"` + RemoteKeyID *string `json:"remoteKeyID,omitempty"` // detail contains additional error/health information for the respective KMS plugin. // When omitted, no additional error or health information is provided. // When set, the value must be between 1 and 1024 characters. @@ -50,11 +50,11 @@ func (b *KMSPluginHealthReportApplyConfiguration) WithNodeName(value string) *KM return b } -// WithKeyId sets the KeyId field in the declarative configuration to the given value +// WithKeyID sets the KeyID 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 KeyId field is set to the value of the last call. -func (b *KMSPluginHealthReportApplyConfiguration) WithKeyId(value string) *KMSPluginHealthReportApplyConfiguration { - b.KeyId = &value +// If called multiple times, the KeyID field is set to the value of the last call. +func (b *KMSPluginHealthReportApplyConfiguration) WithKeyID(value string) *KMSPluginHealthReportApplyConfiguration { + b.KeyID = &value return b } @@ -74,11 +74,11 @@ func (b *KMSPluginHealthReportApplyConfiguration) WithLastCheckedTime(value meta return b } -// WithKEKId sets the KEKId field in the declarative configuration to the given value +// WithRemoteKeyID sets the RemoteKeyID 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 KEKId field is set to the value of the last call. -func (b *KMSPluginHealthReportApplyConfiguration) WithKEKId(value string) *KMSPluginHealthReportApplyConfiguration { - b.KEKId = &value +// If called multiple times, the RemoteKeyID field is set to the value of the last call. +func (b *KMSPluginHealthReportApplyConfiguration) WithRemoteKeyID(value string) *KMSPluginHealthReportApplyConfiguration { + b.RemoteKeyID = &value return b } diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightcheck.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightcheck.go new file mode 100644 index 0000000000..020e88e998 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightcheck.go @@ -0,0 +1,42 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +// KMSPreflightCheckApplyConfiguration represents a declarative configuration of the KMSPreflightCheck type for use +// with apply. +// +// KMSPreflightCheck describes a preflight validation request and its result. +type KMSPreflightCheckApplyConfiguration struct { + // observedConfigHash is a hash of the KMS provider configuration and + // its referenced resources that has been observed and requires preflight + // validation before a new encryption key can be created. + // The value must be exactly 8 characters. + ObservedConfigHash *string `json:"observedConfigHash,omitempty"` + // result contains the outcome of the most recent preflight check. + // Preflight is considered passed when result.status is Succeeded and + // result.configHash matches observedConfigHash. + // When omitted, no preflight check result has been reported yet. + Result *KMSPreflightResultApplyConfiguration `json:"result,omitempty"` +} + +// KMSPreflightCheckApplyConfiguration constructs a declarative configuration of the KMSPreflightCheck type for use with +// apply. +func KMSPreflightCheck() *KMSPreflightCheckApplyConfiguration { + return &KMSPreflightCheckApplyConfiguration{} +} + +// WithObservedConfigHash sets the ObservedConfigHash 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 ObservedConfigHash field is set to the value of the last call. +func (b *KMSPreflightCheckApplyConfiguration) WithObservedConfigHash(value string) *KMSPreflightCheckApplyConfiguration { + b.ObservedConfigHash = &value + return b +} + +// WithResult sets the Result 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 Result field is set to the value of the last call. +func (b *KMSPreflightCheckApplyConfiguration) WithResult(value *KMSPreflightResultApplyConfiguration) *KMSPreflightCheckApplyConfiguration { + b.Result = value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightresult.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightresult.go new file mode 100644 index 0000000000..a5c86c13a2 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/kmspreflightresult.go @@ -0,0 +1,59 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1 + +import ( + operatorv1 "github.com/openshift/api/operator/v1" +) + +// KMSPreflightResultApplyConfiguration represents a declarative configuration of the KMSPreflightResult type for use +// with apply. +// +// KMSPreflightResult contains the outcome of a preflight validation. +type KMSPreflightResultApplyConfiguration struct { + // status indicates the outcome of the preflight check. + // Succeeded means the KMS plugin responded to Status, Encrypt, and + // Decrypt calls successfully. + // Failed means the validation did not pass. + Status *operatorv1.KMSPreflightResultStatus `json:"status,omitempty"` + // configHash is the hash of the configuration that was validated. + // This is compared against observedConfigHash to confirm the result + // corresponds to the current configuration. + // The value must be exactly 8 characters. + ConfigHash *string `json:"configHash,omitempty"` + // remoteKeyID is the remote key encryption key identifier from KMS v2 + // StatusResponse.key_id. This is not a cryptographic key, but a unique + // representation of the remote key used to encrypt data. + // The value must be between 1 and 1024 characters. + RemoteKeyID *string `json:"remoteKeyID,omitempty"` +} + +// KMSPreflightResultApplyConfiguration constructs a declarative configuration of the KMSPreflightResult type for use with +// apply. +func KMSPreflightResult() *KMSPreflightResultApplyConfiguration { + return &KMSPreflightResultApplyConfiguration{} +} + +// WithStatus sets the Status 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 Status field is set to the value of the last call. +func (b *KMSPreflightResultApplyConfiguration) WithStatus(value operatorv1.KMSPreflightResultStatus) *KMSPreflightResultApplyConfiguration { + b.Status = &value + return b +} + +// WithConfigHash sets the ConfigHash 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 ConfigHash field is set to the value of the last call. +func (b *KMSPreflightResultApplyConfiguration) WithConfigHash(value string) *KMSPreflightResultApplyConfiguration { + b.ConfigHash = &value + return b +} + +// WithRemoteKeyID sets the RemoteKeyID 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 RemoteKeyID field is set to the value of the last call. +func (b *KMSPreflightResultApplyConfiguration) WithRemoteKeyID(value string) *KMSPreflightResultApplyConfiguration { + b.RemoteKeyID = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/nodestatus.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/nodestatus.go index f107c370d2..ab2db04ade 100644 --- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/nodestatus.go +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1/nodestatus.go @@ -13,6 +13,13 @@ import ( type NodeStatusApplyConfiguration struct { // nodeName is the name of the node NodeName *string `json:"nodeName,omitempty"` + // nodeUID is the UID of the node. + // This field is used to detect that a node has been deleted and recreated + // with the same name. When the UID changes, it indicates the node is a + // new instance and the controller should treat this status entry as stale. + // When omitted, UID-based node replacement detection is not available + // for this entry. + NodeUID *string `json:"nodeUID,omitempty"` // currentRevision is the generation of the most recently successful deployment. // Can not be set on creation of a nodeStatus. Updates must only increase the value. CurrentRevision *int32 `json:"currentRevision,omitempty"` @@ -47,6 +54,14 @@ func (b *NodeStatusApplyConfiguration) WithNodeName(value string) *NodeStatusApp return b } +// WithNodeUID sets the NodeUID 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 NodeUID field is set to the value of the last call. +func (b *NodeStatusApplyConfiguration) WithNodeUID(value string) *NodeStatusApplyConfiguration { + b.NodeUID = &value + return b +} + // WithCurrentRevision sets the CurrentRevision 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 CurrentRevision field is set to the value of the last call. diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/gatewayapiingressconfig.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/gatewayapiingressconfig.go new file mode 100644 index 0000000000..c2c03ed463 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/gatewayapiingressconfig.go @@ -0,0 +1,46 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + operatorv1alpha1 "github.com/openshift/api/operator/v1alpha1" +) + +// GatewayAPIIngressConfigApplyConfiguration represents a declarative configuration of the GatewayAPIIngressConfig type for use +// with apply. +// +// GatewayAPIIngressConfig holds configuration for Gateway API integration in the +// Cluster Ingress Operator. +type GatewayAPIIngressConfigApplyConfiguration struct { + // managementMode specifies how the Cluster Ingress Operator manages Gateway API + // Custom Resource Definitions (CRDs), the OpenShift Gateway API implementation, + // and its Gateway API controllers. + // + // Allowed values are "Managed" and "Unmanaged". + // + // When omitted or set to "Managed", the ingress operator installs, owns, and + // upgrades the Gateway API CRDs, protects them with a Validating Admission + // Policy, and deploys the OpenShift Gateway API implementation and its Gateway + // API controllers. + // + // When set to "Unmanaged", the ingress operator does not install or manage + // Gateway API CRDs and does not deploy the OpenShift Gateway API implementation + // or its Gateway API controllers. The cluster administrator or a third-party + // product is responsible for providing their own CRDs and Gateway controller. + // The ingress operator reports observational status only. + ManagementMode *operatorv1alpha1.GatewayAPIManagementMode `json:"managementMode,omitempty"` +} + +// GatewayAPIIngressConfigApplyConfiguration constructs a declarative configuration of the GatewayAPIIngressConfig type for use with +// apply. +func GatewayAPIIngressConfig() *GatewayAPIIngressConfigApplyConfiguration { + return &GatewayAPIIngressConfigApplyConfiguration{} +} + +// WithManagementMode sets the ManagementMode 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 ManagementMode field is set to the value of the last call. +func (b *GatewayAPIIngressConfigApplyConfiguration) WithManagementMode(value operatorv1alpha1.GatewayAPIManagementMode) *GatewayAPIIngressConfigApplyConfiguration { + b.ManagementMode = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingress.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingress.go new file mode 100644 index 0000000000..d97b01aa95 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingress.go @@ -0,0 +1,278 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + operatorv1alpha1 "github.com/openshift/api/operator/v1alpha1" + internal "github.com/openshift/client-go/operator/applyconfigurations/internal" + metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + managedfields "k8s.io/apimachinery/pkg/util/managedfields" + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressApplyConfiguration represents a declarative configuration of the Ingress type for use +// with apply. +// +// Ingress contains configuration options specific to the Ingress Operator itself, +// including how it manages Gateway API integration. +// +// 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. +type IngressApplyConfiguration struct { + v1.TypeMetaApplyConfiguration `json:",inline"` + // metadata is the standard object's metadata. + // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata + *v1.ObjectMetaApplyConfiguration `json:"metadata,omitempty"` + // spec holds user settable values for configuration. + Spec *IngressSpecApplyConfiguration `json:"spec,omitempty"` + // status holds observed values from the cluster. + Status *IngressStatusApplyConfiguration `json:"status,omitempty"` +} + +// Ingress constructs a declarative configuration of the Ingress type for use with +// apply. +func Ingress(name string) *IngressApplyConfiguration { + b := &IngressApplyConfiguration{} + b.WithName(name) + b.WithKind("Ingress") + b.WithAPIVersion("operator.openshift.io/v1alpha1") + return b +} + +// ExtractIngressFrom extracts the applied configuration owned by fieldManager from +// ingress for the specified subresource. Pass an empty string for subresource to extract +// the main resource. Common subresources include "status", "scale", etc. +// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API. +// ExtractIngressFrom provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +func ExtractIngressFrom(ingress *operatorv1alpha1.Ingress, fieldManager string, subresource string) (*IngressApplyConfiguration, error) { + b := &IngressApplyConfiguration{} + err := managedfields.ExtractInto(ingress, internal.Parser().Type("com.github.openshift.api.operator.v1alpha1.Ingress"), fieldManager, b, subresource) + if err != nil { + return nil, err + } + b.WithName(ingress.Name) + + b.WithKind("Ingress") + b.WithAPIVersion("operator.openshift.io/v1alpha1") + return b, nil +} + +// ExtractIngress extracts the applied configuration owned by fieldManager from +// ingress. If no managedFields are found in ingress for fieldManager, a +// IngressApplyConfiguration is returned with only the Name, Namespace (if applicable), +// APIVersion and Kind populated. It is possible that no managed fields were found for because other +// field managers have taken ownership of all the fields previously owned by fieldManager, or because +// the fieldManager never owned fields any fields. +// ingress must be a unmodified Ingress API object that was retrieved from the Kubernetes API. +// ExtractIngress provides a way to perform a extract/modify-in-place/apply workflow. +// Note that an extracted apply configuration will contain fewer fields than what the fieldManager previously +// applied if another fieldManager has updated or force applied any of the previously applied fields. +func ExtractIngress(ingress *operatorv1alpha1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) { + return ExtractIngressFrom(ingress, fieldManager, "") +} + +// ExtractIngressStatus extracts the applied configuration owned by fieldManager from +// ingress for the status subresource. +func ExtractIngressStatus(ingress *operatorv1alpha1.Ingress, fieldManager string) (*IngressApplyConfiguration, error) { + return ExtractIngressFrom(ingress, fieldManager, "status") +} + +func (b IngressApplyConfiguration) IsApplyConfiguration() {} + +// WithKind sets the Kind 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 Kind field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithKind(value string) *IngressApplyConfiguration { + b.TypeMetaApplyConfiguration.Kind = &value + return b +} + +// WithAPIVersion sets the APIVersion 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 APIVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithAPIVersion(value string) *IngressApplyConfiguration { + b.TypeMetaApplyConfiguration.APIVersion = &value + return b +} + +// WithName sets the Name 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 Name field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Name = &value + return b +} + +// WithGenerateName sets the GenerateName 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 GenerateName field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGenerateName(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.GenerateName = &value + return b +} + +// WithNamespace sets the Namespace 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 Namespace field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithNamespace(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Namespace = &value + return b +} + +// WithUID sets the UID 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 UID field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithUID(value types.UID) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.UID = &value + return b +} + +// WithResourceVersion sets the ResourceVersion 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 ResourceVersion field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithResourceVersion(value string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.ResourceVersion = &value + return b +} + +// WithGeneration sets the Generation 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 Generation field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithGeneration(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.Generation = &value + return b +} + +// WithCreationTimestamp sets the CreationTimestamp 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 CreationTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithCreationTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.CreationTimestamp = &value + return b +} + +// WithDeletionTimestamp sets the DeletionTimestamp 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 DeletionTimestamp field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionTimestamp(value metav1.Time) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionTimestamp = &value + return b +} + +// WithDeletionGracePeriodSeconds sets the DeletionGracePeriodSeconds 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 DeletionGracePeriodSeconds field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithDeletionGracePeriodSeconds(value int64) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + b.ObjectMetaApplyConfiguration.DeletionGracePeriodSeconds = &value + return b +} + +// WithLabels puts the entries into the Labels field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Labels field, +// overwriting an existing map entries in Labels field with the same key. +func (b *IngressApplyConfiguration) WithLabels(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Labels == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Labels = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Labels[k] = v + } + return b +} + +// WithAnnotations puts the entries into the Annotations field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, the entries provided by each call will be put on the Annotations field, +// overwriting an existing map entries in Annotations field with the same key. +func (b *IngressApplyConfiguration) WithAnnotations(entries map[string]string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + if b.ObjectMetaApplyConfiguration.Annotations == nil && len(entries) > 0 { + b.ObjectMetaApplyConfiguration.Annotations = make(map[string]string, len(entries)) + } + for k, v := range entries { + b.ObjectMetaApplyConfiguration.Annotations[k] = v + } + return b +} + +// WithOwnerReferences adds the given value to the OwnerReferences field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the OwnerReferences field. +func (b *IngressApplyConfiguration) WithOwnerReferences(values ...*v1.OwnerReferenceApplyConfiguration) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + if values[i] == nil { + panic("nil value passed to WithOwnerReferences") + } + b.ObjectMetaApplyConfiguration.OwnerReferences = append(b.ObjectMetaApplyConfiguration.OwnerReferences, *values[i]) + } + return b +} + +// WithFinalizers adds the given value to the Finalizers field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Finalizers field. +func (b *IngressApplyConfiguration) WithFinalizers(values ...string) *IngressApplyConfiguration { + b.ensureObjectMetaApplyConfigurationExists() + for i := range values { + b.ObjectMetaApplyConfiguration.Finalizers = append(b.ObjectMetaApplyConfiguration.Finalizers, values[i]) + } + return b +} + +func (b *IngressApplyConfiguration) ensureObjectMetaApplyConfigurationExists() { + if b.ObjectMetaApplyConfiguration == nil { + b.ObjectMetaApplyConfiguration = &v1.ObjectMetaApplyConfiguration{} + } +} + +// WithSpec sets the Spec 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 Spec field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithSpec(value *IngressSpecApplyConfiguration) *IngressApplyConfiguration { + b.Spec = value + return b +} + +// WithStatus sets the Status 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 Status field is set to the value of the last call. +func (b *IngressApplyConfiguration) WithStatus(value *IngressStatusApplyConfiguration) *IngressApplyConfiguration { + b.Status = value + return b +} + +// GetKind retrieves the value of the Kind field in the declarative configuration. +func (b *IngressApplyConfiguration) GetKind() *string { + return b.TypeMetaApplyConfiguration.Kind +} + +// GetAPIVersion retrieves the value of the APIVersion field in the declarative configuration. +func (b *IngressApplyConfiguration) GetAPIVersion() *string { + return b.TypeMetaApplyConfiguration.APIVersion +} + +// GetName retrieves the value of the Name field in the declarative configuration. +func (b *IngressApplyConfiguration) GetName() *string { + b.ensureObjectMetaApplyConfigurationExists() + return b.ObjectMetaApplyConfiguration.Name +} + +// GetNamespace retrieves the value of the Namespace field in the declarative configuration. +func (b *IngressApplyConfiguration) GetNamespace() *string { + b.ensureObjectMetaApplyConfigurationExists() + return b.ObjectMetaApplyConfiguration.Namespace +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressspec.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressspec.go new file mode 100644 index 0000000000..6fea3908d1 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressspec.go @@ -0,0 +1,28 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +// IngressSpecApplyConfiguration represents a declarative configuration of the IngressSpec type for use +// with apply. +// +// IngressSpec is the specification of the desired behavior of the Ingress Operator. +type IngressSpecApplyConfiguration struct { + // gatewayAPI holds configuration for Gateway API integration, including how the + // ingress operator manages Gateway API CRDs, the OpenShift Gateway API + // implementation, and its Gateway API controllers. + GatewayAPI *GatewayAPIIngressConfigApplyConfiguration `json:"gatewayAPI,omitempty"` +} + +// IngressSpecApplyConfiguration constructs a declarative configuration of the IngressSpec type for use with +// apply. +func IngressSpec() *IngressSpecApplyConfiguration { + return &IngressSpecApplyConfiguration{} +} + +// WithGatewayAPI sets the GatewayAPI 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 GatewayAPI field is set to the value of the last call. +func (b *IngressSpecApplyConfiguration) WithGatewayAPI(value *GatewayAPIIngressConfigApplyConfiguration) *IngressSpecApplyConfiguration { + b.GatewayAPI = value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressstatus.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressstatus.go new file mode 100644 index 0000000000..9af1720f83 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1/ingressstatus.go @@ -0,0 +1,57 @@ +// Code generated by applyconfiguration-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + v1 "k8s.io/client-go/applyconfigurations/meta/v1" +) + +// IngressStatusApplyConfiguration represents a declarative configuration of the IngressStatus type for use +// with apply. +// +// IngressStatus defines the observed status of the Ingress Operator. +type IngressStatusApplyConfiguration struct { + // conditions is a list of conditions and their status. + // + // Gateway API CRD management conditions are reported here with the "GatewayAPI" prefix: + // + // * "GatewayAPICRDsManaged" indicates whether the ingress operator is actively + // managing Gateway API CRDs. + // * "GatewayAPICRDsPresent" indicates whether Gateway API CRDs exist on the + // cluster. + // * "GatewayAPICRDsCompliant" indicates whether the installed CRDs match the + // version expected by this ingress operator release. + Conditions []v1.ConditionApplyConfiguration `json:"conditions,omitempty"` + // observedGeneration represents the most recent generation observed by the operator and specifies the version of + // the spec field currently being synced. + // + // When omitted, the operator has not yet observed the resource. + ObservedGeneration *int64 `json:"observedGeneration,omitempty"` +} + +// IngressStatusApplyConfiguration constructs a declarative configuration of the IngressStatus type for use with +// apply. +func IngressStatus() *IngressStatusApplyConfiguration { + return &IngressStatusApplyConfiguration{} +} + +// WithConditions adds the given value to the Conditions field in the declarative configuration +// and returns the receiver, so that objects can be build by chaining "With" function invocations. +// If called multiple times, values provided by each call will be appended to the Conditions field. +func (b *IngressStatusApplyConfiguration) WithConditions(values ...*v1.ConditionApplyConfiguration) *IngressStatusApplyConfiguration { + for i := range values { + if values[i] == nil { + panic("nil value passed to WithConditions") + } + b.Conditions = append(b.Conditions, *values[i]) + } + return b +} + +// WithObservedGeneration sets the ObservedGeneration 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 ObservedGeneration field is set to the value of the last call. +func (b *IngressStatusApplyConfiguration) WithObservedGeneration(value int64) *IngressStatusApplyConfiguration { + b.ObservedGeneration = &value + return b +} diff --git a/vendor/github.com/openshift/client-go/operator/applyconfigurations/utils.go b/vendor/github.com/openshift/client-go/operator/applyconfigurations/utils.go index bd16457a7a..30d79b6ec8 100644 --- a/vendor/github.com/openshift/client-go/operator/applyconfigurations/utils.go +++ b/vendor/github.com/openshift/client-go/operator/applyconfigurations/utils.go @@ -246,6 +246,10 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &operatorv1.KMSEncryptionStatusApplyConfiguration{} case v1.SchemeGroupVersion.WithKind("KMSPluginHealthReport"): return &operatorv1.KMSPluginHealthReportApplyConfiguration{} + case v1.SchemeGroupVersion.WithKind("KMSPreflightCheck"): + return &operatorv1.KMSPreflightCheckApplyConfiguration{} + case v1.SchemeGroupVersion.WithKind("KMSPreflightResult"): + return &operatorv1.KMSPreflightResultApplyConfiguration{} case v1.SchemeGroupVersion.WithKind("KubeAPIServer"): return &operatorv1.KubeAPIServerApplyConfiguration{} case v1.SchemeGroupVersion.WithKind("KubeAPIServerSpec"): @@ -490,10 +494,18 @@ func ForKind(kind schema.GroupVersionKind) interface{} { return &operatorv1alpha1.EtcdBackupSpecApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("EtcdBackupStatus"): return &operatorv1alpha1.EtcdBackupStatusApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("GatewayAPIIngressConfig"): + return &operatorv1alpha1.GatewayAPIIngressConfigApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("ImageContentSourcePolicy"): return &operatorv1alpha1.ImageContentSourcePolicyApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("ImageContentSourcePolicySpec"): return &operatorv1alpha1.ImageContentSourcePolicySpecApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("Ingress"): + return &operatorv1alpha1.IngressApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("IngressSpec"): + return &operatorv1alpha1.IngressSpecApplyConfiguration{} + case v1alpha1.SchemeGroupVersion.WithKind("IngressStatus"): + return &operatorv1alpha1.IngressStatusApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("OLM"): return &operatorv1alpha1.OLMApplyConfiguration{} case v1alpha1.SchemeGroupVersion.WithKind("OLMSpec"): diff --git a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_ingress.go b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_ingress.go new file mode 100644 index 0000000000..f8cb0f4332 --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_ingress.go @@ -0,0 +1,35 @@ +// Code generated by client-gen. DO NOT EDIT. + +package fake + +import ( + v1alpha1 "github.com/openshift/api/operator/v1alpha1" + operatorv1alpha1 "github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1" + typedoperatorv1alpha1 "github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1" + gentype "k8s.io/client-go/gentype" +) + +// fakeIngresses implements IngressInterface +type fakeIngresses struct { + *gentype.FakeClientWithListAndApply[*v1alpha1.Ingress, *v1alpha1.IngressList, *operatorv1alpha1.IngressApplyConfiguration] + Fake *FakeOperatorV1alpha1 +} + +func newFakeIngresses(fake *FakeOperatorV1alpha1) typedoperatorv1alpha1.IngressInterface { + return &fakeIngresses{ + gentype.NewFakeClientWithListAndApply[*v1alpha1.Ingress, *v1alpha1.IngressList, *operatorv1alpha1.IngressApplyConfiguration]( + fake.Fake, + "", + v1alpha1.SchemeGroupVersion.WithResource("ingresses"), + v1alpha1.SchemeGroupVersion.WithKind("Ingress"), + func() *v1alpha1.Ingress { return &v1alpha1.Ingress{} }, + func() *v1alpha1.IngressList { return &v1alpha1.IngressList{} }, + func(dst, src *v1alpha1.IngressList) { dst.ListMeta = src.ListMeta }, + func(list *v1alpha1.IngressList) []*v1alpha1.Ingress { return gentype.ToPointerSlice(list.Items) }, + func(list *v1alpha1.IngressList, items []*v1alpha1.Ingress) { + list.Items = gentype.FromPointerSlice(items) + }, + ), + fake, + } +} diff --git a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_operator_client.go b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_operator_client.go index 67792010a4..2abd4defc4 100644 --- a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_operator_client.go +++ b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/fake/fake_operator_client.go @@ -28,6 +28,10 @@ func (c *FakeOperatorV1alpha1) ImageContentSourcePolicies() v1alpha1.ImageConten return newFakeImageContentSourcePolicies(c) } +func (c *FakeOperatorV1alpha1) Ingresses() v1alpha1.IngressInterface { + return newFakeIngresses(c) +} + func (c *FakeOperatorV1alpha1) OLMs() v1alpha1.OLMInterface { return newFakeOLMs(c) } diff --git a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/generated_expansion.go b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/generated_expansion.go index a19ef54dc1..09baa63c3d 100644 --- a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/generated_expansion.go +++ b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/generated_expansion.go @@ -10,4 +10,6 @@ type EtcdBackupExpansion interface{} type ImageContentSourcePolicyExpansion interface{} +type IngressExpansion interface{} + type OLMExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/ingress.go b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/ingress.go new file mode 100644 index 0000000000..5c84be3bee --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/ingress.go @@ -0,0 +1,58 @@ +// Code generated by client-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + + operatorv1alpha1 "github.com/openshift/api/operator/v1alpha1" + applyconfigurationsoperatorv1alpha1 "github.com/openshift/client-go/operator/applyconfigurations/operator/v1alpha1" + scheme "github.com/openshift/client-go/operator/clientset/versioned/scheme" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + types "k8s.io/apimachinery/pkg/types" + watch "k8s.io/apimachinery/pkg/watch" + gentype "k8s.io/client-go/gentype" +) + +// IngressesGetter has a method to return a IngressInterface. +// A group's client should implement this interface. +type IngressesGetter interface { + Ingresses() IngressInterface +} + +// IngressInterface has methods to work with Ingress resources. +type IngressInterface interface { + Create(ctx context.Context, ingress *operatorv1alpha1.Ingress, opts v1.CreateOptions) (*operatorv1alpha1.Ingress, error) + Update(ctx context.Context, ingress *operatorv1alpha1.Ingress, opts v1.UpdateOptions) (*operatorv1alpha1.Ingress, error) + // Add a +genclient:noStatus comment above the type to avoid generating UpdateStatus(). + UpdateStatus(ctx context.Context, ingress *operatorv1alpha1.Ingress, opts v1.UpdateOptions) (*operatorv1alpha1.Ingress, error) + Delete(ctx context.Context, name string, opts v1.DeleteOptions) error + DeleteCollection(ctx context.Context, opts v1.DeleteOptions, listOpts v1.ListOptions) error + Get(ctx context.Context, name string, opts v1.GetOptions) (*operatorv1alpha1.Ingress, error) + List(ctx context.Context, opts v1.ListOptions) (*operatorv1alpha1.IngressList, error) + Watch(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) + Patch(ctx context.Context, name string, pt types.PatchType, data []byte, opts v1.PatchOptions, subresources ...string) (result *operatorv1alpha1.Ingress, err error) + Apply(ctx context.Context, ingress *applyconfigurationsoperatorv1alpha1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *operatorv1alpha1.Ingress, err error) + // Add a +genclient:noStatus comment above the type to avoid generating ApplyStatus(). + ApplyStatus(ctx context.Context, ingress *applyconfigurationsoperatorv1alpha1.IngressApplyConfiguration, opts v1.ApplyOptions) (result *operatorv1alpha1.Ingress, err error) + IngressExpansion +} + +// ingresses implements IngressInterface +type ingresses struct { + *gentype.ClientWithListAndApply[*operatorv1alpha1.Ingress, *operatorv1alpha1.IngressList, *applyconfigurationsoperatorv1alpha1.IngressApplyConfiguration] +} + +// newIngresses returns a Ingresses +func newIngresses(c *OperatorV1alpha1Client) *ingresses { + return &ingresses{ + gentype.NewClientWithListAndApply[*operatorv1alpha1.Ingress, *operatorv1alpha1.IngressList, *applyconfigurationsoperatorv1alpha1.IngressApplyConfiguration]( + "ingresses", + c.RESTClient(), + scheme.ParameterCodec, + "", + func() *operatorv1alpha1.Ingress { return &operatorv1alpha1.Ingress{} }, + func() *operatorv1alpha1.IngressList { return &operatorv1alpha1.IngressList{} }, + ), + } +} diff --git a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/operator_client.go b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/operator_client.go index 6ed123d5e3..fd1b968a3b 100644 --- a/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/operator_client.go +++ b/vendor/github.com/openshift/client-go/operator/clientset/versioned/typed/operator/v1alpha1/operator_client.go @@ -16,6 +16,7 @@ type OperatorV1alpha1Interface interface { ClusterVersionOperatorsGetter EtcdBackupsGetter ImageContentSourcePoliciesGetter + IngressesGetter OLMsGetter } @@ -40,6 +41,10 @@ func (c *OperatorV1alpha1Client) ImageContentSourcePolicies() ImageContentSource return newImageContentSourcePolicies(c) } +func (c *OperatorV1alpha1Client) Ingresses() IngressInterface { + return newIngresses(c) +} + func (c *OperatorV1alpha1Client) OLMs() OLMInterface { return newOLMs(c) } diff --git a/vendor/github.com/openshift/client-go/operator/informers/externalversions/generic.go b/vendor/github.com/openshift/client-go/operator/informers/externalversions/generic.go index 327a1b6e89..7f5fe4eed8 100644 --- a/vendor/github.com/openshift/client-go/operator/informers/externalversions/generic.go +++ b/vendor/github.com/openshift/client-go/operator/informers/externalversions/generic.go @@ -94,6 +94,8 @@ func (f *sharedInformerFactory) ForResource(resource schema.GroupVersionResource return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1alpha1().EtcdBackups().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("imagecontentsourcepolicies"): return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1alpha1().ImageContentSourcePolicies().Informer()}, nil + case v1alpha1.SchemeGroupVersion.WithResource("ingresses"): + return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1alpha1().Ingresses().Informer()}, nil case v1alpha1.SchemeGroupVersion.WithResource("olms"): return &genericInformer{resource: resource.GroupResource(), informer: f.Operator().V1alpha1().OLMs().Informer()}, nil diff --git a/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/ingress.go b/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/ingress.go new file mode 100644 index 0000000000..6f132ffcaa --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/ingress.go @@ -0,0 +1,99 @@ +// Code generated by informer-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + context "context" + time "time" + + apioperatorv1alpha1 "github.com/openshift/api/operator/v1alpha1" + versioned "github.com/openshift/client-go/operator/clientset/versioned" + internalinterfaces "github.com/openshift/client-go/operator/informers/externalversions/internalinterfaces" + operatorv1alpha1 "github.com/openshift/client-go/operator/listers/operator/v1alpha1" + v1 "k8s.io/apimachinery/pkg/apis/meta/v1" + runtime "k8s.io/apimachinery/pkg/runtime" + schema "k8s.io/apimachinery/pkg/runtime/schema" + watch "k8s.io/apimachinery/pkg/watch" + cache "k8s.io/client-go/tools/cache" +) + +// IngressInformer provides access to a shared informer and lister for +// Ingresses. +type IngressInformer interface { + Informer() cache.SharedIndexInformer + Lister() operatorv1alpha1.IngressLister +} + +type ingressInformer struct { + factory internalinterfaces.SharedInformerFactory + tweakListOptions internalinterfaces.TweakListOptionsFunc +} + +// NewIngressInformer constructs a new informer for Ingress type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewIngressInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers) cache.SharedIndexInformer { + return NewIngressInformerWithOptions(client, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers}) +} + +// NewFilteredIngressInformer constructs a new informer for Ingress type. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewFilteredIngressInformer(client versioned.Interface, resyncPeriod time.Duration, indexers cache.Indexers, tweakListOptions internalinterfaces.TweakListOptionsFunc) cache.SharedIndexInformer { + return NewIngressInformerWithOptions(client, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: indexers, TweakListOptions: tweakListOptions}) +} + +// NewIngressInformerWithOptions constructs a new informer for Ingress type with additional options. +// Always prefer using an informer factory to get a shared informer instead of getting an independent +// one. This reduces memory footprint and number of connections to the server. +func NewIngressInformerWithOptions(client versioned.Interface, options internalinterfaces.InformerOptions) cache.SharedIndexInformer { + gvr := schema.GroupVersionResource{Group: "operator.openshift.io", Version: "v1alpha1", Resource: "ingresss"} + identifier := options.InformerName.WithResource(gvr) + tweakListOptions := options.TweakListOptions + return cache.NewSharedIndexInformerWithOptions( + cache.ToListWatcherWithWatchListSemantics(&cache.ListWatch{ + ListFunc: func(opts v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&opts) + } + return client.OperatorV1alpha1().Ingresses().List(context.Background(), opts) + }, + WatchFunc: func(opts v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&opts) + } + return client.OperatorV1alpha1().Ingresses().Watch(context.Background(), opts) + }, + ListWithContextFunc: func(ctx context.Context, opts v1.ListOptions) (runtime.Object, error) { + if tweakListOptions != nil { + tweakListOptions(&opts) + } + return client.OperatorV1alpha1().Ingresses().List(ctx, opts) + }, + WatchFuncWithContext: func(ctx context.Context, opts v1.ListOptions) (watch.Interface, error) { + if tweakListOptions != nil { + tweakListOptions(&opts) + } + return client.OperatorV1alpha1().Ingresses().Watch(ctx, opts) + }, + }, client), + &apioperatorv1alpha1.Ingress{}, + cache.SharedIndexInformerOptions{ + ResyncPeriod: options.ResyncPeriod, + Indexers: options.Indexers, + Identifier: identifier, + }, + ) +} + +func (f *ingressInformer) defaultInformer(client versioned.Interface, resyncPeriod time.Duration) cache.SharedIndexInformer { + return NewIngressInformerWithOptions(client, internalinterfaces.InformerOptions{ResyncPeriod: resyncPeriod, Indexers: cache.Indexers{cache.NamespaceIndex: cache.MetaNamespaceIndexFunc}, InformerName: f.factory.InformerName(), TweakListOptions: f.tweakListOptions}) +} + +func (f *ingressInformer) Informer() cache.SharedIndexInformer { + return f.factory.InformerFor(&apioperatorv1alpha1.Ingress{}, f.defaultInformer) +} + +func (f *ingressInformer) Lister() operatorv1alpha1.IngressLister { + return operatorv1alpha1.NewIngressLister(f.Informer().GetIndexer()) +} diff --git a/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/interface.go b/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/interface.go index cff20e8060..8377b34a6c 100644 --- a/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/interface.go +++ b/vendor/github.com/openshift/client-go/operator/informers/externalversions/operator/v1alpha1/interface.go @@ -16,6 +16,8 @@ type Interface interface { EtcdBackups() EtcdBackupInformer // ImageContentSourcePolicies returns a ImageContentSourcePolicyInformer. ImageContentSourcePolicies() ImageContentSourcePolicyInformer + // Ingresses returns a IngressInformer. + Ingresses() IngressInformer // OLMs returns a OLMInformer. OLMs() OLMInformer } @@ -51,6 +53,11 @@ func (v *version) ImageContentSourcePolicies() ImageContentSourcePolicyInformer return &imageContentSourcePolicyInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} } +// Ingresses returns a IngressInformer. +func (v *version) Ingresses() IngressInformer { + return &ingressInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} +} + // OLMs returns a OLMInformer. func (v *version) OLMs() OLMInformer { return &oLMInformer{factory: v.factory, tweakListOptions: v.tweakListOptions} diff --git a/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/expansion_generated.go b/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/expansion_generated.go index 5380503733..a1e4d6e3e8 100644 --- a/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/expansion_generated.go +++ b/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/expansion_generated.go @@ -18,6 +18,10 @@ type EtcdBackupListerExpansion interface{} // ImageContentSourcePolicyLister. type ImageContentSourcePolicyListerExpansion interface{} +// IngressListerExpansion allows custom methods to be added to +// IngressLister. +type IngressListerExpansion interface{} + // OLMListerExpansion allows custom methods to be added to // OLMLister. type OLMListerExpansion interface{} diff --git a/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/ingress.go b/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/ingress.go new file mode 100644 index 0000000000..5c5527a0df --- /dev/null +++ b/vendor/github.com/openshift/client-go/operator/listers/operator/v1alpha1/ingress.go @@ -0,0 +1,32 @@ +// Code generated by lister-gen. DO NOT EDIT. + +package v1alpha1 + +import ( + operatorv1alpha1 "github.com/openshift/api/operator/v1alpha1" + labels "k8s.io/apimachinery/pkg/labels" + listers "k8s.io/client-go/listers" + cache "k8s.io/client-go/tools/cache" +) + +// IngressLister helps list Ingresses. +// All objects returned here must be treated as read-only. +type IngressLister interface { + // List lists all Ingresses in the indexer. + // Objects returned here must be treated as read-only. + List(selector labels.Selector) (ret []*operatorv1alpha1.Ingress, err error) + // Get retrieves the Ingress from the index for a given name. + // Objects returned here must be treated as read-only. + Get(name string) (*operatorv1alpha1.Ingress, error) + IngressListerExpansion +} + +// ingressLister implements the IngressLister interface. +type ingressLister struct { + listers.ResourceIndexer[*operatorv1alpha1.Ingress] +} + +// NewIngressLister returns a new IngressLister. +func NewIngressLister(indexer cache.Indexer) IngressLister { + return &ingressLister{listers.New[*operatorv1alpha1.Ingress](indexer, operatorv1alpha1.Resource("ingress"))} +} diff --git a/vendor/modules.txt b/vendor/modules.txt index d6a3ae15ce..4ff2d2b62a 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -1448,7 +1448,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-20260715172546-dac61734e0ec +# github.com/openshift/client-go v0.0.0-20260810202730-ddca5e0b7146 ## explicit; go 1.26.0 github.com/openshift/client-go/apps/applyconfigurations/apps/v1 github.com/openshift/client-go/apps/applyconfigurations/internal