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

Network Interface ipv6 support #6135

Open
lli-hiya opened this issue May 2, 2024 · 6 comments
Open

Network Interface ipv6 support #6135

lli-hiya opened this issue May 2, 2024 · 6 comments
Labels
feature New feature or request

Comments

@lli-hiya
Copy link

lli-hiya commented May 2, 2024

Description

What problem are you trying to solve?

Add configurability for ipv6 support via Network Interface, more specifically allowing setting PrimaryIpv6 and Ipv6AddressCount that are currently supported in Launch Template.

Currently, Karpenter creates templated Network Interfaces based on EFA and associatePublicIPAddress needs, but I think having a more generic solution, like the one drafted in this closed PR #4353, is gonna be better for enabling more customizability, like the ones we asked above.

What do you think about this direction? If so, I'd like to make a contribution to support this feature.

How important is this feature to you?

Very important. Currently we are using Cluster-Autoscaler and have enabled primary ipv6 address on the network interfaces via Launch Template. The absence of this feature on the Karpenter side has prevented us from adopting this new tool.

  • Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request
  • Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
  • If you are interested in working on this issue or have submitted a pull request, please leave a comment
@lli-hiya lli-hiya added feature New feature or request needs-triage Issues that need to be triaged labels May 2, 2024
@engedaam
Copy link
Contributor

engedaam commented May 3, 2024

Contribution are welcome! Would be willing to close out this issue in favor of the original issue? #2026. I recommended adding your use case to that issue.

@jonathan-innis jonathan-innis removed the needs-triage Issues that need to be triaged label May 9, 2024
@jonathan-innis
Copy link
Contributor

#2026 was just closed. Given this use-case is specific to the IPv6 use-case, I think we can continue to track it here.

@jonathan-innis
Copy link
Contributor

have enabled primary ipv6 address on the network interfaces via Launch Template

Are you running an IPv6 or dual stack cluster? It strikes me that if we already have an "associatePublicIPAddress" field that we can just extend this for the IPv6 case. What's the specific fields in the LaunchTemplate that you need Karpenter to surface for your use-case?

@lli-hiya
Copy link
Author

lli-hiya commented May 16, 2024

@jonathan-innis

We are currently running a dual-stack cluster with IPv6 enabled on the primary ENI. We achieved this set up using the native EC2 Launch Template(reference).

To support this setup via Karpenter, we need to have configurability of EnablePrimaryIpv6 and Ipv6AddressCount for the time being, and are subject to add in more customizations in the future.

Based on our needs, I think having a more generic solution to surface the entire NetworkInterface, rather than cherry-picking the specific ones, would likely be a better solution. We don't have to support everything now, but having the structure ready would be handy. This is contrast to what karpenter currently has though, which it extracts this particular setting AssociatePublicIpAddress out.

What do you think?

@jmtsi
Copy link

jmtsi commented Jun 18, 2024

Just encountered this problem when trying to use instance-type targets for ALB, created by AWS Load Balancer Controller. This explains the issue in more detail.

So we definitely need to be able to enable the Assign primary IPv6 IP flag via Karpenter somehow, otherwise it's not possible to use instance-type targets for ALBs, which slows down the horizontal pod autoscaling and rolling deployments significantly.

@jmtsi
Copy link

jmtsi commented Oct 3, 2024

As a workaround, I made a custom build from Karpenter that forces this setting for all nodes. I agree with @lli-hiya that all the LaunchTemplateInstanceNetworkInterfaceSpecificationRequest parameters should be surfaced to EC2NodeClass CRD to allow the needed flexibility in configuring network interfaces

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

No branches or pull requests

4 participants