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

unregisteredtaint controller is not necessary #135

Open
jxs1211 opened this issue Nov 20, 2024 · 2 comments
Open

unregisteredtaint controller is not necessary #135

jxs1211 opened this issue Nov 20, 2024 · 2 comments
Labels
enhancement New feature or request

Comments

@jxs1211
Copy link
Contributor

jxs1211 commented Nov 20, 2024

What happened:
unregisteredtaint controller want to delete the unregistered taint here
pkg/controllers/nodeclaim/unregisteredtaint/controller.go

		nodeCopy := node.DeepCopy()
		// remove the unregistered taint
		nodeCopy.Spec.Taints = lo.Reject(nodeCopy.Spec.Taints, func(item corev1.Taint, index int) bool {
			return item.MatchTaint(&v1.UnregisteredNoExecuteTaint)
		})

if the node has unregisteredtaint, the taint will be deleted in registration process.
https://github.com/kubernetes-sigs/karpenter/blob/main/pkg/controllers/nodeclaim/lifecycle/registration.go#L97

So, the controller is not necessary here.

What you expected to happen:
delete the controller or removing the related code

How to reproduce it (as minimally and precisely as possible):

Anything else we need to know?:

Environment:

  • Karpenter-provider-alibabacloud version (use git describe --tags --dirty --always): 9ef9410
  • AliCloud ACK version: N/A
  • Others: N/A
@jxs1211
Copy link
Contributor Author

jxs1211 commented Nov 20, 2024

@jwcesign

@peng19940915
Copy link
Contributor

taint := karpv1.UnregisteredNoExecuteTaint

UnregisteredNoExecuteTaint is injected by UserData, If the data in the node's UserData is not executed in time, UnregisteredNoExecuteTaint will not be attached to the node.
It is very likely that the node has already completed the 'Registration' phase at this point (since it is not guaranteed that 'Registration' will only end after UserData has been executed). Once UserData has been executed, 'UnregisteredNoExecuteTaint' is attached to the node, triggering the controller, which then enters the Init phase.
If the Init phase detects 'UnregisteredNoExecuteTaint', it will directly reject any subsequent actions, keeping the node in an unusable state, even if it is already Ready.
The node will remain in this state unless the taint is manually removed.

@jwcesign jwcesign added the enhancement New feature or request label Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants