-
Notifications
You must be signed in to change notification settings - Fork 368
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 support for custom subnets in EKS #164
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks like a really cool use-case @janwillies! Apologies for the current state of the EKS
controller as it is a bit unwieldy at this time. It does a lot of "magic" behind the scenes, and I imagine we will wan to move it to having separate API types for clusters and node groups. I was wondering if you would prefer to try to get your functionality implemented in the short-term (with the knowledge that it will likely need to be refactored in the not too distant future) or work towards getting a v1beta1
representation of EKS prior to moving forward with this custom subnet functionality?
A few observations for the time-being:
- Looks like this got caught in the naming refactor (
stack-aws
->provider-aws
) so I believe a rebase will be necessary - It looks like you may be trying to create objects in the remote cluster using the EKS client. I think to do this we will need to get the
kubeconfig
info for provisioned cluster, then use it to get a kube client. As I am thinking about this, I wonder if we could accomplish some of this functionality just using aKubernetesApplication
that we schedule to the EKS cluster we create. Have you considered that approach? Do you see major benefits to your approach here instead?
Signed-off-by: Jan Willies <jan.willies@accenture.com>
94e425c
to
1f80a8b
Compare
Thanks for the quick feedback! Challenges with
This has to be done before pods are scheduled. I basically followed the same approach as _awsauth() |
this is a good writeup with lots of comments: eksctl-io/eksctl#1096 |
I think there could be two paths forward as we get closer to make EKS
I am leaning towards the second scenario where we try to hardcode a composition into I have a feeling that the challenges you listed should be doable. @hasheddan is the one who worked on that resource recently.
I think
If EKSCluster controller marks the cluster ready only if FWIW, you might need to use All this should be testable with current EKSCluster, i.e. after it's ready create the |
@janwillies do you think this PR is still relevant? |
No, let me close this in favor of a solution on top of v1beta1 eks cluster. Looking at v1beta1 it seems there is no way to edit Kubernetes resources in the target cluster (like |
Description of your changes
PoC which adds support for custom subnets/secondary cidr ranges in EKS according to https://docs.aws.amazon.com/eks/latest/userguide/cni-custom-network.html
In a nutshell, we need to create an
ENIConfig
CR per AvailabilityZone:For this we need:
func (r *Reconciler) _customnetwork
is the entry point for this.I'd like some comments on the approach and what's necessary to get this upstream
Fixes #163
Checklist
I have:
make reviewable
to ensure this PR is ready for review.app.yaml
to include any new role permissions.