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

Add config for k8s Services' ipFamilies and ipFamilyPolicy #3485

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

mike-matera
Copy link
Contributor

@mike-matera mike-matera commented Aug 23, 2024

This pull request addresses issue #3484. It updates the service template to enable users to expose their JupyterHub on an IPv6 address if their cloud allows it.

EDIT: adds [hub|proxy].service.[ipFamilies|ipFamilyPolicy] config

@manics
Copy link
Member

manics commented Aug 25, 2024

What are the requirements for this to work- does the K8s cluster itself need to support IPv6? If so, would it make more sense for IPv6 or dual-stack to be set at a higher level, instead of on individual components?

@consideRatio consideRatio changed the title Enable setting ipFamiles and ipFamilyPolicy Add config for k8s Services' ipFamilies and ipFamilyPolicy Sep 18, 2024
@consideRatio
Copy link
Member

I figure we can get this PR allowing the k8s Service resource to be configurable according to k8s specification, so that other pieces can be more easily worked on towards having broader support of IPv4 / IPv6 things.

I pushed a commit providing default values and updating the schema to support configuring this, and making it possible to configure all k8s Service resources this chart provides.

Comment on lines -22 to -24
{{- with .Values.hub.service.loadBalancerIP }}
loadBalancerIP: {{ . }}
{{- end }}
Copy link
Member

Choose a reason for hiding this comment

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

refactor: I moved this so it was positioned as it was in the other k8s Service templates

@consideRatio
Copy link
Member

@manics what do you think, go for a merge of this?

@manics
Copy link
Member

manics commented Sep 19, 2024

We don't have any tests for this. What do you think about merging it after the next release? That means if we find problems with how we implement IPv6 support we can make changes to these new parameters which would otherwise count as a breaking change if they're already in a release?

@consideRatio
Copy link
Member

Thanks for the quick followup @manics, deal lets hold off until z2jh 4 is released.

@mike-matera
Copy link
Contributor Author

@manics ... Sorry I didn't see your question earlier. There are three official requirements for IPv6 dual stack support.

  1. Kubernetes >= 1.20
  2. Support for IPv6 in your cloud provider or on your local host
  3. A network plugin that supports dual stack (Calico does)

To test IPv6 support you don't need a host with a real IPv6 address, you just need IPv6 turned on in the cluster. Clusters get an IPv6 site local prefix which serve the same purpose of the 10.x.x.x addresses in the cluster.

Thanks for working on this! At my shcool the NAT situation is super weird and the only way to make z2jh available to students on campus is to have IPv6 turned on.

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

Successfully merging this pull request may close these issues.

3 participants