Document node affinities
The following discussion from !2324 (merged) should be addressed:
-
@steveazz started a discussion: (+2 comments) issue: We should add some documentation to make it easier/clearer to the user how to use affinities with the runner, below is a documentation burlp that we should add. You are more than welcome not to do it yourself, just let me know so I can open a merge request to document this
🙇 docs diff
diff --git a/docs/executors/kubernetes.md b/docs/executors/kubernetes.md index d7e7a8358..5640e67bb 100644 --- a/docs/executors/kubernetes.md +++ b/docs/executors/kubernetes.md @@ -111,6 +111,7 @@ The following keywords help to define the behavior of the Runner within Kubernet container using the [sidecar pattern](https://docs.microsoft.com/en-us/azure/architecture/patterns/sidecar). Read more about [using services](#using-services). +- `affinity`: Specify affinity rules what will be added to the pod that runs the build. [Read more about using affinity](#using-affinity)
Added under
## Using services
## Using Affinity ### Node Affinity > [Introduced](https://gitlab.com/gitlab-org/gitlab-runner/-/merge_requests/2324) in GitLab Runner 13.4 Define a list of [node affinities](https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity) to be added to a pod. ```toml concurrent = 1 [[runners]] name = "myRunner" url = "gitlab.example.com" executor = "kubernetes" [runners.kubernetes] [runners.kubernetes.affinity] [runners.kubernetes.affinity.node_affinity] [[runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution]] weight = 100 [runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution.preference] [[runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution.preference.match_expressions]] key = "cpu_speed" operator = "In" values = ["fast"] [[runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution.preference.match_fields]] key = "arch" operator = "In" values = ["arm64"] [[runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution]] weight = 50 [runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution.preference] [[runners.kubernetes.affinity.node_affinity.preferred_during_scheduling_ignored_during_execution.preference.match_expressions]] key = "core_count" operator = "In" values = ["heigh", "32"] [runners.kubernetes.affinity.node_affinity.required_during_scheduling_ignored_during_execution] [[runners.kubernetes.affinity.node_affinity.required_during_scheduling_ignored_during_execution.node_selector_terms]] [[runners.kubernetes.affinity.node_affinity.required_during_scheduling_ignored_during_execution.node_selector_terms.match_expressions]] key = "kubernetes.io/e2e-az-name" operator = "In" values = [ "e2e-az1", "e2e-az2" ]
@marcel.amirault would you mind if you take a look at the doc changes above to see if they make sense to you?
Edited by Marcel Amirault