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

Add kube tolerations to limit which nodes a test pod can be launched on #2058

Closed
2 tasks done
techcobweb opened this issue Nov 25, 2024 · 0 comments
Closed
2 tasks done
Assignees

Comments

@techcobweb
Copy link
Contributor

techcobweb commented Nov 25, 2024

Story

As a kubernetes admin I want galasa to only schedule test run pods on nodes which are a subset of the nodes available, so that some other nodes will not suffer when lots of galasa tests are running.

Background

Tolerations in Kube are a thing which can dictate where a pod gets scheduled.

Adding them to our helm charts, values files and config map can indicate which nodes tests should execute on.

Externals:

As an ecosystem admin, you may need to configure where which hardware nodes your Galasa test pods are run on. As an example, you may wish to dedicate certain k8s nodes to exlusively to running Galasa tests to avoid resource conflicts with other workloads on the cluster. This ensures hardware isolation and gives a better guarantee of the performance of your Galasa Ecosystem.

Two components are required to achieve this:

  • A k8s node affinity allows you to designate a preffered node for your Galasa tests to be run on
  • A k8s node taint prevents other workloads from scheduling on that node. To allow you Galasa test pods to be scheduled on the tainted node, you must define a node tolerance

These two settings can be configured via the Galasa Ecosystem configmap, for example:

galasa_node_preferred_affinity: galasa-engines

galasa_node_tolerations: galasa-engines=Exists:NoSchedule
The node affinity defines a label that can be used to identify nodes that your Galasa Ecosystem should schedule pods on.

The Galasa Node Tolerations param defines a comma-separated list of toleration conditions of the format "nodelabel=Operator:Condition". In the above example, nodes with the label "galasa-engines" that have a "NoSchedule" taint should be tolerated, allowing the Galasa test run pods to be scheduled on that node.

Tasks

@techcobweb techcobweb converted this from a draft issue Nov 25, 2024
@techcobweb techcobweb changed the title Add kube tolerations to launched test pods Add kube tolerations to limit which nodes a test pod can be launched on Nov 25, 2024
@eamansour eamansour moved this from 👀 1 In review to ✅ Done - in iteration in galasa-dev team Nov 27, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
Status: Done - in iteration
Development

No branches or pull requests

3 participants