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

Error":"missing required startup taint, karpenter.sh/unregistered" in the karpenter logs. #1635

Open
janani2019 opened this issue Sep 4, 2024 · 6 comments
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.

Comments

@janani2019
Copy link

Description

Observed Behavior:
I have startup taints in my nodepool but I still see this error
{"level":"ERROR","time":"2024-09-04T20:20:36.965Z","logger":"controller","message":"Reconciler error","commit":"62a726c","controller":"nodeclaim.lifecycle","controllerGroup":"karpenter.sh","controllerKind":"NodeClaim","NodeClaim":{"name":"deployment-rqczg"},"namespace":"","name":"deployment-rqczg","reconcileID":"db521016-5e44-4c77-9352-f07bbb44197d","error":"missing required startup taint, karpenter.sh/unregistered"}
Expected Behavior:
This error should not coming up and the start up taints should be applied.
Reproduction Steps (Please include YAML):
apiVersion: karpenter.sh/v1
kind: NodePool
metadata:
name: deployment
spec:
template:
metadata:
labels:
type: DeploymentRunners
spec:
expireAfter: 19m
terminationGracePeriod: 20m
requirements:
- key: kubernetes.io/arch
operator: In
values: ["amd64"]
- key: kubernetes.io/os
operator: In
values: ["linux"]
- key: karpenter.sh/capacity-type
operator: In
values: ["on-demand"]
- key: karpenter.k8s.aws/instance-category
operator: In
values: ["c", "m", "r"]
- key: karpenter.k8s.aws/instance-generation
operator: Gt
values: ["2"]
- key: node.kubernetes.io/instance-type
operator: Exists
minValues: 10
nodeClassRef:
group: karpenter.k8s.aws
kind: EC2NodeClass
name: default
taints:
- key: "deployment_runners_workload"
value: "true"
effect: NoSchedule
startupTaints:
- key: karpenter.sh/unregistered
effect: NoSchedule
limits:
cpu: 1000
memory: 1000Gi
disruption:
consolidationPolicy: WhenEmptyOrUnderutilized
consolidateAfter: 20m
Versions:

  • Chart Version: v1.1.0
@janani2019 janani2019 added the kind/bug Categorizes issue or PR as related to a bug. label Sep 4, 2024
@k8s-ci-robot k8s-ci-robot added the needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one. label Sep 4, 2024
@k8s-ci-robot
Copy link
Contributor

This issue is currently awaiting triage.

If Karpenter contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@janani2019 janani2019 changed the title error":"missing required startup taint, karpenter.sh/unregistered" in the karpenter logs. Error":"missing required startup taint, karpenter.sh/unregistered" in the karpenter logs. Sep 4, 2024
@leoryu
Copy link

leoryu commented Sep 5, 2024

The startupTaints in nodepool only works after node is registered which is added by karpenter core controller. The karpenter.sh/unregistered should be added by kubelet not the karpenter controller. You might check the aws provider PR(https://github.com/aws/karpenter-provider-aws/pull/6388/files) for more details.

By the way, are you implementing an new provider for some infrastructure? Cloud you share more details about your works?

@janani2019
Copy link
Author

No, I’m exploring about karpenter for my eks cluster that hosts GH runners. I’m using custom AMI. Could you please assist on how can I add the required taint karpenter.sh/unregistered via user data ?

@leoryu
Copy link

leoryu commented Sep 5, 2024

No, I’m exploring about karpenter for my eks cluster that hosts GH runners. I’m using custom AMI. Could you please assist on how can I add the required taint karpenter.sh/unregistered via user data ?

If you are using karpenter-aws-provider, the provider will do these things. If the aws provider doesn't do this, I think you should add an issue in https://github.com/aws/karpenter-provider-aws not here.

@janani2019
Copy link
Author

From the karpenter upgrade guide- “ Karpenter now adds a karpenter.sh/unregistered:NoExecute taint to nodes in injected UserData when using alias in AMISelectorTerms or non-Custom AMIFamily. When using amiFamily: Custom, users will need to add this taint into their UserData, where Karpenter will automatically remove it when provisioning nodes”. Would be helpful if you could elaborate on how taints can be added to user data .

@engedaam
Copy link
Contributor

engedaam commented Sep 9, 2024

Here is more documentation on adding taints: https://karpenter.sh/docs/concepts/nodeclasses/#specuserdata

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/bug Categorizes issue or PR as related to a bug. needs-triage Indicates an issue or PR lacks a `triage/foo` label and requires one.
Projects
None yet
Development

No branches or pull requests

4 participants