1
0
mirror of https://github.com/openshift/installer.git synced 2026-02-05 15:47:14 +01:00

Remove UniqueItem=true validation for API/Ingress ip addresses

Iff the intent of adding kubebuilder/DeepCopy code generation is to
enable these types to be used in CRD definitions, it stands to reason
that these CRDs should be usable in a k8s cluster.  UniqueItem=true is
not permitted on CRDs for k8s.

This might be controversial because it relaxes validation requirements
This commit is contained in:
Mark Old
2025-10-22 16:30:56 -07:00
parent 8ccbf40fff
commit f8aa3f7d8f
6 changed files with 0 additions and 22 deletions

View File

@@ -5348,7 +5348,6 @@ spec:
items:
type: string
type: array
uniqueItems: true
apiVIP:
description: |-
DeprecatedAPIVIP is the VIP to use for internal API communication
@@ -5365,7 +5364,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
bootstrapExternalStaticDNS:
description: |-
BootstrapExternalStaticDNS is the static network DNS of the bootstrap node.
@@ -5547,7 +5545,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
libvirtURI:
default: qemu:///system
description: |-
@@ -6125,7 +6122,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
clusterOSImage:
description: ClusterOSImage overrides the url provided in rhcos.json
to download the RHCOS Image.
@@ -6513,7 +6509,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
loadBalancer:
description: |-
LoadBalancer defines how the load balancer used by the cluster is configured.
@@ -6663,7 +6658,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
cloud:
description: Cloud is the name of OpenStack cloud to use from
clouds.yaml.
@@ -6839,7 +6833,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
lbFloatingIP:
description: |-
LbFloatingIP is the IP address of an available floating IP in your OpenStack cluster
@@ -6942,7 +6935,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
defaultMachinePlatform:
description: |-
DefaultMachinePlatform is the default configuration used when
@@ -7066,7 +7058,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
loadBalancer:
description: |-
LoadBalancer defines how the load balancer used by the cluster is configured.
@@ -7277,7 +7268,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
cluster:
description: |-
Cluster is the name of the cluster virtual machines will be cloned into.
@@ -7625,7 +7615,6 @@ spec:
type: string
maxItems: 2
type: array
uniqueItems: true
loadBalancer:
description: |-
LoadBalancer defines how the load balancer used by the cluster is configured.

View File

@@ -187,7 +187,6 @@ type Platform struct {
// one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
APIVIPs []string `json:"apiVIPs,omitempty"`
@@ -203,7 +202,6 @@ type Platform struct {
// clusters it contains an IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
IngressVIPs []string `json:"ingressVIPs,omitempty"`
@@ -247,7 +245,6 @@ type Platform struct {
// AdditionalNTPServers defines a list of additional NTP servers
// to use for provisioning
// +kubebuilder:validation:UniqueItems=true
// +optional
AdditionalNTPServers []string `json:"additionalNTPServers,omitempty"`
}

View File

@@ -45,7 +45,6 @@ type Platform struct {
// it contains an IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
APIVIPs []string `json:"apiVIPs,omitempty"`
@@ -61,7 +60,6 @@ type Platform struct {
// it contains an IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
IngressVIPs []string `json:"ingressVIPs,omitempty"`

View File

@@ -88,7 +88,6 @@ type Platform struct {
// CIDR
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
APIVIPs []string `json:"apiVIPs,omitempty"`
@@ -108,7 +107,6 @@ type Platform struct {
// CIDR
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
IngressVIPs []string `json:"ingressVIPs,omitempty"`

View File

@@ -36,7 +36,6 @@ type Platform struct {
// IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
APIVIPs []string `json:"api_vips,omitempty"`
@@ -55,7 +54,6 @@ type Platform struct {
// IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
IngressVIPs []string `json:"ingress_vips,omitempty"`

View File

@@ -93,7 +93,6 @@ type Platform struct {
// it contains an IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
APIVIPs []string `json:"apiVIPs,omitempty"`
@@ -109,7 +108,6 @@ type Platform struct {
// contains an IPv4 and IPv6 address, otherwise only one VIP
//
// +kubebuilder:validation:MaxItems=2
// +kubebuilder:validation:UniqueItems=true
// +kubebuilder:validation:Format=ip
// +optional
IngressVIPs []string `json:"ingressVIPs,omitempty"`