Skip to content

Commit c5d0abc

Browse files
authored
Merge branch 'main' into inbound_security_groups
2 parents a0cf1a8 + d88dac5 commit c5d0abc

File tree

246 files changed

+14359
-46039
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

246 files changed

+14359
-46039
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,3 +24,4 @@ site
2424
*.swo
2525
*~
2626
*.bak
27+
scripts/aws_sdk_model_override/*

.go-version

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.22.5
1+
1.22.8

.ko.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
defaultBaseImage: public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-nonroot:2023-09-06-1694026927.2
1+
defaultBaseImage: public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-nonroot:2024-08-13-1723575672.2
22
builds:
33
- env:
44
- CGO_ENABLED=0

Makefile

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
MAKEFILE_PATH = $(dir $(realpath -s $(firstword $(MAKEFILE_LIST))))
33

44
# Image URL to use all building/pushing image targets
5-
IMG ?= public.ecr.aws/eks/aws-load-balancer-controller:v2.7.0
5+
IMG ?= public.ecr.aws/eks/aws-load-balancer-controller:v2.11.0
66
# Image URL to use for builder stage in Docker build
77
GOLANG_VERSION ?= $(shell cat .go-version)
88
BUILD_IMAGE ?= public.ecr.aws/docker/library/golang:$(GOLANG_VERSION)
99
# Image URL to use for base layer in Docker build
10-
BASE_IMAGE ?= public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-nonroot:2023-09-06-1694026927.2
10+
BASE_IMAGE ?= public.ecr.aws/eks-distro-build-tooling/eks-distro-minimal-base-nonroot:2024-08-13-1723575672.2
1111
IMG_PLATFORM ?= linux/amd64,linux/arm64
1212
# ECR doesn't appear to support SPDX SBOM
1313
IMG_SBOM ?= none
@@ -32,7 +32,7 @@ all: controller
3232

3333
# Run tests
3434
test: generate fmt vet manifests helm-lint
35-
go test -race ./pkg/... ./webhooks/... -coverprofile cover.out
35+
go test -race ./pkg/... ./webhooks/... ./controllers/... -coverprofile cover.out
3636

3737
# Build controller binary
3838
controller: generate fmt vet
@@ -169,7 +169,7 @@ docs-preview: docs-dependencies
169169

170170
# publish the versioned docs using mkdocs mike util
171171
docs-publish: docs-dependencies
172-
pipenv run mike deploy v2.7 latest -p --update-aliases
172+
pipenv run mike deploy v2.11 latest -p --update-aliases
173173

174174
# install dependencies needed to preview and publish docs
175175
docs-dependencies:

OWNERS

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,17 @@
55

66
approvers:
77
- M00nF1sh
8-
- kishorj
9-
- johngmyers
108
- oliviassss
9+
- shraddhabang
10+
- wweiwei-li
11+
- zac-nixon
1112
reviewers:
1213
- M00nF1sh
13-
- kishorj
14-
- johngmyers
1514
- oliviassss
15+
- shraddhabang
16+
- wweiwei-li
17+
- zac-nixon
1618
emeritus_approvers:
1719
- bigkraig
1820
- alejandrox1
21+
- johngmyers

apis/elbv2/v1alpha1/targetgroupbinding_types.go

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -107,7 +107,16 @@ type TargetGroupBindingNetworking struct {
107107
// TargetGroupBindingSpec defines the desired state of TargetGroupBinding
108108
type TargetGroupBindingSpec struct {
109109
// targetGroupARN is the Amazon Resource Name (ARN) for the TargetGroup.
110-
TargetGroupARN string `json:"targetGroupARN"`
110+
// +optional
111+
TargetGroupARN string `json:"targetGroupARN,omitempty"`
112+
113+
// targetGroupName is the Name of the TargetGroup.
114+
// +optional
115+
TargetGroupName string `json:"targetGroupName,omitempty"`
116+
117+
// MultiClusterTargetGroup Denotes if the TargetGroup is shared among multiple clusters
118+
// +optional
119+
MultiClusterTargetGroup bool `json:"multiClusterTargetGroup,omitempty"`
111120

112121
// targetType is the TargetType of TargetGroup. If unspecified, it will be automatically inferred.
113122
// +optional
@@ -134,6 +143,7 @@ type TargetGroupBindingStatus struct {
134143
// +kubebuilder:printcolumn:name="SERVICE-PORT",type="string",JSONPath=".spec.serviceRef.port",description="The Kubernetes Service's port"
135144
// +kubebuilder:printcolumn:name="TARGET-TYPE",type="string",JSONPath=".spec.targetType",description="The AWS TargetGroup's TargetType"
136145
// +kubebuilder:printcolumn:name="ARN",type="string",JSONPath=".spec.targetGroupARN",description="The AWS TargetGroup's Amazon Resource Name",priority=1
146+
// +kubebuilder:printcolumn:name="NAME",type="string",JSONPath=".spec.targetGroupName",description="The AWS TargetGroup's Name",priority=2
137147
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
138148
// TargetGroupBinding is the Schema for the TargetGroupBinding API
139149
type TargetGroupBinding struct {

apis/elbv2/v1beta1/ingressclassparams_types.go

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,28 @@ type Attribute struct {
8585
Value string `json:"value"`
8686
}
8787

88+
type ListenerProtocol string
89+
90+
const (
91+
ListenerProtocolHTTP ListenerProtocol = "HTTP"
92+
ListenerProtocolHTTPS ListenerProtocol = "HTTPS"
93+
)
94+
95+
type Listener struct {
96+
// The protocol of the listener
97+
Protocol ListenerProtocol `json:"protocol,omitempty"`
98+
// The port of the listener
99+
Port int32 `json:"port,omitempty"`
100+
// The attributes of the listener
101+
ListenerAttributes []Attribute `json:"listenerAttributes,omitempty"`
102+
}
103+
104+
// Information about a load balancer capacity reservation.
105+
type MinimumLoadBalancerCapacity struct {
106+
// The Capacity Units Value.
107+
CapacityUnits int32 `json:"capacityUnits"`
108+
}
109+
88110
// IngressClassParamsSpec defines the desired state of IngressClassParams
89111
type IngressClassParamsSpec struct {
90112
// CertificateArn specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams.
@@ -126,6 +148,14 @@ type IngressClassParamsSpec struct {
126148
// LoadBalancerAttributes define the custom attributes to LoadBalancers for all Ingress that that belong to IngressClass with this IngressClassParams.
127149
// +optional
128150
LoadBalancerAttributes []Attribute `json:"loadBalancerAttributes,omitempty"`
151+
152+
// Listeners define a list of listeners with their protocol, port and attributes.
153+
// +optional
154+
Listeners []Listener `json:"listeners,omitempty"`
155+
156+
// MinimumLoadBalancerCapacity define the capacity reservation for LoadBalancers for all Ingress that belong to IngressClass with this IngressClassParams.
157+
// +optional
158+
MinimumLoadBalancerCapacity *MinimumLoadBalancerCapacity `json:"minimumLoadBalancerCapacity,omitempty"`
129159
}
130160

131161
// +kubebuilder:object:root=true

apis/elbv2/v1beta1/targetgroupbinding_types.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -124,8 +124,16 @@ type TargetGroupBindingNetworking struct {
124124
// TargetGroupBindingSpec defines the desired state of TargetGroupBinding
125125
type TargetGroupBindingSpec struct {
126126
// targetGroupARN is the Amazon Resource Name (ARN) for the TargetGroup.
127-
// +kubebuilder:validation:MinLength=1
128-
TargetGroupARN string `json:"targetGroupARN"`
127+
// +optional
128+
TargetGroupARN string `json:"targetGroupARN,omitempty"`
129+
130+
// targetGroupName is the Name of the TargetGroup.
131+
// +optional
132+
TargetGroupName string `json:"targetGroupName,omitempty"`
133+
134+
// MultiClusterTargetGroup Denotes if the TargetGroup is shared among multiple clusters
135+
// +optional
136+
MultiClusterTargetGroup bool `json:"multiClusterTargetGroup,omitempty"`
129137

130138
// targetType is the TargetType of TargetGroup. If unspecified, it will be automatically inferred.
131139
// +optional
@@ -165,6 +173,7 @@ type TargetGroupBindingStatus struct {
165173
// +kubebuilder:printcolumn:name="SERVICE-PORT",type="string",JSONPath=".spec.serviceRef.port",description="The Kubernetes Service's port"
166174
// +kubebuilder:printcolumn:name="TARGET-TYPE",type="string",JSONPath=".spec.targetType",description="The AWS TargetGroup's TargetType"
167175
// +kubebuilder:printcolumn:name="ARN",type="string",JSONPath=".spec.targetGroupARN",description="The AWS TargetGroup's Amazon Resource Name",priority=1
176+
// +kubebuilder:printcolumn:name="NAME",type="string",JSONPath=".spec.targetGroupName",description="The AWS TargetGroup's Name",priority=2
168177
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
169178
// TargetGroupBinding is the Schema for the TargetGroupBinding API
170179
type TargetGroupBinding struct {

apis/elbv2/v1beta1/zz_generated.deepcopy.go

Lines changed: 47 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/controller/kustomization.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ kind: Kustomization
99
images:
1010
- name: controller
1111
newName: public.ecr.aws/eks/aws-load-balancer-controller
12-
newTag: v2.7.0
12+
newTag: v2.11.0

config/crd/bases/elbv2.k8s.aws_ingressclassparams.yaml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,36 @@ spec:
8585
- dualstack
8686
- dualstack-without-public-ipv4
8787
type: string
88+
listeners:
89+
description: Listeners define a list of listeners with their protocol,
90+
port and attributes.
91+
items:
92+
properties:
93+
listenerAttributes:
94+
description: The attributes of the listener
95+
items:
96+
description: Attributes defines custom attributes on resources.
97+
properties:
98+
key:
99+
description: The key of the attribute.
100+
type: string
101+
value:
102+
description: The value of the attribute.
103+
type: string
104+
required:
105+
- key
106+
- value
107+
type: object
108+
type: array
109+
port:
110+
description: The port of the listener
111+
format: int32
112+
type: integer
113+
protocol:
114+
description: The protocol of the listener
115+
type: string
116+
type: object
117+
type: array
88118
loadBalancerAttributes:
89119
description: LoadBalancerAttributes define the custom attributes to
90120
LoadBalancers for all Ingress that that belong to IngressClass with
@@ -103,6 +133,18 @@ spec:
103133
- value
104134
type: object
105135
type: array
136+
minimumLoadBalancerCapacity:
137+
description: MinimumLoadBalancerCapacity define the capacity reservation
138+
for LoadBalancers for all Ingress that belong to IngressClass with
139+
this IngressClassParams.
140+
properties:
141+
capacityUnits:
142+
description: The Capacity Units Value.
143+
format: int32
144+
type: integer
145+
required:
146+
- capacityUnits
147+
type: object
106148
namespaceSelector:
107149
description: |-
108150
NamespaceSelector restrict the namespaces of Ingresses that are allowed to specify the IngressClass with this IngressClassParams.

config/crd/bases/elbv2.k8s.aws_targetgroupbindings.yaml

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ spec:
3232
name: ARN
3333
priority: 1
3434
type: string
35+
- description: The AWS TargetGroup's Name
36+
jsonPath: .spec.targetGroupName
37+
name: NAME
38+
priority: 2
39+
type: string
3540
- jsonPath: .metadata.creationTimestamp
3641
name: AGE
3742
type: date
@@ -60,6 +65,10 @@ spec:
6065
spec:
6166
description: TargetGroupBindingSpec defines the desired state of TargetGroupBinding
6267
properties:
68+
multiClusterTargetGroup:
69+
description: MultiClusterTargetGroup Denotes if the TargetGroup is
70+
shared among multiple clusters
71+
type: boolean
6372
networking:
6473
description: networking provides the networking setup for ELBV2 LoadBalancer
6574
to access targets in TargetGroup.
@@ -156,6 +165,9 @@ spec:
156165
description: targetGroupARN is the Amazon Resource Name (ARN) for
157166
the TargetGroup.
158167
type: string
168+
targetGroupName:
169+
description: targetGroupName is the Name of the TargetGroup.
170+
type: string
159171
targetType:
160172
description: targetType is the TargetType of TargetGroup. If unspecified,
161173
it will be automatically inferred.
@@ -165,7 +177,6 @@ spec:
165177
type: string
166178
required:
167179
- serviceRef
168-
- targetGroupARN
169180
type: object
170181
status:
171182
description: TargetGroupBindingStatus defines the observed state of TargetGroupBinding
@@ -198,6 +209,11 @@ spec:
198209
name: ARN
199210
priority: 1
200211
type: string
212+
- description: The AWS TargetGroup's Name
213+
jsonPath: .spec.targetGroupName
214+
name: NAME
215+
priority: 2
216+
type: string
201217
- jsonPath: .metadata.creationTimestamp
202218
name: AGE
203219
type: date
@@ -233,6 +249,10 @@ spec:
233249
- ipv4
234250
- ipv6
235251
type: string
252+
multiClusterTargetGroup:
253+
description: MultiClusterTargetGroup Denotes if the TargetGroup is
254+
shared among multiple clusters
255+
type: boolean
236256
networking:
237257
description: networking defines the networking rules to allow ELBV2
238258
LoadBalancer to access targets in TargetGroup.
@@ -379,7 +399,9 @@ spec:
379399
targetGroupARN:
380400
description: targetGroupARN is the Amazon Resource Name (ARN) for
381401
the TargetGroup.
382-
minLength: 1
402+
type: string
403+
targetGroupName:
404+
description: targetGroupName is the Name of the TargetGroup.
383405
type: string
384406
targetType:
385407
description: targetType is the TargetType of TargetGroup. If unspecified,
@@ -394,7 +416,6 @@ spec:
394416
type: string
395417
required:
396418
- serviceRef
397-
- targetGroupARN
398419
type: object
399420
status:
400421
description: TargetGroupBindingStatus defines the observed state of TargetGroupBinding

config/rbac/role.yaml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,15 @@ kind: ClusterRole
44
metadata:
55
name: controller-role
66
rules:
7+
- apiGroups:
8+
- ""
9+
resources:
10+
- configmaps
11+
verbs:
12+
- create
13+
- delete
14+
- get
15+
- update
716
- apiGroups:
817
- ""
918
resources:

0 commit comments

Comments
 (0)