Repository navigation
Add additionalServices to the UDP ping service for a separate IPv6 LoadBalancer - #4808
lazy-slackoth wants to merge 4 commits into
Conversation
631ddc0 to
fc7a526
Compare
Lets the chart create extra UDP Services in front of the ping pods, e.g. a separate IPv6-only LoadBalancer when IPv4 and IPv6 need different annotations, network tiers or static addresses. Defaults to [], so the rendered chart is unchanged. Signed-off-by: Alexander Taran <137988972+lazy-slackoth@users.noreply.github.com>
fc7a526 to
24c9594
Compare
|
/gcbrun |
|
@igooch - in case you want to look - you're most familiar with GKE these days 😄 |
|
Build Succeeded 🥳 Build Id: 53e385fc-ad61-426a-83d4-3d0a76bd440b The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version: |
|
An alternative to this implementation: a root-level |
|
This isn't specific to GKE. The number of IPv6 users keeps growing, so on any cloud provider it should be possible to expose |
|
Sounds legit 👍🏻 |
There was a problem hiding this comment.
🟡 Changes recommended
The Helm template drops explicit LoadBalancer node ports and ignores NodePort traffic policies, risking broken firewall rules and lost source-IP preservation, while misleading inheritance guidance can leave additional load balancers unrestricted.
3 open issues
What changed in this PR
Adds optional UDP ping Services to the Agones Helm chart, allowing separate IPv4 and IPv6 load balancers with independent annotations and addresses.
Changes:
- Renders additional Services targeting the existing ping pods.
- Adds configuration schema and an empty-list default, leaving default rendering unchanged.
- Documents supported fields and fallback behavior for version 1.62.0.
| File | Description |
|---|---|
site/content/en/docs/Installation/Install Agones/helm.md |
Documents additional UDP Services and inherited settings. |
install/helm/agones/values.yaml |
Adds the default empty list and an IPv6 configuration example. |
install/helm/agones/values.schema.json |
Defines validation for additional Service entries. |
install/helm/agones/templates/ping.yaml |
Renders additional UDP Services with per-entry configuration. |
Review effort: Balanced
Render nodePort for LoadBalancer as well as NodePort, render externalTrafficPolicy for both types, and name the inherited fields in the values.yaml comment. Signed-off-by: Alexander Taran <137988972+lazy-slackoth@users.noreply.github.com>
|
Copilot recommendations applied |


What type of PR is this?
/kind feature
What this PR does / Why we need it:
Adds
agones.ping.udp.additionalServices, a list of extra UDP Services in front of the ping pods. Each entry takes its ownname,annotations,ipFamilyPolicy,ipFamilies,loadBalancerIP,loadBalancerSourceRanges,externalTrafficPolicy,serviceType,portandnodePort; unsetport,serviceTypeandexternalTrafficPolicyfall back toagones.ping.udp.Use case: on GKE, IPv6 external passthrough load balancers require Premium network tier, while existing IPv4 ping endpoints can be on Standard tier with a reserved static address. One dual-stack Service can't carry both, so an extra IPv6-only Service with its own annotations is needed. The ping server already listens dual-stack (
udp :8080), so no binary change is required.Default is
[]; the rendered chart is unchanged. Docs row added underpublishVersion="1.62.0", schema updated.Which issue(s) this PR fixes:
N/A
Special notes for your reviewer:
Tested with
helm lintandhelm template(default render identical apart from generated certs; LoadBalancer IPv6 and NodePort entries render as expected; schema rejects a non-integerport).