smengcl opened a new pull request, #11510:
URL: https://github.com/apache/ozone/pull/11510
Generated-by: Claude Code (Opus 5.5)
## What changes were proposed in this pull request?
No test currently runs an Ozone cluster over IPv6 end to end. The IPv6 fixes
under HDDS-15763 only have unit tests, so a regression in listener setup, peer
addressing or a client path would not be caught.
This adds an acceptance test that runs the non-secure `ozone-ha` compose
cluster (SCM HA, OM HA, three datanodes, Recon, S3 Gateway) on a Docker network
with IPv4 disabled:
* `compose/ozone-ha/ipv6.yaml` is a compose override that sets `enable_ipv4:
false` and `enable_ipv6: true` on the network and sets the bind host properties
to `::`. SCM HA reads its RPC bind hosts only from the keys suffixed with
service ID and node ID, so those are set per node. Existing environments are
unchanged.
* `compose/ozone-ha/test-ipv6.sh` (suite `HA-unsecure`) reuses existing
robot suites: shell, `ofs`, S3 object put and get, `admincli` datanode,
pipeline and SCM roles, OM roles and OM leader transfer.
* `smoketest/ipv6/ipv6.robot` adds checks specific to this environment:
* no host resolves to an IPv4 address, so a test cannot silently fall back
to IPv4
* datanodes register with IPv6 addresses
* `ozone admin reconfig --service=DATANODE --in-service-datanodes
properties` reaches each datanode by its IPv6 address
* SCM, OM, Recon and S3 Gateway HTTP servers answer on a bracketed IPv6
literal
* SCM and OM are reachable when the client addresses are overridden with
bracketed IPv6 literals
Not covered here:
* Bracketed IPv6 literals in the servers' own configuration. That needs
static container addresses and can be a follow-up.
* A secure (Kerberos) variant, which is a separate subtask.
* If Docker cannot create an IPv6-only network, the test fails. It does not
report itself as skipped.
## What is the link to the Apache JIRA
https://issues.apache.org/jira/browse/HDDS-16969
## How was this patch tested?
Ran `compose/ozone-ha/test-ipv6.sh` from a locally built distribution on
Docker 29.8.2 with Compose v2. All suites passed. The containers had no IPv4
address and every listener was bound to `:::port`.
GitHub-hosted runners have no outbound IPv6 route, but this test only needs
traffic between containers on a local bridge. The acceptance (HA-unsecure) job
of this PR is the first run there.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]