@@ -7,7 +7,6 @@ metadata:
77 capability.openshift.io/name : Ingress
88 include.release.openshift.io/ibm-cloud-managed : " true"
99 include.release.openshift.io/self-managed-high-availability : " true"
10- release.openshift.io/feature-set : Default
1110 name : ingresscontrollers.operator.openshift.io
1211spec :
1312 group : operator.openshift.io
@@ -368,6 +367,44 @@ spec:
368367 parameters for an AWS network load balancer. Present
369368 only if type is NLB.
370369 properties :
370+ eipAllocations :
371+ description : " eipAllocations is a list of IDs
372+ for Elastic IP (EIP) addresses that are assigned
373+ to the Network Load Balancer. The following
374+ restrictions apply: \n eipAllocations can only
375+ be used with external scope, not internal. An
376+ EIP can be allocated to only a single IngressController.
377+ The number of EIP allocations must match the
378+ number of subnets that are used for the load
379+ balancer. Each EIP allocation must be unique.
380+ A maximum of 10 EIP allocations are permitted.
381+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
382+ for general information about configuration,
383+ characteristics, and limitations of Elastic
384+ IP addresses."
385+ items :
386+ description : EIPAllocation is an ID for an Elastic
387+ IP (EIP) address that can be allocated to
388+ an ELB in the AWS environment. Values must
389+ begin with `eipalloc-` followed by exactly
390+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
391+ maxLength : 26
392+ minLength : 26
393+ type : string
394+ x-kubernetes-validations :
395+ - message : eipAllocations should start with
396+ ' eipalloc-'
397+ rule : self.startsWith('eipalloc-')
398+ - message : eipAllocations must be 'eipalloc-'
399+ followed by exactly 17 hexadecimal characters
400+ (0-9, a-f, A-F)
401+ rule : self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
402+ maxItems : 10
403+ type : array
404+ x-kubernetes-list-type : atomic
405+ x-kubernetes-validations :
406+ - message : eipAllocations cannot contain duplicates
407+ rule : self.all(x, self.exists_one(y, x == y))
371408 subnets :
372409 description : " subnets specifies the subnets to
373410 which the load balancer will attach. The subnets
@@ -444,6 +481,25 @@ spec:
444481 rule : has(self.ids) && self.ids.size() > 0 ||
445482 has(self.names) && self.names.size() > 0
446483 type : object
484+ x-kubernetes-validations :
485+ - message : number of subnets must be equal to number
486+ of eipAllocations
487+ rule : ' has(self.subnets) && has(self.subnets.ids)
488+ && has(self.subnets.names) && has(self.eipAllocations)
489+ ? size(self.subnets.ids + self.subnets.names)
490+ == size(self.eipAllocations) : true'
491+ - message : number of subnets must be equal to number
492+ of eipAllocations
493+ rule : ' has(self.subnets) && has(self.subnets.ids)
494+ && !has(self.subnets.names) && has(self.eipAllocations)
495+ ? size(self.subnets.ids) == size(self.eipAllocations)
496+ : true'
497+ - message : number of subnets must be equal to number
498+ of eipAllocations
499+ rule : ' has(self.subnets) && has(self.subnets.names)
500+ && !has(self.subnets.ids) && has(self.eipAllocations)
501+ ? size(self.subnets.names) == size(self.eipAllocations)
502+ : true'
447503 type :
448504 description : " type is the type of AWS load balancer
449505 to instantiate for an ingresscontroller. \n Valid
@@ -547,6 +603,11 @@ spec:
547603 - dnsManagementPolicy
548604 - scope
549605 type : object
606+ x-kubernetes-validations :
607+ - message : eipAllocations are forbidden when the scope is Internal.
608+ rule : ' !has(self.scope) || self.scope != '' Internal'' || !has(self.providerParameters)
609+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
610+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
550611 nodePort :
551612 description : nodePort holds parameters for the NodePortService
552613 endpoint publishing strategy. Present only if type is NodePortService.
@@ -2172,6 +2233,44 @@ spec:
21722233 parameters for an AWS network load balancer. Present
21732234 only if type is NLB.
21742235 properties :
2236+ eipAllocations :
2237+ description : " eipAllocations is a list of IDs
2238+ for Elastic IP (EIP) addresses that are assigned
2239+ to the Network Load Balancer. The following
2240+ restrictions apply: \n eipAllocations can only
2241+ be used with external scope, not internal. An
2242+ EIP can be allocated to only a single IngressController.
2243+ The number of EIP allocations must match the
2244+ number of subnets that are used for the load
2245+ balancer. Each EIP allocation must be unique.
2246+ A maximum of 10 EIP allocations are permitted.
2247+ \n See https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/elastic-ip-addresses-eip.html
2248+ for general information about configuration,
2249+ characteristics, and limitations of Elastic
2250+ IP addresses."
2251+ items :
2252+ description : EIPAllocation is an ID for an Elastic
2253+ IP (EIP) address that can be allocated to
2254+ an ELB in the AWS environment. Values must
2255+ begin with `eipalloc-` followed by exactly
2256+ 17 hexadecimal (`[0-9a-fA-F]`) characters.
2257+ maxLength : 26
2258+ minLength : 26
2259+ type : string
2260+ x-kubernetes-validations :
2261+ - message : eipAllocations should start with
2262+ ' eipalloc-'
2263+ rule : self.startsWith('eipalloc-')
2264+ - message : eipAllocations must be 'eipalloc-'
2265+ followed by exactly 17 hexadecimal characters
2266+ (0-9, a-f, A-F)
2267+ rule : self.split("-", 2)[1].matches('[0-9a-fA-F]{17}$')
2268+ maxItems : 10
2269+ type : array
2270+ x-kubernetes-list-type : atomic
2271+ x-kubernetes-validations :
2272+ - message : eipAllocations cannot contain duplicates
2273+ rule : self.all(x, self.exists_one(y, x == y))
21752274 subnets :
21762275 description : " subnets specifies the subnets to
21772276 which the load balancer will attach. The subnets
@@ -2248,6 +2347,25 @@ spec:
22482347 rule : has(self.ids) && self.ids.size() > 0 ||
22492348 has(self.names) && self.names.size() > 0
22502349 type : object
2350+ x-kubernetes-validations :
2351+ - message : number of subnets must be equal to number
2352+ of eipAllocations
2353+ rule : ' has(self.subnets) && has(self.subnets.ids)
2354+ && has(self.subnets.names) && has(self.eipAllocations)
2355+ ? size(self.subnets.ids + self.subnets.names)
2356+ == size(self.eipAllocations) : true'
2357+ - message : number of subnets must be equal to number
2358+ of eipAllocations
2359+ rule : ' has(self.subnets) && has(self.subnets.ids)
2360+ && !has(self.subnets.names) && has(self.eipAllocations)
2361+ ? size(self.subnets.ids) == size(self.eipAllocations)
2362+ : true'
2363+ - message : number of subnets must be equal to number
2364+ of eipAllocations
2365+ rule : ' has(self.subnets) && has(self.subnets.names)
2366+ && !has(self.subnets.ids) && has(self.eipAllocations)
2367+ ? size(self.subnets.names) == size(self.eipAllocations)
2368+ : true'
22512369 type :
22522370 description : " type is the type of AWS load balancer
22532371 to instantiate for an ingresscontroller. \n Valid
@@ -2351,6 +2469,11 @@ spec:
23512469 - dnsManagementPolicy
23522470 - scope
23532471 type : object
2472+ x-kubernetes-validations :
2473+ - message : eipAllocations are forbidden when the scope is Internal.
2474+ rule : ' !has(self.scope) || self.scope != '' Internal'' || !has(self.providerParameters)
2475+ || !has(self.providerParameters.aws) || !has(self.providerParameters.aws.networkLoadBalancer)
2476+ || !has(self.providerParameters.aws.networkLoadBalancer.eipAllocations)'
23542477 nodePort :
23552478 description : nodePort holds parameters for the NodePortService
23562479 endpoint publishing strategy. Present only if type is NodePortService.
0 commit comments