Skip to content

Commit 9b8a2f3

Browse files
committed
add ipv4 ipam support for alb
1 parent e942a0f commit 9b8a2f3

24 files changed

+1030
-71
lines changed

apis/elbv2/v1beta1/ingressclassparams_types.go

+11
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,13 @@ type MinimumLoadBalancerCapacity struct {
107107
CapacityUnits int32 `json:"capacityUnits"`
108108
}
109109

110+
// IPAMConfiguration defines the IPAM configuration for an Ingress.
111+
type IPAMConfiguration struct {
112+
// IPv4IPAMPoolId defines the IPAM pool ID used for IPv4 Addresses on the ALB.
113+
// +optional
114+
IPv4IPAMPoolId *string `json:"ipv4IPAMPoolId,omitempty"`
115+
}
116+
110117
// IngressClassParamsSpec defines the desired state of IngressClassParams
111118
type IngressClassParamsSpec struct {
112119
// CertificateArn specifies the ARN of the certificates for all Ingresses that belong to IngressClass with this IngressClassParams.
@@ -156,6 +163,10 @@ type IngressClassParamsSpec struct {
156163
// MinimumLoadBalancerCapacity define the capacity reservation for LoadBalancers for all Ingress that belong to IngressClass with this IngressClassParams.
157164
// +optional
158165
MinimumLoadBalancerCapacity *MinimumLoadBalancerCapacity `json:"minimumLoadBalancerCapacity,omitempty"`
166+
167+
// IPAMConfiguration defines the IPAM settings for a Load Balancer.
168+
// +optional
169+
IPAMConfiguration *IPAMConfiguration `json:"ipamConfiguration,omitempty"`
159170
}
160171

161172
// +kubebuilder:object:root=true

apis/elbv2/v1beta1/zz_generated.deepcopy.go

+25
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

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

+9
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,15 @@ spec:
8585
- dualstack
8686
- dualstack-without-public-ipv4
8787
type: string
88+
ipamConfiguration:
89+
description: IPAMConfiguration defines the IPAM settings for a Load
90+
Balancer.
91+
properties:
92+
ipv4IPAMPoolId:
93+
description: IPv4IPAMPoolId defines the IPAM pool ID used for
94+
IPv4 Addresses on the ALB.
95+
type: string
96+
type: object
8897
listeners:
8998
description: Listeners define a list of listeners with their protocol,
9099
port and attributes.

docs/guide/ingress/annotations.md

+63-48
Large diffs are not rendered by default.

docs/guide/ingress/ingress_class.md

+7-1
Original file line numberDiff line numberDiff line change
@@ -251,4 +251,10 @@ They may specify `capacityUnits`. If the field is specified, LBC will ignore the
251251

252252
##### spec.minimumLoadBalancerCapacity.capacityUnits
253253

254-
If `capacityUnits` is specified, it must be to valid positive value greater than 0. If set to 0, the LBC will reset the capacity reservation for the load balancer.
254+
If `capacityUnits` is specified, it must be to valid positive value greater than 0. If set to 0, the LBC will reset the capacity reservation for the load balancer.
255+
256+
#### spec.ipv4IPAMPoolId
257+
258+
The IPAM pool you choose will be the preferred source of public IPv4 addresses.
259+
If the pool is depleted, IPv4 addresses will be assigned by AWS.
260+
To remove the IPAM pool from your ALB, remove `spec.ipv4IPAMPoolId` from the IngressClass definition.

docs/install/iam_policy.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -193,7 +194,8 @@
193194
"elasticloadbalancing:ModifyTargetGroupAttributes",
194195
"elasticloadbalancing:DeleteTargetGroup",
195196
"elasticloadbalancing:ModifyListenerAttributes",
196-
"elasticloadbalancing:ModifyCapacityReservation"
197+
"elasticloadbalancing:ModifyCapacityReservation",
198+
"elasticloadbalancing:ModifyIpPools"
197199
],
198200
"Resource": "*",
199201
"Condition": {

docs/install/iam_policy_cn.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -215,7 +216,8 @@
215216
"elasticloadbalancing:ModifyTargetGroupAttributes",
216217
"elasticloadbalancing:DeleteTargetGroup",
217218
"elasticloadbalancing:ModifyListenerAttributes",
218-
"elasticloadbalancing:ModifyCapacityReservation"
219+
"elasticloadbalancing:ModifyCapacityReservation",
220+
"elasticloadbalancing:ModifyIpPools"
219221
],
220222
"Resource": "*",
221223
"Condition": {

docs/install/iam_policy_iso.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -210,7 +211,8 @@
210211
"elasticloadbalancing:DeleteLoadBalancer",
211212
"elasticloadbalancing:ModifyTargetGroup",
212213
"elasticloadbalancing:ModifyTargetGroupAttributes",
213-
"elasticloadbalancing:DeleteTargetGroup"
214+
"elasticloadbalancing:DeleteTargetGroup",
215+
"elasticloadbalancing:ModifyIpPools"
214216
],
215217
"Resource": "*",
216218
"Condition": {

docs/install/iam_policy_isob.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -210,7 +211,8 @@
210211
"elasticloadbalancing:DeleteLoadBalancer",
211212
"elasticloadbalancing:ModifyTargetGroup",
212213
"elasticloadbalancing:ModifyTargetGroupAttributes",
213-
"elasticloadbalancing:DeleteTargetGroup"
214+
"elasticloadbalancing:DeleteTargetGroup",
215+
"elasticloadbalancing:ModifyIpPools"
214216
],
215217
"Resource": "*",
216218
"Condition": {

docs/install/iam_policy_isoe.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -210,7 +211,8 @@
210211
"elasticloadbalancing:DeleteLoadBalancer",
211212
"elasticloadbalancing:ModifyTargetGroup",
212213
"elasticloadbalancing:ModifyTargetGroupAttributes",
213-
"elasticloadbalancing:DeleteTargetGroup"
214+
"elasticloadbalancing:DeleteTargetGroup",
215+
"elasticloadbalancing:ModifyIpPools"
214216
],
215217
"Resource": "*",
216218
"Condition": {

docs/install/iam_policy_isof.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -210,7 +211,8 @@
210211
"elasticloadbalancing:DeleteLoadBalancer",
211212
"elasticloadbalancing:ModifyTargetGroup",
212213
"elasticloadbalancing:ModifyTargetGroupAttributes",
213-
"elasticloadbalancing:DeleteTargetGroup"
214+
"elasticloadbalancing:DeleteTargetGroup",
215+
"elasticloadbalancing:ModifyIpPools"
214216
],
215217
"Resource": "*",
216218
"Condition": {

docs/install/iam_policy_us-gov.json

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
"ec2:GetCoipPoolUsage",
3131
"ec2:DescribeCoipPools",
3232
"ec2:GetSecurityGroupsForVpc",
33+
"ec2:DescribeIpamPools",
3334
"elasticloadbalancing:DescribeLoadBalancers",
3435
"elasticloadbalancing:DescribeLoadBalancerAttributes",
3536
"elasticloadbalancing:DescribeListeners",
@@ -215,7 +216,8 @@
215216
"elasticloadbalancing:ModifyTargetGroupAttributes",
216217
"elasticloadbalancing:DeleteTargetGroup",
217218
"elasticloadbalancing:ModifyListenerAttributes",
218-
"elasticloadbalancing:ModifyCapacityReservation"
219+
"elasticloadbalancing:ModifyCapacityReservation",
220+
"elasticloadbalancing:ModifyIpPools"
219221
],
220222
"Resource": "*",
221223
"Condition": {

go.mod

+5-5
Original file line numberDiff line numberDiff line change
@@ -4,21 +4,21 @@ go 1.23.6
44

55
require (
66
github.com/aws/aws-sdk-go v1.55.5
7-
github.com/aws/aws-sdk-go-v2 v1.32.6
7+
github.com/aws/aws-sdk-go-v2 v1.36.3
88
github.com/aws/aws-sdk-go-v2/config v1.27.27
99
github.com/aws/aws-sdk-go-v2/credentials v1.17.27
1010
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11
1111
github.com/aws/aws-sdk-go-v2/service/acm v1.28.4
1212
github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.7
1313
github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0
14-
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.43.1
14+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0
1515
github.com/aws/aws-sdk-go-v2/service/resourcegroupstaggingapi v1.23.3
1616
github.com/aws/aws-sdk-go-v2/service/servicediscovery v1.31.7
1717
github.com/aws/aws-sdk-go-v2/service/shield v1.27.3
1818
github.com/aws/aws-sdk-go-v2/service/sts v1.30.3
1919
github.com/aws/aws-sdk-go-v2/service/wafregional v1.23.3
2020
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4
21-
github.com/aws/smithy-go v1.22.1
21+
github.com/aws/smithy-go v1.22.2
2222
github.com/evanphx/json-patch v5.7.0+incompatible
2323
github.com/gavv/httpexpect/v2 v2.9.0
2424
github.com/go-logr/logr v1.4.2
@@ -58,8 +58,8 @@ require (
5858
github.com/ajg/form v1.5.1 // indirect
5959
github.com/andybalholm/brotli v1.0.4 // indirect
6060
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 // indirect
61-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 // indirect
62-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 // indirect
61+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 // indirect
62+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 // indirect
6363
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 // indirect
6464
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 // indirect
6565
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 // indirect

go.sum

+10-10
Original file line numberDiff line numberDiff line change
@@ -38,18 +38,18 @@ github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535 h1:4daAzAu0
3838
github.com/asaskevich/govalidator v0.0.0-20200428143746-21a406dcc535/go.mod h1:oGkLhpf+kjZl6xBf758TQhh5XrAeiJv/7FRz/2spLIg=
3939
github.com/aws/aws-sdk-go v1.55.5 h1:KKUZBfBoyqy5d3swXyiC7Q76ic40rYcbqH7qjh59kzU=
4040
github.com/aws/aws-sdk-go v1.55.5/go.mod h1:eRwEWoyTWFMVYVQzKMNHWP5/RV4xIUGMQfXQHfHkpNU=
41-
github.com/aws/aws-sdk-go-v2 v1.32.6 h1:7BokKRgRPuGmKkFMhEg/jSul+tB9VvXhcViILtfG8b4=
42-
github.com/aws/aws-sdk-go-v2 v1.32.6/go.mod h1:P5WJBrYqqbWVaOxgH0X/FYYD47/nooaPOZPlQdmiN2U=
41+
github.com/aws/aws-sdk-go-v2 v1.36.3 h1:mJoei2CxPutQVxaATCzDUjcZEjVRdpsiiXi2o38yqWM=
42+
github.com/aws/aws-sdk-go-v2 v1.36.3/go.mod h1:LLXuLpgzEbD766Z5ECcRmi8AzSwfZItDtmABVkRLGzg=
4343
github.com/aws/aws-sdk-go-v2/config v1.27.27 h1:HdqgGt1OAP0HkEDDShEl0oSYa9ZZBSOmKpdpsDMdO90=
4444
github.com/aws/aws-sdk-go-v2/config v1.27.27/go.mod h1:MVYamCg76dFNINkZFu4n4RjDixhVr51HLj4ErWzrVwg=
4545
github.com/aws/aws-sdk-go-v2/credentials v1.17.27 h1:2raNba6gr2IfA0eqqiP2XiQ0UVOpGPgDSi0I9iAP+UI=
4646
github.com/aws/aws-sdk-go-v2/credentials v1.17.27/go.mod h1:gniiwbGahQByxan6YjQUMcW4Aov6bLC3m+evgcoN4r4=
4747
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11 h1:KreluoV8FZDEtI6Co2xuNk/UqI9iwMrOx/87PBNIKqw=
4848
github.com/aws/aws-sdk-go-v2/feature/ec2/imds v1.16.11/go.mod h1:SeSUYBLsMYFoRvHE0Tjvn7kbxaUhl75CJi1sbfhMxkU=
49-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25 h1:s/fF4+yDQDoElYhfIVvSNyeCydfbuTKzhxSXDXCPasU=
50-
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.25/go.mod h1:IgPfDv5jqFIzQSNbUEMoitNooSMXjRSDkhXv8jiROvU=
51-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25 h1:ZntTCl5EsYnhN/IygQEUugpdwbhdkom9uHcbCftiGgA=
52-
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.25/go.mod h1:DBdPrgeocww+CSl1C8cEV8PN1mHMBhuCDLpXezyvWkE=
49+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34 h1:ZK5jHhnrioRkUNOc+hOgQKlUL5JeC3S6JgLxtQ+Rm0Q=
50+
github.com/aws/aws-sdk-go-v2/internal/configsources v1.3.34/go.mod h1:p4VfIceZokChbA9FzMbRGz5OV+lekcVtHlPKEO0gSZY=
51+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34 h1:SZwFm17ZUNNg5Np0ioo/gq8Mn6u9w19Mri8DnJ15Jf0=
52+
github.com/aws/aws-sdk-go-v2/internal/endpoints/v2 v2.6.34/go.mod h1:dFZsC0BLo346mvKQLWmoJxT+Sjp+qcVR1tRVHQGOH9Q=
5353
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0 h1:hT8rVHwugYE2lEfdFE0QWVo81lF7jMrYJVDWI+f+VxU=
5454
github.com/aws/aws-sdk-go-v2/internal/ini v1.8.0/go.mod h1:8tu/lYfQfFe6IGnaOdrpVgEL2IrrDOf6/m9RQum4NkY=
5555
github.com/aws/aws-sdk-go-v2/service/acm v1.28.4 h1:wiW1Y6/1lysA0eJZRq0I53YYKuV9MNAzL15z2eZRlEE=
@@ -58,8 +58,8 @@ github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.7 h1:q44a6kysAfej9zZwRnraOg9s
5858
github.com/aws/aws-sdk-go-v2/service/appmesh v1.27.7/go.mod h1:ZYSmrgAMp0rTCHH+SGsoxZo+PPbgsDqBzewTp3tSJ60=
5959
github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0 h1:ta62lid9JkIpKZtZZXSj6rP2AqY5x1qYGq53ffxqD9Q=
6060
github.com/aws/aws-sdk-go-v2/service/ec2 v1.173.0/go.mod h1:o6QDjdVKpP5EF0dp/VlvqckzuSDATr1rLdHt3A5m0YY=
61-
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.43.1 h1:L9Wt9zgtoYKIlaeFTy+EztGjL4oaXBBGtVXA+jaeYko=
62-
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.43.1/go.mod h1:yxzLdxt7bVGvIOPYIKFtiaJCJnx2ChlIIvlhW4QgI6M=
61+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0 h1:RB7V8wT9ypjE/YJVBgKjoydTOh4IFoqceGiKxFH70mY=
62+
github.com/aws/aws-sdk-go-v2/service/elasticloadbalancingv2 v1.45.0/go.mod h1:xnCC3vFBfOKpU6PcsCKL2ktgBTZfOwTGxj6V8/X3IS4=
6363
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3 h1:dT3MqvGhSoaIhRseqw2I0yH81l7wiR2vjs57O51EAm8=
6464
github.com/aws/aws-sdk-go-v2/service/internal/accept-encoding v1.11.3/go.mod h1:GlAeCkHwugxdHaueRr4nhPuY+WW+gR8UjlcqzPr1SPI=
6565
github.com/aws/aws-sdk-go-v2/service/internal/presigned-url v1.11.17 h1:HGErhhrxZlQ044RiM+WdoZxp0p+EGM62y3L6pwA4olE=
@@ -80,8 +80,8 @@ github.com/aws/aws-sdk-go-v2/service/wafregional v1.23.3 h1:7dr6En0/6KRFoz8VmnYk
8080
github.com/aws/aws-sdk-go-v2/service/wafregional v1.23.3/go.mod h1:24TtlRsv4LKAE3VnRJQhpatr8cpX0yj8NSzg8/lxOCw=
8181
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4 h1:1khBA5uryBRJoCb4G2iR5RT06BkfPEjjDCHAiRb8P3Q=
8282
github.com/aws/aws-sdk-go-v2/service/wafv2 v1.51.4/go.mod h1:QpFImaPGKNwa+MiZ+oo6LbV1PVQBapc0CnrAMRScoxM=
83-
github.com/aws/smithy-go v1.22.1 h1:/HPHZQ0g7f4eUeK6HKglFz8uwVfZKgoI25rb/J+dnro=
84-
github.com/aws/smithy-go v1.22.1/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
83+
github.com/aws/smithy-go v1.22.2 h1:6D9hW43xKFrRx/tXXfAlIZc4JI+yQe6snnWcQyxSyLQ=
84+
github.com/aws/smithy-go v1.22.2/go.mod h1:irrKGvNn1InZwb2d7fkIRNucdfwR8R+Ts3wxYa/cJHg=
8585
github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q=
8686
github.com/beorn7/perks v1.0.0/go.mod h1:KWe93zE9D1o94FZ5RNwFwVgaQK1VOXiVxmqh+CedLV8=
8787
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=

helm/aws-load-balancer-controller/crds/crds.yaml

+9
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,15 @@ spec:
8484
- dualstack
8585
- dualstack-without-public-ipv4
8686
type: string
87+
ipamConfiguration:
88+
description: IPAMConfiguration defines the IPAM settings for a Load
89+
Balancer.
90+
properties:
91+
ipv4IPAMPoolId:
92+
description: IPv4IPAMPoolId defines the IPAM pool ID used for
93+
IPv4 Addresses on the ALB.
94+
type: string
95+
type: object
8796
listeners:
8897
description: Listeners define a list of listeners with their protocol,
8998
port and attributes.

pkg/annotations/constants.go

+1
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ const (
5858
IngressSuffixlsAttsAnnotationPrefix = "listener-attributes"
5959
IngressLBSuffixMultiClusterTargetGroup = "multi-cluster-target-group"
6060
IngressSuffixLoadBalancerCapacityReservation = "minimum-load-balancer-capacity"
61+
IngressSuffixIPAMIPv4PoolId = "ipam-ipv4-pool-id"
6162

6263
// NLB annotation suffixes
6364
// prefixes service.beta.kubernetes.io, service.kubernetes.io

pkg/aws/services/elbv2.go

+9
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ type ELBV2 interface {
6161
ModifyListenerAttributesWithContext(ctx context.Context, input *elasticloadbalancingv2.ModifyListenerAttributesInput) (*elasticloadbalancingv2.ModifyListenerAttributesOutput, error)
6262
ModifyCapacityReservationWithContext(ctx context.Context, input *elasticloadbalancingv2.ModifyCapacityReservationInput) (*elasticloadbalancingv2.ModifyCapacityReservationOutput, error)
6363
DescribeCapacityReservationWithContext(ctx context.Context, input *elasticloadbalancingv2.DescribeCapacityReservationInput) (*elasticloadbalancingv2.DescribeCapacityReservationOutput, error)
64+
ModifyIPPoolsWithContext(ctx context.Context, input *elasticloadbalancingv2.ModifyIpPoolsInput) (*elasticloadbalancingv2.ModifyIpPoolsOutput, error)
6465
AssumeRole(ctx context.Context, assumeRoleArn string, externalId string) (ELBV2, error)
6566
}
6667

@@ -485,6 +486,14 @@ func (c *elbv2Client) DescribeCapacityReservationWithContext(ctx context.Context
485486
return client.DescribeCapacityReservation(ctx, input)
486487
}
487488

489+
func (c *elbv2Client) ModifyIPPoolsWithContext(ctx context.Context, input *elasticloadbalancingv2.ModifyIpPoolsInput) (*elasticloadbalancingv2.ModifyIpPoolsOutput, error) {
490+
client, err := c.getClient(ctx, "ModifyIpPools")
491+
if err != nil {
492+
return nil, err
493+
}
494+
return client.ModifyIpPools(ctx, input)
495+
}
496+
488497
func (c *elbv2Client) getClient(ctx context.Context, operation string) (*elasticloadbalancingv2.Client, error) {
489498
if c.staticELBClient != nil {
490499
return c.staticELBClient, nil

0 commit comments

Comments
 (0)