Skip to content

Conversation

ylebi
Copy link
Collaborator

@ylebi ylebi commented Sep 15, 2025

This commit implements comprehensive IPv6 support for ScyllaClusters, enabling:

  • IPv6-only ScyllaDB clusters
  • Dual-stack (IPv4/IPv6) Kubernetes services
  • IPv6 broadcast address handling
  • IPv6-aware probe servers and health checks
  • IPv6 support for multi-datacenter communication

Key changes:

  • Add ipFamily field to ScyllaCluster API with IPv4/IPv6 enum validation
  • Implement IPv6-aware networking helpers in pkg/helpers/networking.go
  • Add IPv6 support to ScyllaDB configuration (listen/rpc addresses, DNS lookups)
  • Update controllers to handle IPv6 service creation and endpoint management
  • Add comprehensive E2E tests for IPv6 scenarios
  • Include user documentation and working examples

The implementation maintains full backward compatibility with existing IPv4-only deployments.

Description of your changes:

Which issue is resolved by this Pull Request:
Resolves #2435

/kind feature

@scylla-operator-bot scylla-operator-bot bot added do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. labels Sep 15, 2025
Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by: ylebi
Once this PR has been reviewed and has the lgtm label, please assign mflendrich for approval. For more information see the Code Review Process.

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@scylla-operator-bot scylla-operator-bot bot added needs-priority Indicates a PR lacks a `priority/foo` label and requires one. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files. labels Sep 15, 2025
@ylebi ylebi force-pushed the feature/ipv6-support branch 2 times, most recently from 6d2fd33 to b57b05d Compare September 15, 2025 09:32
@ylebi
Copy link
Collaborator Author

ylebi commented Sep 15, 2025

/hold

@scylla-operator-bot scylla-operator-bot bot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Sep 15, 2025
@ylebi ylebi force-pushed the feature/ipv6-support branch from b57b05d to b1fce78 Compare September 17, 2025 10:18
@ylebi
Copy link
Collaborator Author

ylebi commented Sep 17, 2025

I discovered that our prow cluster is IPv4-only and we need to have dual-stack support in order to pass these tests. https://github.com/scylladb/scylla-operator-release/issues/490

@ylebi ylebi force-pushed the feature/ipv6-support branch 2 times, most recently from ffc2cc1 to 0559881 Compare October 15, 2025 12:59
Copy link
Collaborator Author

@ylebi ylebi left a comment

Choose a reason for hiding this comment

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

/retest

@rzetelskik
Copy link
Member

/test images e2e-gke-parallel-ipv6

@scylla-operator-bot scylla-operator-bot bot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 16, 2025
@ylebi ylebi force-pushed the feature/ipv6-support branch from 0559881 to 9f47951 Compare October 16, 2025 11:09
@scylla-operator-bot scylla-operator-bot bot removed the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 16, 2025
This commit implements comprehensive IPv6 support for ScyllaClusters, enabling:

- IPv6-only ScyllaDB clusters
- Dual-stack (IPv4/IPv6) Kubernetes services
- IPv6 broadcast address handling
- IPv6-aware probe servers and health checks
- IPv6 support for multi-datacenter communication

Key changes:
- Add ipFamily field to ScyllaCluster API with IPv4/IPv6 enum validation
- Implement IPv6-aware networking helpers in pkg/helpers/networking.go
- Add IPv6 support to ScyllaDB configuration (listen/rpc addresses, DNS lookups)
- Update controllers to handle IPv6 service creation and endpoint management
- Add comprehensive E2E tests for IPv6 scenarios
- Include user documentation and working examples

The implementation maintains full backward compatibility with existing IPv4-only deployments.
@ylebi ylebi force-pushed the feature/ipv6-support branch from 9f47951 to dbbff22 Compare October 16, 2025 11:23
@ylebi
Copy link
Collaborator Author

ylebi commented Oct 16, 2025

/test images e2e-gke-parallel-ipv6

@ylebi
Copy link
Collaborator Author

ylebi commented Oct 17, 2025

/test e2e-gke-parallel-ipv6

Copy link
Contributor

@ylebi: The following tests failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name Commit Details Required Rerun command
ci/prow/e2e-gke-parallel-clusterip dbbff22 link true /test e2e-gke-parallel-clusterip
ci/prow/e2e-gke-multi-datacenter-parallel dbbff22 link true /test e2e-gke-multi-datacenter-parallel
ci/prow/olm-bundle-openshift-preflight dbbff22 link true /test olm-bundle-openshift-preflight
ci/prow/e2e-gke-parallel-ipv6 dbbff22 link false /test e2e-gke-parallel-ipv6

Full PR test history. Your PR dashboard.

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. I understand the commands that are listed here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. kind/feature Categorizes issue or PR as related to a new feature. needs-priority Indicates a PR lacks a `priority/foo` label and requires one. size/XXL Denotes a PR that changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add support for running ScyllaClusters on IPv6

2 participants