Skip to content

Conversation

cknost
Copy link
Collaborator

@cknost cknost commented Sep 23, 2025

ipFamilyPolicy for ipv6 Dual-Stack Ingress
https://github.com/traefik/traefik-helm-chart/blob/master/traefik/values.yaml#L825C5-L825C19

Summary by CodeRabbit

  • New Features

    • Traefik ingress will prefer dual‑stack networking (IPv4/IPv6) when a static external IP is configured, improving compatibility in mixed IP environments.
    • No changes for deployments that don't set a static load‑balancer IP.
  • Refactor

    • Ingress configuration now explicitly prefers dual‑stack when a static IP is present, yielding more predictable networking behavior across clusters.

Copy link

coderabbitai bot commented Sep 23, 2025

Walkthrough

Adds ipFamilyPolicy: PreferDualStack to the Traefik service values when .Values.ingress.IP is provided, alongside loadBalancerIP; no other templates, exports, or behavior changed.

Changes

Cohort / File(s) Summary
Traefik Ingress Helm template
charts/base-cluster/templates/ingress/traefik.yaml
Conditionally adds ipFamilyPolicy: PreferDualStack next to service.loadBalancerIP when .Values.ingress.IP is set; no other behavior changes.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant U as User Values (.Values)
    participant H as Helm Template
    participant K as Kubernetes Service (Traefik)

    U->>H: Provide ingress.IP
    alt .Values.ingress.IP is set
        H->>K: Render Service with\n`loadBalancerIP` and\n`ipFamilyPolicy: PreferDualStack`
        note right of K #D6EAF8: Dual-stack preference enabled
    else
        H->>K: Render Service without\n`ipFamilyPolicy` set
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I tweak the chart with careful knack,
A dual-stack hop along the track,
When an IP is placed in view,
PreferDualStack steps into cue.
Traefik smiles — the change is new. 🐇✨

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title clearly identifies the scope (base-cluster/traefik) and the primary intent—changing ipFamilyPolicy to enable dual-stack behavior—so it meaningfully summarizes the PR. It is slightly imprecise because the change sets ipFamilyPolicy to PreferDualStack rather than exactly "DualStack," but the intent is clear and relevant to the changeset.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch add_ipFamilyPolicy

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between ad59bca and a7fdc04.

📒 Files selected for processing (1)
  • charts/base-cluster/templates/ingress/traefik.yaml (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • charts/base-cluster/templates/ingress/traefik.yaml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (2)
  • GitHub Check: check licenses
  • GitHub Check: lint helm chart (base-cluster)

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🧹 Nitpick comments (1)
charts/base-cluster/values.schema.json (1)

1429-1437: Good addition; enum matches Kubernetes values.

The property is well-scoped and consistent with ServiceSpec ipFamilyPolicy values.

If desired, consider exposing ipFamilies (array: ["IPv4","IPv6"]) alongside ipFamilyPolicy for environments that require explicit ordering.

📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between abebb3b and 194fef4.

📒 Files selected for processing (3)
  • charts/base-cluster/templates/ingress/traefik.yaml (1 hunks)
  • charts/base-cluster/values.schema.json (1 hunks)
  • charts/base-cluster/values.yaml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
  • GitHub Check: Update release-please config file for a possibly new chart
  • GitHub Check: check licenses
  • GitHub Check: lint helm chart (base-cluster)
🔇 Additional comments (1)
charts/base-cluster/values.yaml (1)

442-442: Sensible default.

PreferDualStack is safe on single‑stack clusters and enables dual‑stack where supported.

Please confirm this default is intended for both nginx and traefik providers, even though only the Traefik template currently consumes it.

@cknost cknost force-pushed the add_ipFamilyPolicy branch 2 times, most recently from 1fa4e15 to dd6389a Compare September 23, 2025 11:54
@cknost cknost force-pushed the add_ipFamilyPolicy branch 2 times, most recently from e3ae0ab to ad59bca Compare September 24, 2025 13:36
@cknost cknost changed the title Added ipFamilyPolicy option to ingress feat: Changed ipFamilyPolicy to DualStack Sep 24, 2025
@cknost cknost changed the title feat: Changed ipFamilyPolicy to DualStack feat(base-cluster/traefik): Changed ipFamilyPolicy to DualStack Sep 24, 2025
@cknost cknost enabled auto-merge September 25, 2025 08:54
@cknost cknost added this pull request to the merge queue Sep 25, 2025
Merged via the queue into main with commit 166c9af Sep 25, 2025
71 of 87 checks passed
@cknost cknost deleted the add_ipFamilyPolicy branch September 25, 2025 09:05
github-merge-queue bot pushed a commit that referenced this pull request Sep 25, 2025
🤖 I have created a release *beep* *boop*
---


##
[9.4.0](base-cluster-v9.3.2...base-cluster-v9.4.0)
(2025-09-25)


### Features

* **base-cluster/traefik:** Changed ipFamilyPolicy to DualStack
([#1694](#1694))
([166c9af](166c9af))


### Bug Fixes

* **base-cluster/velero:** remove last reference to bitnami images
([#1701](#1701))
([50a5112](50a5112))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- New Features
- Enable DualStack IP family for Traefik in the base cluster, improving
IPv4/IPv6 compatibility.
- Bug Fixes
  - Addresses issues related to Velero stability.
- Documentation
- Adds a changelog entry for version 9.4.0 with details on new features
and fixes.
- Chores
- Bumps the base cluster chart to version 9.4.0 and updates the release
manifest.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants