Skip to content

hack: the ipv6 kubeconfig repoint breaks kubectl on a native-Linux Docker host #1099

Open

Description

@ygao-g

hack/create-kind-cluster.sh:148-160 rewrites kind's https://[::1]:PORT kubeconfig entry to
https://localhost:PORT whenever IP_FAMILY=ipv6, on the reasoning in the comment that localhost
"lets the client pick a family that works from either side". It cannot: on Debian-family hosts
/etc/hosts gives ::1 the names ip6-localhost and ip6-loopback, not localhost, so
localhost resolves v4-only while the apiserver is published on v6 only.

Measured on Ubuntu 25.10 with a native Docker daemon: kind publishes 6443/tcp -> [::1]:42311,
https://[::1]:42311/healthz answers ok, and https://localhost:42311/healthz is refused. The
repoint replaces a working address with a broken one and every later kubectl in the script dies at
connect. It is only needed when the daemon lives in a VM (Lima on macOS), which is the topology
every IPv6-only run in this project has used so far — hence it went unnoticed. Introduced in #877;
#958 makes the repoint conditional on [::1] failing to answer, and this issue tracks landing that
on main if #958 does not.

Activity

  1. asjdf commented on Aug 21, 2026

    @asjdf

    Yuan Gao (@ygao-g) Drafted a kubeconfig-only extract of the healthz gate from #958 so native-Linux Docker hosts are not blocked while that larger IPv6 DNS PR is in review: #1118

    Happy to close it if #958 merges first.

  2. BenTheElder commented on Aug 21, 2026

    @BenTheElder
    Collaborator

    Why are we rewriting this at all? This is the host kubeconfig, it shouldn't matter for the purposes of testing substrate with ipv6?

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions