Skip to content

Commit

Permalink
NE-705: Add API for AWS LB Subnet Selection
Browse files Browse the repository at this point in the history
Allows users to specify subnets (i.e. Availability Zones) for
IngressControllers in AWS. Introduce under the
`AWSLoadBalancerSubnetSelection` FeatureGate.
  • Loading branch information
gcs278 committed Apr 1, 2024
1 parent f28a8dc commit 10900de
Show file tree
Hide file tree
Showing 10 changed files with 6,804 additions and 2 deletions.
16 changes: 16 additions & 0 deletions openapi/generated_openapi/zz_generated.openapi.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

11 changes: 10 additions & 1 deletion openapi/openapi.json
Expand Up @@ -25114,6 +25114,14 @@
"description": "networkLoadBalancerParameters holds configuration parameters for an AWS network load balancer. Present only if type is NLB.",
"$ref": "#/definitions/com.github.openshift.api.operator.v1.AWSNetworkLoadBalancerParameters"
},
"subnets": {
"description": "subnets specifies the list of subnets for the load balancer to route traffic to. The values can be either a subnetID or subnetName. Each subnet should be from a different availability zones, otherwise the AWS controller logic will break the tie based on the role tag, the cluster tag, and/or lexicographic order.\n\nWhen omitted, the subnets will be auto-discovered per availability zone.",
"type": "array",
"items": {
"type": "string",
"default": ""
}
},
"type": {
"description": "type is the type of AWS load balancer to instantiate for an ingresscontroller.\n\nValid values are:\n\n* \"Classic\": A Classic Load Balancer that makes routing decisions at either\n the transport layer (TCP/SSL) or the application layer (HTTP/HTTPS). See\n the following for additional details:\n\n https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#clb\n\n* \"NLB\": A Network Load Balancer that makes routing decisions at the\n transport layer (TCP/SSL). See the following for additional details:\n\n https://docs.aws.amazon.com/AmazonECS/latest/developerguide/load-balancer-types.html#nlb",
"type": "string",
Expand All @@ -25125,7 +25133,8 @@
"discriminator": "type",
"fields-to-discriminateBy": {
"classicLoadBalancer": "ClassicLoadBalancerParameters",
"networkLoadBalancer": "NetworkLoadBalancerParameters"
"networkLoadBalancer": "NetworkLoadBalancerParameters",
"subnets": "Subnets"
}
}
]
Expand Down
11 changes: 11 additions & 0 deletions operator/v1/types_ingress.go
Expand Up @@ -545,6 +545,17 @@ type AWSLoadBalancerParameters struct {
//
// +optional
NetworkLoadBalancerParameters *AWSNetworkLoadBalancerParameters `json:"networkLoadBalancer,omitempty"`

// subnets specifies the list of subnets for the load balancer to
// route traffic to. The values can be either a subnetID or subnetName.
// Each subnet should be from a different availability zones, otherwise
// the AWS controller logic will break the tie based on the role tag,
// the cluster tag, and/or lexicographic order.
//
// When omitted, the subnets will be auto-discovered per availability zone.
// +optional
// +openshift:enable:FeatureGate=AWSLoadBalancerSubnetSelection
Subnets []string `json:"subnets,omitempty"`
}

// AWSLoadBalancerType is the type of AWS load balancer to instantiate.
Expand Down

Large diffs are not rendered by default.

Expand Up @@ -7,6 +7,7 @@ metadata:
capability.openshift.io/name: Ingress
include.release.openshift.io/ibm-cloud-managed: "true"
include.release.openshift.io/self-managed-high-availability: "true"
release.openshift.io/feature-set: Default
name: ingresscontrollers.operator.openshift.io
spec:
group: operator.openshift.io
Expand Down

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions operator/v1/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion operator/v1/zz_generated.featuregated-crd-manifests.yaml
Expand Up @@ -174,7 +174,8 @@ ingresscontrollers.operator.openshift.io:
CRDName: ingresscontrollers.operator.openshift.io
Capability: Ingress
Category: ""
FeatureGates: []
FeatureGates:
- AWSLoadBalancerSubnetSelection
FilenameOperatorName: ingress
FilenameOperatorOrdering: "00"
FilenameRunLevel: "0000_50"
Expand Down

0 comments on commit 10900de

Please sign in to comment.