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

[Feature] I would like to be able to setup Karpenter for an existing cluster which I created via EKSCTL #6494

Open
AndrewFarley opened this issue Apr 5, 2023 · 10 comments
Labels
area/karpenter kind/feature New feature or request priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases

Comments

@AndrewFarley
Copy link

What feature/behavior/change do you want?

I would like to be able to add-in Karpenter to an existing cluster which I created with EKSCTL. It feels like leaving everyone out in the cold to have to setup/manage something externally, when I feel like with much less effort EKSCTL could/should be able to handle this. I'm proposing something like the following...

  1. To an existing cluster's configuration file, add the necessary values, eg:
  tags:
    karpenter.sh/discovery: eks-dev
karpenter:
  version: '0.9.0'
  1. Add a new command to setup Karpenter on this existing cluster to have a clear and distinct code path to follow which is to setup Karpenter on an existing EKSCTL-setup cluster. Such as...
eksctl create karpenter
or
eksctl enable karpenter

# I would imagine you would also need the opposite, incase people want to stop using it...
eksctl disable karpenter

Why do you want this feature?

  1. Because it seems silly to have to manually set something up because we didn't happen to create our clusters recently
  2. Because it would be far less effort for the community to have EKSCTL take ownership over this responsibility indefinitely, similar to how it takes ownership and allows management over the nodegroups we deploy via EKSCTL
  3. Because it seems silly to have to create a whole stack of automation for IaC (eg: in Terraform) just for this component which EKSCTL already does, but currently only supports it during cluster creation.

Reference: #5380

^ Clearly I'm not the only one who wants this, I imagine as Karpenter's popularity and stability grows you'll have more and more people wanting to adopt it. Why not make it easy(ier)?

@AndrewFarley AndrewFarley added the kind/feature New feature or request label Apr 5, 2023
@Himangini Himangini added area/karpenter priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases labels Apr 5, 2023
@hassaanakram
Copy link
Contributor

Hey @Himangini
I'd like to take a stab at it because I share Andrew's opinion. However, before doing so I would like to know if this is a direction that eksctl maintainers would like to go for? This way the eksctl enable code path may be further expanded to include more common functionality.

Would love to hear your thoughts. Thanks!

@Himangini
Copy link
Collaborator

Hey @Himangini I'd like to take a stab at it because I share Andrew's opinion. However, before doing so I would like to know if this is a direction that eksctl maintainers would like to go for? This way the eksctl enable code path may be further expanded to include more common functionality.

Would love to hear your thoughts. Thanks!

@hassaanakram thanks for your interest in this issue. This is something on our radar and we're looking for making improvements in this area. However, we can't offer any concrete plans at this point. We'll post more updates this year, watch this space ✨

@maxxd
Copy link

maxxd commented Aug 2, 2023

I would prefer to manage the karpenter Helm release myself, but the AWS tags, IAM resources, and groups make more sense from eksctl, and it would certainly be useful to be able to update these on an already-created eksctl cluster.

It appears that, in all cases, management and upgrade of the Karpenter release are not under the eksctl umbrella.

@CrisNevares
Copy link

+1

@AndrewFarley
Copy link
Author

AndrewFarley commented Apr 29, 2024

I would prefer to manage the karpenter Helm release myself, but the AWS tags, IAM resources, and groups make more sense from eksctl, and it would certainly be useful to be able to update these on an already-created eksctl cluster.

It appears that, in all cases, management and upgrade of the Karpenter release are not under the eksctl umbrella.

If this is the case, we should entirely remove all code in EKSCTL from setting up or managing Karpenter (on new clusters). We can't have it both ways, I'd argue. :) Support Karpenter everywhere and its' updates and maintenance via this tool, or remove it entirely. Thoughts?

@thurahtetaung
Copy link

I agree, this is a much needed feature. Currently, it feels like Karpenter support is there just for the sake of being there because not everyone installed it along with eksctl cluster creation, and many who didn't are stuck having to manually install and mess with eksctl managed resources manually if they want to use Karpenter. And Karpenter is getting quite popular so the demand for this feature will only grow. I think having this feature and being able to migrate from CAS to Karpenter just with eksctl commands will be very helpful.

@josegonzalez
Copy link

I think the annoying part here is that the Karpenter docs seem to only display how to install karpenter via eksctl, so if you're coming to Karpenter with an existing cluster, you're not in a great state.

Seems like maybe following the docs for migrating from CAS would be helpful, but its not marketed that way for new users, so again, not the most intuitive process to get it started.

@aogier
Copy link

aogier commented Nov 13, 2024

I think the annoying part here is that the Karpenter docs seem to only display how to install karpenter via eksctl, so if you're coming to Karpenter with an existing cluster, you're not in a great state.

you literally linked helm install instructions, they look like a good starting point to me

@josegonzalez
Copy link

There's a bunch of stuff outside of the helm chart that needs to be provisioned - iam roles, access to the cluster via authconfig, etc. Yes, you can suss that out via the migration docs, but that wasn't clear to me at first glance.

@josegonzalez
Copy link

I'd like to add that it's clear to me from the Karpenter issue tracker that it's not always clear to others how to get things working:

What I mean to say with this is that while I understand that adding this functionality to eksctl isn't "free" and requires effort, I don't think pointing at the Karpenter docs is a good alternative, and I think others would agree with me :)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/karpenter kind/feature New feature or request priority/important-longterm Important over the long term, but may not be currently staffed and/or may require multiple releases
Projects
None yet
Development

No branches or pull requests

8 participants