kubernetes helm - Deploy KEDA on AWS EKS auto mode - Stack Overflow

admin2025-04-17  3

I currently have a cluster on EKS in Auto Mode and I'm doing some initial tests.
I want to deploy KEDA to perform horizontal scale, but since it's a critical piece of the infrastructure, it should be in the system nodepool, where critical stuff lives.

Accordingly to this page of documentation .html I should add these lines to my deployment:

    spec:
      nodeSelector:
        karpenter.sh/nodepool: system
      tolerations:
      - key: "CriticalAddonsOnly"
        operator: "Exists"

However, since I'm not very experienced, I can't find a way to pass those info while installing KEDA using Helm. I tried to put those lines in a file and then run the following command:
helm upgrade --install keda kedacore/keda --namespace keda --create-namespace -f config.yaml --wait

but regarding all my tests, KEDA is always deployed on a new instance, not on the "main" one.

Any suggestions?

I currently have a cluster on EKS in Auto Mode and I'm doing some initial tests.
I want to deploy KEDA to perform horizontal scale, but since it's a critical piece of the infrastructure, it should be in the system nodepool, where critical stuff lives.

Accordingly to this page of documentation https://docs.aws.amazon.com/eks/latest/userguide/critical-workload.html I should add these lines to my deployment:

    spec:
      nodeSelector:
        karpenter.sh/nodepool: system
      tolerations:
      - key: "CriticalAddonsOnly"
        operator: "Exists"

However, since I'm not very experienced, I can't find a way to pass those info while installing KEDA using Helm. I tried to put those lines in a file and then run the following command:
helm upgrade --install keda kedacore/keda --namespace keda --create-namespace -f config.yaml --wait

but regarding all my tests, KEDA is always deployed on a new instance, not on the "main" one.

Any suggestions?

Share Improve this question asked Jan 30 at 18:14 tampe125tampe125 8,5537 gold badges33 silver badges46 bronze badges
Add a comment  | 

1 Answer 1

Reset to default 1

Your config.yaml can hold the configuration that you need.

There are usually 2 ways of figuring out how to configure things in helm charts:

  1. Through the documentation and howtos, sometimes they can be very helpful and other times not as much.
  2. Through the values file of the helm chart which, at the very least, will provide you with all configuration options.

In this case, I found the relevant values file (I looked at the main branch but you could have a look at a specific tag)

In this file, there is this part:

# -- Node selector for pod scheduling ([docs](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/))
nodeSelector: {}
# -- Tolerations for pod scheduling ([docs](https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/))
tolerations: []

which means that if you add the following lines to your config.yaml

nodeSelector:
  karpenter.sh/nodepool: system
tolerations:
- key: "CriticalAddonsOnly"
  operator: "Exists"

you should be able to pass this configuration, that you need, to your deployment.

转载请注明原文地址:http://anycun.com/QandA/1744899087a89194.html