Document volumeStorageMedium and volumeSizeLimit
Related to
@@ -830,6 +830,18 @@ spec:
volumeMounts:
- mountPath: /home/runner/work/repo
name: repo
+ # Optional storage medium type of runner volume mount.
+ # More info: https://kubernetes.io/docs/concepts/storage/volumes/#emptydir
+ # "" (default) = Node's default medium
+ # Memory = RAM-backed filesystem (tmpfs)
+ # NOTE: Using RAM-backed filesystem gives you fastest possible storage on your host nodes.
+ volumeStorageMedium: ""
+ # Total amount of local storage resources required for runner volume mount.
+ # The default limit is undefined.
+ # NOTE: You can make sure that nodes' resources are never exceeded by limiting used storage size per runner pod.
+ # You can even disable the runner mount completely by setting limit to zero if dockerdWithinRunnerContainer = true.
+ # Please see https://github.com/actions-runner-controller/actions-runner-controller/pull/674 for more information.
+ volumeSizeLimit: 4Gi
# Optional name of the container runtime configuration that should be used for pods.
# This must match the name of a RuntimeClass resource available on the cluster.
# More info: https://kubernetes.io/docs/concepts/containers/runtime-class
@@ -959,7 +971,7 @@ spec:
app: example
```
-As it is based on `StatefulSet`, `selector` and `template.medatada.labels` needs to be defined and haev the exact same set of labels. `serviceName` must be set to some non-empty string as it is also required by `StatefulSet`.
+As it is based on `StatefulSet`, `selector` and `template.medatada.labels` needs to be defined and have the exact same set of labels. `serviceName` must be set to some non-empty string as it is also required by `StatefulSet`.
Runner-related fields like `ephemeral`, `repository`, `organization`, `enterprise`, and so on should be written directly under `spec`.
@@ -1016,7 +1028,7 @@ You can also read the design and usage documentation written in the original pul
https://github.com/actions-runner-controller/actions-runner-controller/pull/629
-Under the hood, `RunnerSet` relies on Kubernetes's `StatefulSet` and Mutating Webhook. A statefulset is used to create a number of pods that has stable names and dynamically provisioned persistent volumes, so that each statefulset-managed pod gets the same persisntet volume even after restarting. A mutating webhook is used to dynamically inject a runner's "registration token" which is used to call GitHub's "Create Runner" API.
+Under the hood, `RunnerSet` relies on Kubernetes's `StatefulSet` and Mutating Webhook. A statefulset is used to create a number of pods that has stable names and dynamically provisioned persistent volumes, so that each statefulset-managed pod gets the same persistent volume even after restarting. A mutating webhook is used to dynamically inject a runner's "registration token" which is used to call GitHub's "Create Runner" API.
We envision that `RunnerSet` will eventually replace `RunnerDeployment`, as `RunnerSet` provides a more standard API that is easy to learn and use because it is based on `StatefulSet`, and it has a support for `volumeClaimTemplates` which is crucial to manage dynamically provisioned persistent volumes.
