Make vpc-cni and kube-proxy optional when creating IPv6 clusters - #8790
Open
41ks wants to merge 1 commit into
Open
Make vpc-cni and kube-proxy optional when creating IPv6 clusters#879041ks wants to merge 1 commit into
41ks wants to merge 1 commit into
Conversation
The initial implementation of IPv6 cluster creation assumed a requirement for AWS VPC CNI and Kube Proxy. As other CNI/proxy solutions add support for IPv6, this change removes the requirement for the 2 above addons when creating IPv6 clusters. It also removes the requirement to use OIDC if vpc-cni is not in use. Signed-off-by: Alex Melhem <alex.melhem@datadoghq.com>
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
The initial implementation of IPv6 cluster creation assumed a requirement for AWS VPC CNI and Kube Proxy. As other CNI/proxy solutions add support for IPv6, this change removes the requirement for the 2 above addons when creating IPv6 clusters. It also removes the requirement to use OIDC if
vpc-cniis not in use.I came across this as part of my work on supporting IPv6 in the Cilium ENI IPAM mode, which is tracked in cilium/cilium#18405. This support was released in Cilium 1.20. A lot of users using EKS + Cilium rely on eksctl to configure their clusters. Even the Cilium project relies on it to set up CI conformance testing. As such, having AWS VPC CNI, which conflicts with Cilium's own CNI and IPAM, as a hard requirement when creating IPv6 clusters is a significant blocker for adoption.
I have manually verified that creating an IPv6 cluster without the kube-proxy and vpc-cni addons is possible, meaning those requirements are only present in the validation in
eksctl. Even CoreDNS doesn't seem to be a strict requirement. However, this does not conflict with Cilium, so I left it as is.I also successfully built and ran
eksctlwith this cluster configuration :After this, I created a managed nodegroup with an IAM role containing the default node permissions plus an AssignIpv6Addresses permission. Then I ran this to install Cilium:
cilium install --version "v1.20.0" \ --set kubeProxyReplacement=true \ --set ipv6.enabled=true \ --set ipv4.enabled=false \ --set MTU=9001 \ --set endpointHealthChecking.enabled=false \ --set healthChecking=false \ --set enableIPv6Masquerade=falseWith this was done, connectivity was working as expected with pods getting IPv6 addresses assigned by Cilium.
Checklist
README.md, or theuserdocsdirectory)area/nodegroup) and kind (e.g.kind/improvement)BONUS POINTS checklist: complete for good vibes and maybe prizes?! 🤯