kubernetes-sigs / karpenter

Karpenter is a Kubernetes Node Autoscaler built for flexibility, performance, and simplicity.
Apache License 2.0
637 stars 206 forks source link

Add a Drifted condition to NodePool that tells whether any nodeclaims are drifted from the desired state #1785

Open reegnz opened 3 weeks ago

reegnz commented 3 weeks ago

Description

What problem are you trying to solve?

I'm trying to integrate karpenter nodepools into argocd health checks. This would help argocd determine when a deployment of an ec2nodeclass or nodepool configuration change has been reconciled.

I think I could resolve this by writing a custom controller that adds an extra condition called Drifted to each NodePool resource, but I'd much rather have this solved natively by karpenter.

Proposal:

Introduce a new condition called Drifted with a value of False if the hashes of the NodeClaims managed by the NodePool do not match the hash of the NodePool and/or the Ec2NodeClass. The value should be True if any of the NodeClaims has a drifted hash of the NodePool or Ec2NodeClass.

Optionally there could be a status that tells how many nodeclaims we have that are drifted. If that count is 0 then the Drifted condition could be set to False.

How important is this feature to you?

reegnz commented 3 weeks ago

Originally opened here: https://github.com/aws/karpenter-provider-aws/issues/7293

njtran commented 2 weeks ago

/triage accepted