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

IPv6 Support for IPv6 Only Kubernetes Clusters #3454

Closed
rbuilta7 opened this issue Jan 30, 2025 · 2 comments
Closed

IPv6 Support for IPv6 Only Kubernetes Clusters #3454

rbuilta7 opened this issue Jan 30, 2025 · 2 comments
Labels
enhancement ✨ New feature or request

Comments

@rbuilta7
Copy link

When attempting to deploy zarf to an IPv6 ONLY kube cluster it fails due to hard coded IPv4 loopback addresses. The initial error happens when deploying the 'injector' pod.

Describe the behavior you'd like

When zarf init command is given on a IPv6 cluster it should deploy no different than when done on IPv4 cluster.

Describe alternatives you've considered

Either determining what IP stack is available or having a feature flag to tell zarf what it should be using.

Additional context

An example of where in the GitHub has the listener waiting for IPv4:

https://github.com/zarf-dev/zarf/blob/main/src/injector/src/main.rs#L266-L267

'zarf init`
2025-01-30 14:26:36 INF deploying component name=zarf-injector
2025-01-30 14:26:36 INF copying files count=1
2025-01-30 14:26:36 INF loading file name=###ZARF_TEMP###/zarf-injector
2025-01-30 14:26:36 INF waiting for cluster connection
2025-01-30 14:27:08 INF creating Zarf injector resources
2025-01-30 14:27:08 INF adding archived binary configmaps of registry image to the cluster
2025-01-30 14:28:13 ERR unable to deploy component "zarf-seed-registry": injector: Pod not ready
context deadline exceeded

[root@ipv6-test ~]# kubectl logs injector -n zarf
unpacking: 9895d304ba1db4a5d231da5fdb3a62091ed2cbfbd58ebd5c66a6172410491c16
Processing zarf-payload-000
Processing zarf-payload-001
Processing zarf-payload-002
Processing zarf-payload-003
Processing zarf-payload-004
Processing zarf-payload-005
Processing zarf-payload-006
Processing zarf-payload-007
Processing zarf-payload-008
Processing zarf-payload-009
Processing zarf-payload-010
Processing zarf-payload-011
Processing zarf-payload-012
listening on 0.0.0.0:5000 <--- Listening for IPv4

@rbuilta7 rbuilta7 added the enhancement ✨ New feature or request label Jan 30, 2025
@AustinAbro321
Copy link
Contributor

Some additional context from Christopher Jackson in k8s slack:

There seem to be multiple issues with IPV6 support. The first is that the injector pod that is spun up is configured with a readiness probe which doesn't specify a host field. This forces IPV4 connection for the provided port. If only IPV6 is assigned to the pod the readiness probe will always fail.
Additionally the logic within the injector seems to only take into considering IPV4 stack. (edited)

@AustinAbro321
Copy link
Contributor

Closing in favor of #3455

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement ✨ New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants