Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Cannot connect to control plane on IPv6 when IPv4 is disabled. #899

Closed
BlakeB415 opened this issue Sep 10, 2023 · 3 comments
Closed

Cannot connect to control plane on IPv6 when IPv4 is disabled. #899

BlakeB415 opened this issue Sep 10, 2023 · 3 comments

Comments

@BlakeB415
Copy link

BlakeB415 commented Sep 10, 2023

/kind bug

What steps did you take and what happened:
Create a cluster with enableIPv4 false and enableIPv6 to true.
Results in WaitingForNodeRef on those machines.

What did you expect to happen:
The nodes to join the cluster.

Anything else you would like to add:
It seems to be using the IPv4 address of the LB (which can't be disabled), instead of the IPv6 one. The machines don't have IPv4 access.

I believe it should only use the LB IPv4 when enableIPv4 is set to true. If enableIPv4 is explicitly false and enableIPv6 is true, it should use the IPv6 address of the LB.

Environment:

  • cluster-api-provider-hetzner version: v1.0.0-beta.22
  • Kubernetes version: (use kubectl version) v1.25.5
  • OS (e.g. from /etc/os-release): Ubuntu 22.04.1 LTS
@BlakeB415 BlakeB415 changed the title Cannot connect to control plane when IPv4 is disabled. Cannot connect to control plane on IPv6 when IPv4 is disabled. Sep 10, 2023
@BlakeB415
Copy link
Author

BlakeB415 commented Sep 20, 2023

I looked through the code and it seems that this would have to be an option on the HetznerCluster object as that's what controls the API server endpoint URI.

So something along the lines of

controlPlaneEndpoint:
    host: ""
    port: 443
    ipv6Only: true

@batistein
Copy link
Contributor

The controlPlaneEndpoint doesn't come from us it's imported. But in general you can solve this problem by using a domain for the controlPlaneEndpoint.host

@BlakeB415
Copy link
Author

BlakeB415 commented Sep 21, 2023

The controlPlaneEndpoint doesn't come from us it's imported. But in general you can solve this problem by using a domain for the controlPlaneEndpoint.host

Alright, that would work.

Also, just found out the LB doesn't support IPv6-only targets for some reason. So using a private network or creating our own LB is the only option for now I suppose.

Thank you

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants