What were you trying to accomplish?
Use Karpenter with spot instance
What happened?
Instances were abruptly terminated without prior notice. Karpenter was not receiving notifications from AWS events queue about spot interruptions.
How to reproduce it?
Used this Karpenter configuration in ClusterConfig:
karpenter:
version: '0.35.2'
createServiceAccount: true
withSpotInterruptionQueue: true
Cause
eksctl inserts settings.interruptionQueueName value to Helm charts values during Karpenter installation. But this helm value has been renamed to settings.interruptionQueue (without "Name") at the end.
See the current Helm chart values:
https://github.com/aws/karpenter-provider-aws/blob/main/charts/karpenter/values.yaml#L194
The change was introduced in the following pull request merged 3 months ago:
aws/karpenter-provider-aws#4840
As a result, INTERRUPTION_QUEUE environment value is not passed to karpenter pods and the queue is not enabled. After fix (rename value name), INTERRUPTION_QUEUE appears in pod environment variables.
Suggested fix
Rename settings.interruptionQueueName to settings.interruptionQueue in user-provided Helm values when installing Karpenter.
What were you trying to accomplish?
Use Karpenter with spot instance
What happened?
Instances were abruptly terminated without prior notice. Karpenter was not receiving notifications from AWS events queue about spot interruptions.
How to reproduce it?
Used this Karpenter configuration in ClusterConfig:
Cause
eksctlinsertssettings.interruptionQueueNamevalue to Helm charts values during Karpenter installation. But this helm value has been renamed tosettings.interruptionQueue(without "Name") at the end.See the current Helm chart values:
https://github.com/aws/karpenter-provider-aws/blob/main/charts/karpenter/values.yaml#L194
The change was introduced in the following pull request merged 3 months ago:
aws/karpenter-provider-aws#4840
As a result,
INTERRUPTION_QUEUEenvironment value is not passed to karpenter pods and the queue is not enabled. After fix (rename value name),INTERRUPTION_QUEUEappears in pod environment variables.Suggested fix
Rename
settings.interruptionQueueNametosettings.interruptionQueuein user-provided Helm values when installing Karpenter.