diff --git a/go.mod b/go.mod index 79623c3fc5..53fffc431f 100644 --- a/go.mod +++ b/go.mod @@ -27,7 +27,7 @@ require ( github.com/google/renameio v0.1.0 github.com/imdario/mergo v0.3.13 github.com/opencontainers/go-digest v1.0.0 - github.com/openshift/api v0.0.0-20240425081546-8203151f085f + github.com/openshift/api v0.0.0-20240508125607-95e22923d553 github.com/openshift/client-go v0.0.0-20240422164335-6c851f4919dd github.com/openshift/library-go v0.0.0-20240424194921-cb8aac942b79 github.com/openshift/runtime-utils v0.0.0-20230921210328-7bdb5b9c177b diff --git a/go.sum b/go.sum index c810e69b93..85a5704ebe 100644 --- a/go.sum +++ b/go.sum @@ -689,8 +689,8 @@ github.com/opencontainers/runc v1.1.10 h1:EaL5WeO9lv9wmS6SASjszOeQdSctvpbu0DdBQB github.com/opencontainers/runc v1.1.10/go.mod h1:+/R6+KmDlh+hOO8NkjmgkG9Qzvypzk0yXxAPYYR65+M= github.com/opencontainers/runtime-spec v1.1.0 h1:HHUyrt9mwHUjtasSbXSMvs4cyFxh+Bll4AjJ9odEGpg= github.com/opencontainers/runtime-spec v1.1.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= -github.com/openshift/api v0.0.0-20240425081546-8203151f085f h1:MH6RaWREjGgf1NUcBj0iJIGXd0e6jV8jRhV4Mx/HAf4= -github.com/openshift/api v0.0.0-20240425081546-8203151f085f/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4= +github.com/openshift/api v0.0.0-20240508125607-95e22923d553 h1:xMTwK9/Co/HyzXkNQLDcHRBgrTdL52/bgNHyDS+YY94= +github.com/openshift/api v0.0.0-20240508125607-95e22923d553/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4= github.com/openshift/client-go v0.0.0-20240422164335-6c851f4919dd h1:z5TPsTaB8Zzvv9fK/kVB6X+FG1GtwM56WfoanhlbyyQ= github.com/openshift/client-go v0.0.0-20240422164335-6c851f4919dd/go.mod h1:OC07uJXbaW/s21N6XDucROlmfUOhMXD5OrY3ZN3DmiM= github.com/openshift/kube-openapi v0.0.0-20230816122517-ffc8f001abb0 h1:GPlAy197Jkr+D0T2FNWanamraTdzS/r9ZkT29lxvHaA= diff --git a/install/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index d55c788195..edd14cd753 100644 --- a/install/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by diff --git a/install/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml b/install/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml index a328ea4ae4..2c09dcaee1 100644 --- a/install/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml +++ b/install/0000_80_machine-config_01_controllerconfigs-Default.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -1811,6 +1831,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1831,6 +1857,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1890,7 +1922,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -1915,7 +1953,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1960,7 +2004,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2001,6 +2047,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2021,6 +2073,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2195,7 +2253,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2215,7 +2279,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2260,7 +2330,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by diff --git a/install/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index a62c75eb2e..9bbfee83d0 100644 --- a/install/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by diff --git a/install/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml index 4be3b0e47f..c027c291e1 100644 --- a/install/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_controllerconfigs-TechPreviewNoUpgrade.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by diff --git a/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml index dbeb9e9293..f8e237504b 100644 --- a/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_machineconfigurations-CustomNoUpgrade.crd.yaml @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec diff --git a/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml index 5cd178c2c1..9300526ebb 100644 --- a/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml +++ b/install/0000_80_machine-config_01_machineconfigurations-Default.crd.yaml @@ -119,137 +119,80 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec diff --git a/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml index 4f47e4631f..21c6d90351 100644 --- a/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_machineconfigurations-DevPreviewNoUpgrade.crd.yaml @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec diff --git a/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml b/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml index bf7dab04ac..9cd0051e8a 100644 --- a/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml +++ b/install/0000_80_machine-config_01_machineconfigurations-TechPreviewNoUpgrade.crd.yaml @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec 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 fb224c6e61..b0cba8ddf8 100644 --- a/vendor/github.com/openshift/api/config/v1/types_infrastructure.go +++ b/vendor/github.com/openshift/api/config/v1/types_infrastructure.go @@ -825,7 +825,7 @@ type BareMetalPlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional APIServerInternalIPs []IP `json:"apiServerInternalIPs"` @@ -840,15 +840,16 @@ type BareMetalPlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional IngressIPs []IP `json:"ingressIPs"` // machineNetworks are IP networks used to connect all the OpenShift cluster // nodes. Each network is provided in the CIDR format and should be IPv4 or IPv6, // for example "10.0.0.0/8" or "fd00::/8". - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -873,7 +874,8 @@ type BareMetalPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic APIServerInternalIPs []string `json:"apiServerInternalIPs"` // ingressIP is an external IP which routes to the default ingress controller. @@ -889,7 +891,8 @@ type BareMetalPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic IngressIPs []string `json:"ingressIPs"` // nodeDNSIP is the IP address for the internal DNS used by the @@ -908,8 +911,9 @@ type BareMetalPlatformStatus struct { LoadBalancer *BareMetalPlatformLoadBalancer `json:"loadBalancer,omitempty"` // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -952,7 +956,7 @@ type OpenStackPlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional APIServerInternalIPs []IP `json:"apiServerInternalIPs"` @@ -967,15 +971,16 @@ type OpenStackPlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional IngressIPs []IP `json:"ingressIPs"` // machineNetworks are IP networks used to connect all the OpenShift cluster // nodes. Each network is provided in the CIDR format and should be IPv4 or IPv6, // for example "10.0.0.0/8" or "fd00::/8". - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -998,7 +1003,8 @@ type OpenStackPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic APIServerInternalIPs []string `json:"apiServerInternalIPs"` // cloudName is the name of the desired OpenStack cloud in the @@ -1018,7 +1024,8 @@ type OpenStackPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic IngressIPs []string `json:"ingressIPs"` // nodeDNSIP is the IP address for the internal DNS used by the @@ -1036,8 +1043,9 @@ type OpenStackPlatformStatus struct { LoadBalancer *OpenStackPlatformLoadBalancer `json:"loadBalancer,omitempty"` // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -1085,6 +1093,7 @@ type OvirtPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" // +listType=set APIServerInternalIPs []string `json:"apiServerInternalIPs"` @@ -1101,6 +1110,7 @@ type OvirtPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" // +listType=set IngressIPs []string `json:"ingressIPs"` @@ -1333,8 +1343,9 @@ type VSpherePlatformSpec struct { // --- // + If VCenters is not defined use the existing cloud-config configmap defined // + in openshift-config. - // +kubebuilder:validation:MaxItems=1 // +kubebuilder:validation:MinItems=0 + // +openshift:validation:FeatureGateAwareMaxItems:featureGate="",maxItems=1 + // +openshift:validation:FeatureGateAwareMaxItems:featureGate=VSphereMultiVCenters,maxItems=3 // +listType=atomic // +optional VCenters []VSpherePlatformVCenterSpec `json:"vcenters,omitempty"` @@ -1366,7 +1377,7 @@ type VSpherePlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional APIServerInternalIPs []IP `json:"apiServerInternalIPs"` @@ -1381,15 +1392,16 @@ type VSpherePlatformSpec struct { // // +kubebuilder:validation:MaxItems=2 // +kubebuilder:validation:XValidation:rule="size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" - // +listType=set + // +listType=atomic // +optional IngressIPs []IP `json:"ingressIPs"` // machineNetworks are IP networks used to connect all the OpenShift cluster // nodes. Each network is provided in the CIDR format and should be IPv4 or IPv6, // for example "10.0.0.0/8" or "fd00::/8". - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -1412,7 +1424,8 @@ type VSpherePlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic APIServerInternalIPs []string `json:"apiServerInternalIPs"` // ingressIP is an external IP which routes to the default ingress controller. @@ -1428,7 +1441,8 @@ type VSpherePlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 - // +listType=set + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" + // +listType=atomic IngressIPs []string `json:"ingressIPs"` // nodeDNSIP is the IP address for the internal DNS used by the @@ -1447,8 +1461,9 @@ type VSpherePlatformStatus struct { LoadBalancer *VSpherePlatformLoadBalancer `json:"loadBalancer,omitempty"` // machineNetworks are IP networks used to connect all the OpenShift cluster nodes. - // +listType=set + // +listType=atomic // +kubebuilder:validation:MaxItems=32 + // +kubebuilder:validation:XValidation:rule="self.all(x, self.exists_one(y, x == y))" // +optional MachineNetworks []CIDR `json:"machineNetworks"` } @@ -1813,6 +1828,7 @@ type NutanixPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address" // +listType=set APIServerInternalIPs []string `json:"apiServerInternalIPs"` @@ -1829,6 +1845,7 @@ type NutanixPlatformStatus struct { // // +kubebuilder:validation:Format=ip // +kubebuilder:validation:MaxItems=2 + // +kubebuilder:validation:XValidation:rule="self == oldSelf || (size(self) == 2 && isIP(self[0]) && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() : true)",message="ingressIPs must contain at most one IPv4 address and at most one IPv6 address" // +listType=set IngressIPs []string `json:"ingressIPs"` diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml index b934a2992f..a21a3672c6 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-CustomNoUpgrade.crd.yaml @@ -130,7 +130,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -157,7 +157,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -179,7 +179,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -441,7 +443,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -468,7 +470,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -490,7 +492,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -595,7 +599,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -750,7 +754,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -772,7 +776,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's @@ -892,7 +898,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1213,7 +1219,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1231,7 +1243,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1274,7 +1292,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1708,6 +1728,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1726,6 +1752,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1781,7 +1813,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). @@ -1803,7 +1841,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1846,7 +1890,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1884,6 +1930,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1902,6 +1954,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2066,7 +2124,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -2084,7 +2148,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2127,7 +2197,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS 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 fee1bca656..d5ff23ffe1 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 @@ -130,7 +130,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -157,7 +157,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -179,7 +179,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -441,7 +443,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -468,7 +470,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -490,7 +492,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -595,7 +599,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -750,7 +754,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -772,7 +776,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's @@ -1213,7 +1219,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1231,7 +1243,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1274,7 +1292,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1480,6 +1500,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1498,6 +1524,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1553,7 +1585,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). @@ -1575,7 +1613,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1618,7 +1662,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1656,6 +1702,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1674,6 +1726,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1838,7 +1896,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1856,7 +1920,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1899,7 +1969,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS diff --git a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml index 5e12ca8e22..1171cbba06 100644 --- a/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/config/v1/zz_generated.crd-manifests/0000_10_config-operator_01_infrastructures-DevPreviewNoUpgrade.crd.yaml @@ -130,7 +130,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -157,7 +157,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -179,7 +179,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -441,7 +443,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -468,7 +470,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -490,7 +492,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -595,7 +599,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -750,7 +754,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -772,7 +776,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's @@ -892,7 +898,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1213,7 +1219,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1231,7 +1243,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1274,7 +1292,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1708,6 +1728,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1726,6 +1752,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1781,7 +1813,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). @@ -1803,7 +1841,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1846,7 +1890,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1884,6 +1930,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1902,6 +1954,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2066,7 +2124,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -2084,7 +2148,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2127,7 +2197,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS 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 3291669201..ad58dc2fea 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 @@ -130,7 +130,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -157,7 +157,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -179,7 +179,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -441,7 +443,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -468,7 +470,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -490,7 +492,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once set @@ -595,7 +599,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -750,7 +754,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -772,7 +776,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for assigning the node's @@ -892,7 +898,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1213,7 +1219,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1231,7 +1243,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1274,7 +1292,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1708,6 +1728,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1726,6 +1752,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1781,7 +1813,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file (`clouds.yaml`). @@ -1803,7 +1841,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1846,7 +1890,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS @@ -1884,6 +1930,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -1902,6 +1954,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2066,7 +2124,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable target @@ -2084,7 +2148,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 address + and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2127,7 +2197,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by the DNS 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 286bbbd84e..59c4bbea6f 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 @@ -303,6 +303,7 @@ infrastructures.config.openshift.io: - GCPClusterHostedDNS - GCPLabelsTags - VSphereControlPlaneMachineSet + - VSphereMultiVCenters FilenameOperatorName: config-operator FilenameOperatorOrdering: "01" FilenameRunLevel: "0000_10" diff --git a/vendor/github.com/openshift/api/features.md b/vendor/github.com/openshift/api/features.md index c32db0ea35..3e93133d7b 100644 --- a/vendor/github.com/openshift/api/features.md +++ b/vendor/github.com/openshift/api/features.md @@ -13,8 +13,10 @@ | MachineAPIOperatorDisableMachineHealthCheckController| | | | | | | | AutomatedEtcdBackup| | | Enabled | Enabled | Enabled | Enabled | | CSIDriverSharedResource| | | Enabled | Enabled | Enabled | Enabled | +| ChunkSizeMiB| | | Enabled | Enabled | Enabled | Enabled | | DNSNameResolver| | | Enabled | Enabled | Enabled | Enabled | | DynamicResourceAllocation| | | Enabled | Enabled | Enabled | Enabled | +| EtcdBackendQuota| | | Enabled | Enabled | Enabled | Enabled | | Example| | | Enabled | Enabled | Enabled | Enabled | | ExternalRouteCertificate| | | Enabled | Enabled | Enabled | Enabled | | GCPClusterHostedDNS| | | Enabled | Enabled | Enabled | Enabled | @@ -49,6 +51,7 @@ | TranslateStreamCloseWebsocketRequests| | | Enabled | Enabled | Enabled | Enabled | | UpgradeStatus| | | Enabled | Enabled | Enabled | Enabled | | VSphereDriverConfiguration| | | Enabled | Enabled | Enabled | Enabled | +| VSphereMultiVCenters| | | Enabled | Enabled | Enabled | Enabled | | ValidatingAdmissionPolicy| | | Enabled | Enabled | Enabled | Enabled | | VolumeGroupSnapshot| | | Enabled | Enabled | Enabled | Enabled | | ExternalOIDC| 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 2bfe032bb0..4d24823021 100644 --- a/vendor/github.com/openshift/api/features/features.go +++ b/vendor/github.com/openshift/api/features/features.go @@ -203,6 +203,13 @@ var ( enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + FeatureGateVSphereMultiVCenters = newFeatureGate("VSphereMultiVCenters"). + reportProblemsToJiraComponent("splat"). + contactPerson("vr4manta"). + productScope(ocpSpecific). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateVSphereStaticIPs = newFeatureGate("VSphereStaticIPs"). reportProblemsToJiraComponent("splat"). contactPerson("rvanderp3"). @@ -245,6 +252,13 @@ var ( enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). mustRegister() + FeatureGateBackendQuotaGiB = newFeatureGate("EtcdBackendQuota"). + reportProblemsToJiraComponent("etcd"). + contactPerson("hasbro17"). + productScope(ocpSpecific). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() + FeatureGateAutomatedEtcdBackup = newFeatureGate("AutomatedEtcdBackup"). reportProblemsToJiraComponent("etcd"). contactPerson("hasbro17"). @@ -508,4 +522,11 @@ var ( contactPerson("rvanderp3"). productScope(ocpSpecific). mustRegister() + + FeatureGateChunkSizeMiB = newFeatureGate("ChunkSizeMiB"). + reportProblemsToJiraComponent("Image Registry"). + contactPerson("flavianmissi"). + productScope(ocpSpecific). + enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). + mustRegister() ) diff --git a/vendor/github.com/openshift/api/imageregistry/v1/types.go b/vendor/github.com/openshift/api/imageregistry/v1/types.go index aecdc8a3ed..9b3cc21a4d 100644 --- a/vendor/github.com/openshift/api/imageregistry/v1/types.go +++ b/vendor/github.com/openshift/api/imageregistry/v1/types.go @@ -82,6 +82,7 @@ type ImageRegistrySpec struct { // requests controls how many parallel requests a given registry instance // will handle before queuing additional requests. // +optional + // +structType=atomic Requests ImageRegistryConfigRequests `json:"requests,omitempty"` // defaultRoute indicates whether an external facing route for the registry // should be created using the default generated hostname. @@ -90,6 +91,7 @@ type ImageRegistrySpec struct { // routes defines additional external facing routes which should be // created for the registry. // +optional + // +listType=atomic Routes []ImageRegistryConfigRoute `json:"routes,omitempty"` // replicas determines the number of registry instances to run. Replicas int32 `json:"replicas"` @@ -98,6 +100,7 @@ type ImageRegistrySpec struct { Logging int64 `json:"logging,omitempty"` // resources defines the resource requests+limits for the registry pod. // +optional + // +structType=atomic Resources *corev1.ResourceRequirements `json:"resources,omitempty"` // nodeSelector defines the node selection constraints for the registry // pod. @@ -105,6 +108,7 @@ type ImageRegistrySpec struct { NodeSelector map[string]string `json:"nodeSelector,omitempty"` // tolerations defines the tolerations for the registry pod. // +optional + // +listType=atomic Tolerations []corev1.Toleration `json:"tolerations,omitempty"` // rolloutStrategy defines rollout strategy for the image registry // deployment. @@ -116,6 +120,7 @@ type ImageRegistrySpec struct { Affinity *corev1.Affinity `json:"affinity,omitempty"` // topologySpreadConstraints specify how to spread matching pods among the given topology. // +optional + // +listType=atomic TopologySpreadConstraints []corev1.TopologySpreadConstraint `json:"topologySpreadConstraints,omitempty"` } @@ -200,6 +205,17 @@ type ImageRegistryConfigStorageS3 struct { // Optional, defaults based on the Region that is provided. // +optional RegionEndpoint string `json:"regionEndpoint,omitempty"` + // chunkSizeMiB defines the size of the multipart upload chunks of the S3 API. + // The S3 API requires multipart upload chunks to be at least 5MiB. + // 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 value is 10 MiB. + // The value is an integer number of MiB. + // The minimum value is 5 and the maximum value is 5120 (5 GiB). + // +kubebuilder:validation:Minimum=5 + // +kubebuilder:validation:Maximum=5120 + // +openshift:enable:FeatureGate=ChunkSizeMiB + // +optional + ChunkSizeMiB int32 `json:"chunkSizeMiB,omitempty"` // encrypt specifies whether the registry stores the image in encrypted // format or not. // Optional, defaults to false. diff --git a/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.featuregated-crd-manifests.yaml index 95613c7ae2..a6ccc2262a 100644 --- a/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.featuregated-crd-manifests.yaml @@ -4,7 +4,8 @@ configs.imageregistry.operator.openshift.io: CRDName: configs.imageregistry.operator.openshift.io Capability: "" Category: "" - FeatureGates: [] + FeatureGates: + - ChunkSizeMiB FilenameOperatorName: "" FilenameOperatorOrdering: "00" FilenameRunLevel: "" diff --git a/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.swagger_doc_generated.go index 24d6d780dd..ec999f309b 100644 --- a/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.swagger_doc_generated.go +++ b/vendor/github.com/openshift/api/imageregistry/v1/zz_generated.swagger_doc_generated.go @@ -191,6 +191,7 @@ var map_ImageRegistryConfigStorageS3 = map[string]string{ "bucket": "bucket is the bucket name in which you want to store the registry's data. Optional, will be generated if not provided.", "region": "region is the AWS region in which your bucket exists. Optional, will be set based on the installed AWS Region.", "regionEndpoint": "regionEndpoint is the endpoint for S3 compatible storage services. It should be a valid URL with scheme, e.g. https://s3.example.com. Optional, defaults based on the Region that is provided.", + "chunkSizeMiB": "chunkSizeMiB defines the size of the multipart upload chunks of the S3 API. The S3 API requires multipart upload chunks to be at least 5MiB. 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 value is 10 MiB. The value is an integer number of MiB. The minimum value is 5 and the maximum value is 5120 (5 GiB).", "encrypt": "encrypt specifies whether the registry stores the image in encrypted format or not. Optional, defaults to false.", "keyID": "keyID is the KMS key ID to use for encryption. Optional, Encrypt must be true, or this parameter is ignored.", "cloudFront": "cloudFront configures Amazon Cloudfront as the storage middleware in a registry.", diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml index d55c788195..edd14cd753 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-CustomNoUpgrade.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by 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 a328ea4ae4..2c09dcaee1 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 @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -1811,6 +1831,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1831,6 +1857,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1890,7 +1922,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -1915,7 +1953,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1960,7 +2004,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2001,6 +2047,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2021,6 +2073,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2195,7 +2253,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2215,7 +2279,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2260,7 +2330,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml index a62c75eb2e..9bbfee83d0 100644 --- a/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml +++ b/vendor/github.com/openshift/api/machineconfiguration/v1/zz_generated.crd-manifests/0000_80_machine-config_01_controllerconfigs-DevPreviewNoUpgrade.crd.yaml @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by 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 4be3b0e47f..c027c291e1 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 @@ -385,7 +385,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -414,7 +414,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -437,7 +437,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -714,7 +716,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -743,7 +745,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -766,7 +768,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) type: object x-kubernetes-validations: - message: apiServerInternalIPs list is required once @@ -874,7 +878,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: apiServerInternalIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1041,7 +1045,7 @@ spec: rule: isIP(self) maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic x-kubernetes-validations: - message: ingressIPs must contain at most one IPv4 address and at most one IPv6 address @@ -1064,7 +1068,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeNetworking: description: nodeNetworking contains the definition of internal and external network constraints for @@ -1185,7 +1191,7 @@ spec: - datacenters - server type: object - maxItems: 1 + maxItems: 3 minItems: 0 type: array x-kubernetes-list-type: atomic @@ -1530,7 +1536,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -1550,7 +1562,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -1595,7 +1613,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2059,6 +2079,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2079,6 +2105,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2138,7 +2170,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' cloudName: description: cloudName is the name of the desired OpenStack cloud in the client configuration file @@ -2163,7 +2201,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2208,7 +2252,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by @@ -2249,6 +2295,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2269,6 +2321,12 @@ spec: maxItems: 2 type: array x-kubernetes-list-type: set + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2443,7 +2501,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: apiServerInternalIPs must contain at most + one IPv4 address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' ingressIP: description: "ingressIP is an external IP which routes to the default ingress controller. The IP is a suitable @@ -2463,7 +2527,13 @@ spec: type: string maxItems: 2 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - message: ingressIPs must contain at most one IPv4 + address and at most one IPv6 address + rule: 'self == oldSelf || (size(self) == 2 && isIP(self[0]) + && isIP(self[1]) ? ip(self[0]).family() != ip(self[1]).family() + : true)' loadBalancer: default: type: OpenShiftManagedDefault @@ -2508,7 +2578,9 @@ spec: rule: isCIDR(self) maxItems: 32 type: array - x-kubernetes-list-type: set + x-kubernetes-list-type: atomic + x-kubernetes-validations: + - rule: self.all(x, self.exists_one(y, x == y)) nodeDNSIP: description: nodeDNSIP is the IP address for the internal DNS used by the nodes. Unlike the one managed by 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 a10144da5a..00e41bca5e 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 @@ -32,6 +32,7 @@ controllerconfigs.machineconfiguration.openshift.io: - GCPClusterHostedDNS - GCPLabelsTags - VSphereControlPlaneMachineSet + - VSphereMultiVCenters FilenameOperatorName: machine-config FilenameOperatorOrdering: "01" FilenameRunLevel: "0000_80" diff --git a/vendor/github.com/openshift/api/operator/v1/types_etcd.go b/vendor/github.com/openshift/api/operator/v1/types_etcd.go index a2ba126897..71345d7d78 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_etcd.go +++ b/vendor/github.com/openshift/api/operator/v1/types_etcd.go @@ -43,6 +43,18 @@ type EtcdSpec struct { // +openshift:enable:FeatureGate=HardwareSpeed // +optional HardwareSpeed ControlPlaneHardwareSpeed `json:"controlPlaneHardwareSpeed"` + + // backendQuotaGiB sets the etcd backend storage size limit in gibibytes. + // The value should be an integer not less than 8 and not more than 32. + // When not specified, the default value is 8. + // +kubebuilder:default:=8 + // +kubebuilder:validation:Minimum=8 + // +kubebuilder:validation:Maximum=32 + // +kubebuilder:validation:XValidation:rule="self>=oldSelf",message="etcd backendQuotaGiB may not be decreased" + // +openshift:enable:FeatureGate=EtcdBackendQuota + // +default=8 + // +optional + BackendQuotaGiB int32 `json:"backendQuotaGiB,omitempty"` } type EtcdStatus struct { diff --git a/vendor/github.com/openshift/api/operator/v1/types_machineconfiguration.go b/vendor/github.com/openshift/api/operator/v1/types_machineconfiguration.go index 8bc06a4ec2..b97ba25487 100644 --- a/vendor/github.com/openshift/api/operator/v1/types_machineconfiguration.go +++ b/vendor/github.com/openshift/api/operator/v1/types_machineconfiguration.go @@ -57,8 +57,39 @@ type MachineConfigurationSpec struct { } type MachineConfigurationStatus struct { - // TODO tombstone this field - StaticPodOperatorStatus `json:",inline"` + // observedGeneration is the last generation change you've dealt with + // +optional + ObservedGeneration int64 `json:"observedGeneration,omitempty"` + + // conditions is a list of conditions and their status + // +patchMergeKey=type + // +patchStrategy=merge + // +listType=map + // +listMapKey=type + Conditions []metav1.Condition `json:"conditions,omitempty" patchStrategy:"merge" patchMergeKey:"type"` + + // Previously there was a StaticPodOperatorStatus here for legacy reasons. Many of the fields within + // it are no longer relevant for the MachineConfiguration CRD's functions. The following remainder + // fields were tombstoned after lifting out StaticPodOperatorStatus. To avoid conflicts with + // serialisation, the following field names may never be used again. + + // Tombstone: legacy field from StaticPodOperatorStatus + // Version string `json:"version,omitempty"` + + // Tombstone: legacy field from StaticPodOperatorStatus + // ReadyReplicas int32 `json:"readyReplicas"` + + // Tombstone: legacy field from StaticPodOperatorStatus + // Generations []GenerationStatus `json:"generations,omitempty"` + + // Tombstone: legacy field from StaticPodOperatorStatus + // LatestAvailableRevision int32 `json:"latestAvailableRevision,omitempty"` + + // Tombstone: legacy field from StaticPodOperatorStatus + // LatestAvailableRevisionReason string `json:"latestAvailableRevisionReason,omitempty"` + + // Tombstone: legacy field from StaticPodOperatorStatus + // NodeStatuses []NodeStatus `json:"nodeStatuses,omitempty"` // nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, // and will be used by the Machine Config Daemon during future node updates. 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 ea5b9116e0..c80b66824c 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 @@ -40,6 +40,18 @@ spec: type: object spec: properties: + backendQuotaGiB: + default: 8 + description: backendQuotaGiB sets the etcd backend storage size limit + in gibibytes. The value should be an integer not less than 8 and + not more than 32. When not specified, the default value is 8. + format: int32 + maximum: 32 + minimum: 8 + type: integer + x-kubernetes-validations: + - message: etcd backendQuotaGiB may not be decreased + rule: self>=oldSelf controlPlaneHardwareSpeed: description: HardwareSpeed allows user to change the etcd tuning profile which configures the latency parameters for heartbeat interval and 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 2e426af02d..7b181f78ec 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 @@ -40,6 +40,18 @@ spec: type: object spec: properties: + backendQuotaGiB: + default: 8 + description: backendQuotaGiB sets the etcd backend storage size limit + in gibibytes. The value should be an integer not less than 8 and + not more than 32. When not specified, the default value is 8. + format: int32 + maximum: 32 + minimum: 8 + type: integer + x-kubernetes-validations: + - message: etcd backendQuotaGiB may not be decreased + rule: self>=oldSelf controlPlaneHardwareSpeed: description: HardwareSpeed allows user to change the etcd tuning profile which configures the latency parameters for heartbeat interval and 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 5026260cd9..28cbf7edb6 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 @@ -40,6 +40,18 @@ spec: type: object spec: properties: + backendQuotaGiB: + default: 8 + description: backendQuotaGiB sets the etcd backend storage size limit + in gibibytes. The value should be an integer not less than 8 and + not more than 32. When not specified, the default value is 8. + format: int32 + maximum: 32 + minimum: 8 + type: integer + x-kubernetes-validations: + - message: etcd backendQuotaGiB may not be decreased + rule: self>=oldSelf controlPlaneHardwareSpeed: description: HardwareSpeed allows user to change the etcd tuning profile which configures the latency parameters for heartbeat interval and 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-CustomNoUpgrade.crd.yaml index dbeb9e9293..f8e237504b 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-CustomNoUpgrade.crd.yaml @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec 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 index 5cd178c2c1..9300526ebb 100644 --- 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 @@ -119,137 +119,80 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec 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 index 4f47e4631f..21c6d90351 100644 --- 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 @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec 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 index bf7dab04ac..9cd0051e8a 100644 --- 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 @@ -698,68 +698,75 @@ spec: conditions: description: conditions is a list of conditions and their status items: - description: OperatorCondition is just the standard condition fields. + description: "Condition contains details for one aspect of the current + state of this API Resource. --- This struct is intended for direct + use as an array at the field path .status.conditions. For example, + \n type FooStatus struct{ // Represents the observations of a + foo's current state. // Known .status.conditions.type are: \"Available\", + \"Progressing\", and \"Degraded\" // +patchMergeKey=type // +patchStrategy=merge + // +listType=map // +listMapKey=type Conditions []metav1.Condition + `json:\"conditions,omitempty\" patchStrategy:\"merge\" patchMergeKey:\"type\" + protobuf:\"bytes,1,rep,name=conditions\"` \n // other fields }" 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. + --- Many .condition.type values are consistent across resources + like Available, but because arbitrary conditions can be useful + (see .node.status.conditions), the ability to deconflict is + important. The regex it matches is (dns1123SubdomainFmt/)?(qualifiedNameFmt) + 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 - generations: - description: generations are used to determine when an item needs - to be reconciled or has changed in a way that needs a reaction. - items: - description: GenerationStatus keeps track of the generation for - a given resource so that decisions about forced updates can be - made. - properties: - group: - description: group is the group of the thing you're tracking - type: string - hash: - description: hash is an optional field set for resources without - generation that are content sensitive like secrets and configmaps - type: string - lastGeneration: - description: lastGeneration is the last generation of the workload - controller involved - format: int64 - type: integer - name: - description: name is the name of the thing you're tracking - type: string - namespace: - description: namespace is where the thing you're tracking is - type: string - resource: - description: resource is the resource type of the thing you're - tracking - type: string - type: object - type: array - x-kubernetes-list-type: atomic - latestAvailableRevision: - description: latestAvailableRevision is the deploymentID of the most - recent deployment - format: int32 - type: integer - latestAvailableRevisionReason: - description: latestAvailableRevisionReason describe the detailed reason - for the most recent deployment - type: string nodeDisruptionPolicyStatus: description: nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine @@ -1213,75 +1220,11 @@ spec: x-kubernetes-list-type: map type: object type: object - nodeStatuses: - description: nodeStatuses track the deployment values and errors across - individual nodes - items: - description: NodeStatus provides information about the current state - of a particular node managed by this operator. - properties: - currentRevision: - description: currentRevision is the generation of the most recently - successful deployment - format: int32 - type: integer - lastFailedCount: - description: lastFailedCount is how often the installer pod - of the last failed revision failed. - type: integer - lastFailedReason: - description: lastFailedReason is a machine readable failure - reason string. - type: string - lastFailedRevision: - description: lastFailedRevision is the generation of the deployment - we tried and failed to deploy. - format: int32 - type: integer - lastFailedRevisionErrors: - description: lastFailedRevisionErrors is a list of human readable - errors during the failed deployment referenced in lastFailedRevision. - items: - type: string - type: array - x-kubernetes-list-type: atomic - lastFailedTime: - description: lastFailedTime is the time the last failed revision - failed the last time. - format: date-time - type: string - lastFallbackCount: - description: lastFallbackCount is how often a fallback to a - previous revision happened. - type: integer - nodeName: - description: nodeName is the name of the node - type: string - targetRevision: - description: targetRevision is the generation of the deployment - we're trying to apply - format: int32 - type: integer - required: - - nodeName - type: object - type: array - x-kubernetes-list-map-keys: - - nodeName - x-kubernetes-list-type: map observedGeneration: description: observedGeneration is the last generation change you've dealt with format: int64 type: integer - readyReplicas: - description: readyReplicas indicates how many replicas are ready and - at the desired state - format: int32 - type: integer - version: - description: version is the level this availability applies to - type: string type: object required: - spec diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go index d41982f2a2..8b8ef76918 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.deepcopy.go @@ -2990,7 +2990,13 @@ func (in *MachineConfigurationSpec) DeepCopy() *MachineConfigurationSpec { // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *MachineConfigurationStatus) DeepCopyInto(out *MachineConfigurationStatus) { *out = *in - in.StaticPodOperatorStatus.DeepCopyInto(&out.StaticPodOperatorStatus) + if in.Conditions != nil { + in, out := &in.Conditions, &out.Conditions + *out = make([]metav1.Condition, len(*in)) + for i := range *in { + (*in)[i].DeepCopyInto(&(*out)[i]) + } + } in.NodeDisruptionPolicyStatus.DeepCopyInto(&out.NodeDisruptionPolicyStatus) return } diff --git a/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml index 22992a02a0..4b0295af96 100644 --- a/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml +++ b/vendor/github.com/openshift/api/operator/v1/zz_generated.featuregated-crd-manifests.yaml @@ -154,6 +154,7 @@ etcds.operator.openshift.io: Capability: "" Category: coreoperators FeatureGates: + - EtcdBackendQuota - HardwareSpeed FilenameOperatorName: etcd FilenameOperatorOrdering: "01" 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 81d4ce91e5..09718520eb 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 @@ -701,6 +701,7 @@ func (EtcdList) SwaggerDoc() map[string]string { var map_EtcdSpec = map[string]string{ "controlPlaneHardwareSpeed": "HardwareSpeed allows user to change the etcd tuning profile which configures the latency parameters for heartbeat interval and leader election timeouts allowing the cluster to tolerate longer round-trip-times between etcd members. Valid values are \"\", \"Standard\" and \"Slower\".\n\t\"\" means no opinion and the platform is left to choose a reasonable default\n\twhich is subject to change without notice.", + "backendQuotaGiB": "backendQuotaGiB sets the etcd backend storage size limit in gibibytes. The value should be an integer not less than 8 and not more than 32. When not specified, the default value is 8.", } func (EtcdSpec) SwaggerDoc() map[string]string { @@ -1288,6 +1289,8 @@ func (MachineConfigurationSpec) SwaggerDoc() map[string]string { } var map_MachineConfigurationStatus = map[string]string{ + "observedGeneration": "observedGeneration is the last generation change you've dealt with", + "conditions": "conditions is a list of conditions and their status", "nodeDisruptionPolicyStatus": "nodeDisruptionPolicyStatus status reflects what the latest cluster-validated policies are, and will be used by the Machine Config Daemon during future node updates.", } diff --git a/vendor/k8s.io/code-generator/generate-groups.sh b/vendor/k8s.io/code-generator/generate-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/k8s.io/code-generator/generate-internal-groups.sh b/vendor/k8s.io/code-generator/generate-internal-groups.sh old mode 100755 new mode 100644 diff --git a/vendor/modules.txt b/vendor/modules.txt index dbd4c0f5be..b945298025 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -818,7 +818,7 @@ github.com/opencontainers/runc/libcontainer/user # github.com/opencontainers/runtime-spec v1.1.0 ## explicit github.com/opencontainers/runtime-spec/specs-go -# github.com/openshift/api v0.0.0-20240425081546-8203151f085f +# github.com/openshift/api v0.0.0-20240508125607-95e22923d553 ## explicit; go 1.21 github.com/openshift/api github.com/openshift/api/annotations