-
Notifications
You must be signed in to change notification settings - Fork 1.6k
feat: add AWS Global Accelerator support #4314
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
feat: add AWS Global Accelerator support #4314
Conversation
Welcome @taylorsmithgg! |
Hi @taylorsmithgg. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. |
Implements comprehensive AWS Global Accelerator integration for the AWS Load Balancer Controller. This adds a new GlobalAccelerator Custom Resource Definition (CRD) that allows users to: - Create and manage AWS Global Accelerators through Kubernetes resources - Configure listeners with TCP/UDP protocols and port ranges - Define endpoint groups across multiple AWS regions - Automatically discover endpoints from Kubernetes LoadBalancer services - Control traffic distribution with dial percentages - Configure health checks and port overrides Key components: - Complete CRD with validation webhooks - Controller with full reconciliation logic - AWS SDK v2 integration - Service endpoint discovery - Comprehensive test coverage - Documentation and examples - RBAC permissions
7e84fbe
to
79ee771
Compare
/ok-to-test |
@taylorsmithgg Thank you for contributing this important feature. I will take a look at this. Please note that we will require an internal security review done on this before merging and releasing. I will handle that for you. |
I investigated the automated test failure and found that the Gateway tests were actually being skipped, not failing. The tests are disabled by default in the CI environment. I verified locally that the Gateway tests run properly with these Global Accelerator changes:
The "failure" in CI occurs because:
Local verification steps: Install project CRDs and Gateway API CRDs from our go.mod versionmake install Run Gateway testscd test/e2e/gateway && go test -enable-gateway-tests=true -cluster-name= -aws-region= -aws-vpc-id= The Global Accelerator implementation is self-contained and doesn't modify any Gateway-related code paths, so there's no risk of breaking existing functionality. |
Hi. The gateway failures are actually skipped. It looks like the controller isn't starting up for the service tests (but weirdly enough runs fine for the ingress tests). The controller isn't coming up because of this error:
It's because the new CRD wasn't added to the helm CRDs list: https://github.com/kubernetes-sigs/aws-load-balancer-controller/blob/main/helm/aws-load-balancer-controller/crds/crds.yaml (I thought we fixed the automation to generate in both places, sorry) |
I conducted my local testing using the CRDs from the project, as shown in my above comment. |
To fix the e2e tests / have our helm users be happy can you add your new crd defintiion |
Address reviewer feedback to include the new GlobalAccelerator CRD definition in the Helm chart's CRDs list to fix CI test failures.
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: taylorsmithgg The full list of commands accepted by this bot can be found here.
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Updates the Helm chart CRDs to include the new GlobalAccelerator custom resource definition added in the Global Accelerator feature.
What this PR does / why we need it
This PR implements comprehensive AWS Global Accelerator support for the AWS Load Balancer Controller, addressing the feature request in issue #1572.
AWS Global Accelerator is a networking service that improves the performance of your users' traffic by up to 60% using Amazon Web Services' global network infrastructure. This implementation allows Kubernetes users to create and manage Global Accelerators through native Kubernetes resources.
Which issue(s) this PR fixes
Fixes #1572
Key Features
GlobalAccelerator
Custom Resource Definition with comprehensive spec and status fieldsImplementation Details
Testing
make test
)make fmt
,make vet
)make manifests
)Example Usage
Documentation
docs/guide/globalaccelerator/globalaccelerator.md
docs/examples/globalaccelerator.yaml
Files Changed
Breaking Changes
None. This is a purely additive feature that doesn't affect existing functionality.