You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@yunikorn.apache.org by wi...@apache.org on 2023/02/27 00:45:41 UTC
[yunikorn-site] branch master updated: [YUNIKORN-1600] Fix formatting and typos (#270)
This is an automated email from the ASF dual-hosted git repository.
wilfreds pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/yunikorn-site.git
The following commit(s) were added to refs/heads/master by this push:
new 7e8fb5ec9 [YUNIKORN-1600] Fix formatting and typos (#270)
7e8fb5ec9 is described below
commit 7e8fb5ec97a342777aece7966e3a6ccf90e70347
Author: Krishna Birla <kr...@cloudera.com>
AuthorDate: Mon Feb 27 11:43:42 2023 +1100
[YUNIKORN-1600] Fix formatting and typos (#270)
Removed dangling and incorrect backquotes from examples in service
configuration doc
Use code block with yaml type for all configuration examples inline with
all the other documentation
Backport into 1.2.0 documenation as copy & paste value gives a broken
config with the current layout.
Closes: #270
Signed-off-by: Wilfred Spiegelenburg <wi...@apache.org>
---
docs/user_guide/service_config.md | 699 ++++++++++----------
.../version-1.2.0/user_guide/service_config.md | 717 +++++++++++----------
2 files changed, 711 insertions(+), 705 deletions(-)
diff --git a/docs/user_guide/service_config.md b/docs/user_guide/service_config.md
index 87c6ef644..aa1727c73 100644
--- a/docs/user_guide/service_config.md
+++ b/docs/user_guide/service_config.md
@@ -38,33 +38,33 @@ YAML syntax.
### Container images
YuniKorn ships as a set of container images. The locations and pull
policies can be customized as follows:
-
- # Image information for the standard scheduler
- image:
- repository: apache/yunikorn
- tag: scheduler-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the plugin scheduler
- pluginImage:
- repository: apache/yunikorn
- tag: scheduler-plugin-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the web UI
- web:
- image:
- repository: apache/yunikorn
- tag: web-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the admission controller
- admissionController:
- image:
- repository: apache/yunikorn
- tag: admission-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
+```yaml
+# Image information for the standard scheduler
+image:
+ repository: apache/yunikorn
+ tag: scheduler-1.0.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the plugin scheduler
+pluginImage:
+ repository: apache/yunikorn
+ tag: scheduler-plugin-1.0.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the web UI
+web:
+ image:
+ repository: apache/yunikorn
+ tag: web-1.0.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the admission controller
+admissionController:
+ image:
+ repository: apache/yunikorn
+ tag: admission-1.0.0 # default depends on YuniKorn version
+ pullPolicy: Always
+```
### Kubernetes configuration
#### affinity
@@ -73,36 +73,37 @@ Sets the affinity for the YuniKorn scheduler pod.
Default: `{}`
Example:
-
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - primary1
- - primary2
-
+```yaml
+affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - primary1
+ - primary2
+```
#### admissionController.affinity
Sets the affinity for the YuniKorn admission controller pod.
Default: `{}`
Example:
-
- admissionController:
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - primary1
- - primary2
+```yaml
+admissionController:
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - primary1
+ - primary2
+```
#### hostNetwork
Controls whether the scheduler should run in the host network.
@@ -110,8 +111,9 @@ Controls whether the scheduler should run in the host network.
Default: `false`
Example:
-
- hostNetwork: true
+```yaml
+hostNetwork: true
+```
#### admissionController.hostNetwork
Controls whether the admission controller should run in the host network.
@@ -119,42 +121,42 @@ Controls whether the admission controller should run in the host network.
Default: `true`
Example:
-
- admissionController:
- hostNetwork: false
-
+```yaml
+admissionController:
+ hostNetwork: false
+```
#### imagePullSecrets
Provides secrets needed for pulling YuniKorn images.
Default: `[]`
Example:
-
- imagePullSecrets:
- - secret1
- - secret2
-
+```yaml
+imagePullSecrets:
+ - secret1
+ - secret2
+```
#### nodeSelector
Sets a node selector(s) to use for placement of the YuniKorn scheduler pod.
Default: `{}`
Example:
-
- nodeSelector:
- role.node.kubernetes.io/infra: "true"
-
+```yaml
+nodeSelector:
+ node-role.kubernetes.io/control-plane: "true"
+```
#### admissionController.nodeSelector
Sets a node selector(s) to use for placement of the YuniKorn admission controller pod.
Default: `{}`
Example:
-
- admissionController:
- nodeSelector:
- role.node.kubernetes.io/infra: "true"
-
+```yaml
+admissionController:
+ nodeSelector:
+ node-role.kubernetes.io/control-plane: "true"
+```
#### admissionController.replicaCount
Sets the number of replicas to use for the YuniKorn admission controller. This
can be set to greater than 1 for high-availability.
@@ -162,10 +164,10 @@ can be set to greater than 1 for high-availability.
Default: `1`
Example:
-
- admissionController:
- replicaCount: 2
-
+```yaml
+admissionController:
+ replicaCount: 2
+```
#### serviceAccount
Sets an alternate service account for the YuniKorn scheduler.
@@ -176,9 +178,9 @@ functionaliy.
Default: `yunikorn-admin`
Example:
-
- serviceAccount: my-account
-
+```yaml
+serviceAccount: my-account
+```
#### admissionController.serviceAccount
Sets an alternate service account for the YuniKorn admission controller.
@@ -189,31 +191,31 @@ functionaliy.
Default: `yunikorn-admission-controller`
Example:
-
- admissionController:
- serviceAccount: my-account
-
+```yaml
+admissionController:
+ serviceAccount: my-account
+```
#### service.type
Sets the type of service used for the scheduler.
Default: `ClusterIP`
Example:
-
- service:
- type: ClusterIP
-
+```yaml
+service:
+ type: ClusterIP
+```
#### admissionController.service.type
Sets the type of service used for the admission controller.
Default: `ClusterIP`
Example:
-
- admissionController:
- service:
- type: ClusterIP
-
+```yaml
+admissionController:
+ service:
+ type: ClusterIP
+```
#### service.port
Sets the port exposed in the YuniKorn scheduler service for the REST API.
It is not recommended to change this value.
@@ -221,10 +223,10 @@ It is not recommended to change this value.
Default: 9080
Example:
-
- service:
- port: 9080
-
+```yaml
+service:
+ port: 9080
+```
#### service.portWeb
Sets the port exposed in the YuniKorn scheduler service for the Web UI.
It is not recommended to change this value.
@@ -232,73 +234,73 @@ It is not recommended to change this value.
Default: 9889
Example:
-
- service:
- portWeb: 9889
-
+```yaml
+service:
+ portWeb: 9889
+```
#### tolerations
Sets the tolerations for the YuniKorn scheduler pod.
Default: `[]`
Example:
-
- tolerations:
- - key: *infraRoleKey
- operator: Equal
- value: "true"
- effect: NoSchedule
- - key: CriticalAddonsOnly
- operator: Exists
-
+```yaml
+tolerations:
+ - key: node-role.kubernetes.io/control-plane
+ operator: Equal
+ value: "true"
+ effect: NoSchedule
+ - key: CriticalAddonsOnly
+ operator: Exists
+```
#### admissionController.tolerations
Sets the tolerations for the YuniKorn admission controller pod.
Default: `[]`
Example:
-
- admissionController:
- tolerations:
- - key: *infraRoleKey
- operator: Equal
- value: "true"
- effect: NoSchedule
- - key: CriticalAddonsOnly
- operator: Exists
-
+```yaml
+admissionController:
+ tolerations:
+ - key: node-role.kubernetes.io/control-plane
+ operator: Equal
+ value: "true"
+ effect: NoSchedule
+ - key: CriticalAddonsOnly
+ operator: Exists
+```
### Resource utilization
The resources requested for YuniKorn pods can be customized as follows:
-
- # Scheduler container resources
- resources:
- requests:
- cpu: 200m
- memory: 1Gi
- limits:
- cpu: 4
- memory: 2Gi
-
- # Web UI container resources
- web:
- resources:
- requests:
- cpu: 100m
- memory: 100Mi
- limits:
- cpu: 100m
- memory: 500Mi
-
- # Admission controller resources
- admissionController:
- resources:
- requests:
- cpu: 100m
- memory: 500Mi
- limits:
- cpu: 500m
- memory: 500mi
-
+```yaml
+# Scheduler container resources
+resources:
+ requests:
+ cpu: 200m
+ memory: 1Gi
+ limits:
+ cpu: 4
+ memory: 2Gi
+
+# Web UI container resources
+web:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 100Mi
+ limits:
+ cpu: 100m
+ memory: 500Mi
+
+# Admission controller resources
+admissionController:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 500Mi
+ limits:
+ cpu: 500m
+ memory: 500Mi
+```
### Optional features
#### embedAdmissionController
@@ -307,18 +309,18 @@ Controls whether to enable the YuniKorn admission controller.
Default: `true`
Example:
-
- embedAdmissionController: false
-
+```yaml
+embedAdmissionController: false
+```
#### enableSchedulerPlugin
Controls whether to run YuniKorn in scheduler plugin mode.
Default: `false`
Example:
-
- enableSchedulerPlugin: true
-
+```yaml
+enableSchedulerPlugin: true
+```
### YuniKorn defaults
#### yunikornDefaults
@@ -329,47 +331,11 @@ declared in [YuniKorn configuration](#yunikorn-configuration) may be set here.
Default: `{}`
Example:
-
- yunikornDefaults:
- service.clusterId: yunikorn-01
- service.policyGroup: group-01
- group-01.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
-
-
-### Deprecated settings
-The following settings are deprecated, and will be removed from a future
-YuniKorn release. They should now be specified in the `yunikorn-configs` ConfigMap
-or via the Helm `yunikornDefaults` section:
-
-| Deprecated setting | ConfigMap replacement |
-| --------------------------------------- | ----------------------------------------------- |
-| operatorPlugins | service.operatorPlugins |
-| placeHolderImage | service.placeholderImage |
-| admissionController: processNamespaces | admissionController.filtering.processNamespaces |
-| admissionController: bypassNamespaces | admissionController.filtering.bypassNamespaces |
-| admissionController: labelNamespaces | admissionController.filtering.labelNamespaces |
-| admissionController: noLabelNamespaces | admissionController.filtering.noLabelNamespaces |
-| configuration | queues.yaml |
-
-Deprecated example:
-
- operatorPlugins: general
- placeHolderImage: registry.k8s.io/pause:3.7
- admissionController:
- processNamespaces: "^spark-,^mpi-"
- bypassNamespaces: "^kube-system$"
- labelNamespaces: "^spark-"
- noLabelNamespaces: "^mpi-legacy-"
- configuration: |
+```yaml
+yunikornDefaults:
+ service.clusterId: yunikorn-01
+ service.policyGroup: group-01
+ group-01.yaml: |
partitions:
- name: default
placementrules:
@@ -378,29 +344,65 @@ Deprecated example:
create: true
queues:
- name: root
- submitacl: '*'`
+ submitacl: '*'
+```
-Replacement example:
+### Deprecated settings
+The following settings are deprecated, and will be removed from a future
+YuniKorn release. They should now be specified in the `yunikorn-configs` ConfigMap
+or via the Helm `yunikornDefaults` section:
- yunikornDefaults:
- service.policyGroup: queues
- service.operatorPlugins: general
- service.placeholderImage: registry.k8s.io/pause:3.7
- admissionController.filtering.processNamespaces: "^spark-,^mpi-"
- admissionController.filtering.bypassNamespaces: "^kube-system$"
- admissionController.filtering.labelNamespaces: "^spark-"
- admissionController.filtering.noLabelNamespaces: "^mpi-legacy-"
- queues.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
+| Deprecated setting | ConfigMap replacement |
+|----------------------------------------|-------------------------------------------------|
+| operatorPlugins | service.operatorPlugins |
+| placeHolderImage | service.placeholderImage |
+| admissionController: processNamespaces | admissionController.filtering.processNamespaces |
+| admissionController: bypassNamespaces | admissionController.filtering.bypassNamespaces |
+| admissionController: labelNamespaces | admissionController.filtering.labelNamespaces |
+| admissionController: noLabelNamespaces | admissionController.filtering.noLabelNamespaces |
+| configuration | queues.yaml |
+Deprecated example:
+```yaml
+operatorPlugins: general
+placeHolderImage: registry.k8s.io/pause:3.7
+admissionController:
+ processNamespaces: "^spark-,^mpi-"
+ bypassNamespaces: "^kube-system$"
+ labelNamespaces: "^spark-"
+ noLabelNamespaces: "^mpi-legacy-"
+configuration: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
+Replacement example:
+```yaml
+yunikornDefaults:
+ service.policyGroup: queues
+ service.operatorPlugins: general
+ service.placeholderImage: registry.k8s.io/pause:3.7
+ admissionController.filtering.processNamespaces: "^spark-,^mpi-"
+ admissionController.filtering.bypassNamespaces: "^kube-system$"
+ admissionController.filtering.labelNamespaces: "^spark-"
+ admissionController.filtering.noLabelNamespaces: "^mpi-legacy-"
+ queues.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
Currently, if both the deprecated parameter and the replacement ConfigMap entry are specified, the ConfigMap entry will take precedence.
@@ -425,48 +427,48 @@ to YuniKorn configuration outside of provisioning infrastructure should be made
If neither ConfigMap is provided, or if an option is not specified, YuniKorn will
use the default values listed here:
-
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: yunikorn-configs
- data:
- service.clusterId: "mycluster"
- service.policyGroup: "queues"
- service.schedulingInterval: "1s"
- service.volumeBindTimeout: "10s"
- service.eventChannelCapacity: "1048576"
- service.dispatchTimeout: "5m"
- service.operatorPlugins: "general"
- service.disableGangScheduling: "false"
- service.enableConfigHotRefresh: "true"
- service.placeholderImage: "registry.k8s.io/pause:3.7"
- health.checkInterval: "30s"
- log.level: "0"
- kubernetes.qps: "1000"
- kubernetes.burst: "1000"
- admissionController.webHook.amServiceName: "yunikorn-admission-controller-service"
- admissionController.webHook.schedulerServiceAddress: "yunikorn-service:9080"
- admissionController.filtering.processNamespaces: ""
- admissionController.filtering.bypassNamespaces: "^kube-system$"
- admissionController.filtering.labelNamespaces: ""
- admissionController.filtering.noLabelNamespaces: ""
- admissionController.accessControl.bypassAuth: "false"
- admissionController.accessControl.trustControllers: "true"
- admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system:"
- admissionController.accessControl.externalUsers: ""
- admissionController.accessControl.externalGroups: ""
- queues.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
-
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: yunikorn-configs
+data:
+ service.clusterId: "mycluster"
+ service.policyGroup: "queues"
+ service.schedulingInterval: "1s"
+ service.volumeBindTimeout: "10s"
+ service.eventChannelCapacity: "1048576"
+ service.dispatchTimeout: "5m"
+ service.operatorPlugins: "general"
+ service.disableGangScheduling: "false"
+ service.enableConfigHotRefresh: "true"
+ service.placeholderImage: "registry.k8s.io/pause:3.7"
+ health.checkInterval: "30s"
+ log.level: "0"
+ kubernetes.qps: "1000"
+ kubernetes.burst: "1000"
+ admissionController.webHook.amServiceName: "yunikorn-admission-controller-service"
+ admissionController.webHook.schedulerServiceAddress: "yunikorn-service:9080"
+ admissionController.filtering.processNamespaces: ""
+ admissionController.filtering.bypassNamespaces: "^kube-system$"
+ admissionController.filtering.labelNamespaces: ""
+ admissionController.filtering.noLabelNamespaces: ""
+ admissionController.accessControl.bypassAuth: "false"
+ admissionController.accessControl.trustControllers: "true"
+ admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system:"
+ admissionController.accessControl.externalUsers: ""
+ admissionController.accessControl.externalGroups: ""
+ queues.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
### Service settings
The following parameters are understood by YuniKorn:
@@ -479,9 +481,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `mycluster`
Example:
-
- service.clusterId: "yunikorn-east"
-
+```yaml
+service.clusterId: "yunikorn-east"
+```
#### service.policyGroup
Defines the policy group in use by this scheduler. The policy group is used to
choose one of several queue configurations. The value of this setting plus an
@@ -493,18 +495,19 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `queues`
Example:
-
- service.policyGroup: group_b
- group_b.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
+```yaml
+service.policyGroup: group_b
+group_b.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
#### service.schedulingInterval
Controls the frequency with which YuniKorn executes scheduling runs.
@@ -514,9 +517,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1s`
Example:
-
- service.schedulingInterval: "5s"
-
+```yaml
+service.schedulingInterval: "5s"
+```
#### service.volumeBindTimeout
Controls the timeout before volume binding fails.
@@ -525,9 +528,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `10s`
Example:
-
- service.volumeBindTimeout: "30s"
-
+```yaml
+service.volumeBindTimeout: "30s"
+```
#### service.eventChannelCapacity
Controls the number of internal scheduling events that YuniKorn will allow
to be in-flight at one time. This acts as an out-of-memory guard.
@@ -537,9 +540,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1048576`
Example:
-
- service.eventChannelCapacity: "1000000"
-
+```yaml
+service.eventChannelCapacity: "1000000"
+```
#### service.dispatchTimeout
Controls how long internal events will reattempt dispatching if the event
channel is full. Warnings will be emitted if this timeout is exceeded.
@@ -549,9 +552,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `5m`
Example:
-
- service.dispatchTimeout: "10m"
-
+```yaml
+service.dispatchTimeout: "10m"
+```
#### service.operatorPlugins
Controls the set of operator plugins which are enabled within YuniKorn.
Currently, only the `general`, `spark-k8s-operator`, and `yunikorn-app`
@@ -562,9 +565,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `general`
Example:
-
- service.operatorPlugins: "general,spark-k8s-operator"
-
+```yaml
+service.operatorPlugins: "general,spark-k8s-operator"
+```
#### service.disableGangScheduling
Allows global disabling of the gang scheduling feature (not recommended).
@@ -573,9 +576,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `false`
Example:
-
- service.disableGangScheduling: "true"
-
+```yaml
+service.disableGangScheduling: "true"
+```
#### service.enableConfigHotRefresh
Controls whether configuration should be hot-reloaded. By default, this
is set to `true`, but it can be disabled to avoid changes to the
@@ -589,9 +592,9 @@ a restart of YuniKorn.
Default: `true`
Example:
-
- service.enableConfigHotRefresh: "false"
-
+```yaml
+service.enableConfigHotRefresh: "false"
+```
#### service.placeholderImage
Sets the Pod image that will be used for gang scheduling placeholders.
@@ -600,9 +603,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `registry.k8s.io/pause:3.7`
Example:
-
- service.placeholderImage: "registry.k8s.io/pause:3.6"
-
+```yaml
+service.placeholderImage: "registry.k8s.io/pause:3.6"
+```
### Health settings
#### health.checkInterval
@@ -616,9 +619,9 @@ A change to this setting will be picked up without a restart of YuniKorn.
Default: `30s`
Example:
-
- health.checkInterval: "1m"
-
+```yaml
+health.checkInterval: "1m"
+```
### Log settings
#### log.level
@@ -638,9 +641,9 @@ values are:
Default: `0` (Info)
Example:
-
- log.level: "-1"
-
+```yaml
+log.level: "-1"
+```
### Kubernetes settings
#### kubernetes.qps
@@ -652,9 +655,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1000`
Example:
-
- kubernetes.qps: "500"
-
+```yaml
+kubernetes.qps: "500"
+```
#### kubernetes.burst
Sets the maximum size of bursty queries to Kubernetes, temporarily allowing
events to burst to this number while not still exceeding `kubernetes.qps`.
@@ -664,9 +667,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1000`
Example:
-
- kubernetes.burst: "500"
-
+```yaml
+kubernetes.burst: "500"
+```
### Admission controller webhook settings
#### admissionController.webHook.amServiceName
@@ -680,9 +683,9 @@ to take effect.
Default: `yunikorn-admission-controller-service`
Example:
-
- admissionController.webHook.amServiceName: "yunikorn-admission-controller-alt-service-name"
-
+```yaml
+admissionController.webHook.amServiceName: "yunikorn-admission-controller-alt-service-name"
+```
#### admissionController.webHook.schedulerServiceAddress
Sets the address of the YuniKorn scheduler service. This address must be
reachable by the admission controller, and is used by the admission
@@ -696,9 +699,9 @@ to take effect.
Default: `yunikorn-service:9080`
Example:
-
- admissionController.webHook.schedulerServiceAddress: "alt-yunikorn-service:9080"
-
+```yaml
+admissionController.webHook.schedulerServiceAddress: "alt-yunikorn-service:9080"
+```
### Admission controller filtering settings
#### admissionController.filtering.processNamespaces
@@ -712,10 +715,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Schedule only pods in spark-* and mpi-* namespaces with YuniKorn
- admissionController.filtering.processNamespaces: "^spark-,^mpi-"
-
+```yaml
+# Schedule only pods in spark-* and mpi-* namespaces with YuniKorn
+admissionController.filtering.processNamespaces: "^spark-,^mpi-"
+```
#### admissionController.filtering.bypassNamespaces
Controls which namespaces will *not* have pods forwarded to YuniKorn for scheduling.
This acts as an exception list to `admissionController.filtering.processNamespaces`.
@@ -733,10 +736,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: `^kube-system$`
Example:
-
- # Don't schedule pods in kube-system or fluentd-* namespaces
- admissionController.filtering.bypassNamespaces: "^kube-system$,^fluentd-"
-
+```yaml
+# Don't schedule pods in kube-system or fluentd-* namespaces
+admissionController.filtering.bypassNamespaces: "^kube-system$,^fluentd-"
+```
#### admissionController.filtering.labelNamespaces
Controls which namespaces will have pods labeled with an `applicationId`. By default,
all pods which are scheduled by YuniKorn will have an `applicationId` label applied.
@@ -757,10 +760,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Add applicationId labels to pods spark-* namespaces
- admissionController.filtering.labelNamespaces: "^spark-"
-
+```yaml
+# Add applicationId labels to pods spark-* namespaces
+admissionController.filtering.labelNamespaces: "^spark-"
+```
#### admissionController.filtering.noLabelNamespaces
Controls which namespaces will *not* have pods labeled with an `applicationId`. This
acts as an exception list to `admissionController.filtering.labelNamespaces`.
@@ -781,10 +784,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Skip queueing in the noqueue namespace
- admissionController.filtering.labelNamespaces: "^noqueue$"
-
+```yaml
+# Skip queueing in the noqueue namespace
+admissionController.filtering.labelNamespaces: "^noqueue$"
+```
### Admission controller ACL settings
#### admissionController.accessControl.bypassAuth
@@ -795,9 +798,9 @@ A change to this setting will be picked up without a restart of the admission co
Default: `false`
Example:
-
- admissionController.accessControl.bypassAuth: "true"
-
+```yaml
+admissionController.accessControl.bypassAuth: "true"
+```
#### admissionController.accessControl.trustControllers
Allow controller users to create pods with user information already set.
@@ -806,9 +809,9 @@ A change to this setting will be picked up without a restart of the admission co
Default: `true`
Example:
-
- admissionController.accessControl.trustControllers: "false"
-
+```yaml
+admissionController.accessControl.trustControllers: "false"
+```
#### admissionController.accessControl.systemUsers
Comma-separated list of regular expressions that match allowed controller
service accounts.
@@ -818,10 +821,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: `^system:serviceaccount:kube-system:`
Example:
-
- # allow all kube-system accounts as well as kube-controller-manager
- admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system,^system:kube-controller-manager$"
-
+```yaml
+# allow all kube-system accounts as well as kube-controller-manager
+admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system,^system:kube-controller-manager$"
+```
#### admissionController.accessControl.externalUsers
Comma-separated list of regular expressions that match allowed external users.
@@ -830,10 +833,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # allow 'alice', 'bob', and 'admin-*'
- admissionController.accessControl.externalUsers: "^alice$,^bob$,^admin-"
-
+```yaml
+# allow 'alice', 'bob', and 'admin-*'
+admissionController.accessControl.externalUsers: "^alice$,^bob$,^admin-"
+```
#### admissionController.accessControl.externalGroups
Comma-separated list of regular expressions that match allowed external groups.
@@ -842,7 +845,7 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # allow 'sales', 'marketing', and 'admin-*'
- admissionController.accessControl.externalGroups: "^sales$,^marketing$,^admin-"
-
+```yaml
+# allow 'sales', 'marketing', and 'admin-*'
+admissionController.accessControl.externalGroups: "^sales$,^marketing$,^admin-"
+```
diff --git a/versioned_docs/version-1.2.0/user_guide/service_config.md b/versioned_docs/version-1.2.0/user_guide/service_config.md
index 87c6ef644..c70fad354 100644
--- a/versioned_docs/version-1.2.0/user_guide/service_config.md
+++ b/versioned_docs/version-1.2.0/user_guide/service_config.md
@@ -38,33 +38,33 @@ YAML syntax.
### Container images
YuniKorn ships as a set of container images. The locations and pull
policies can be customized as follows:
-
- # Image information for the standard scheduler
- image:
- repository: apache/yunikorn
- tag: scheduler-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the plugin scheduler
- pluginImage:
- repository: apache/yunikorn
- tag: scheduler-plugin-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the web UI
- web:
- image:
- repository: apache/yunikorn
- tag: web-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
- # Image information for the admission controller
- admissionController:
- image:
- repository: apache/yunikorn
- tag: admission-1.0.0 # default depends on YuniKorn version
- pullPolicy: Always
-
+```yaml
+# Image information for the standard scheduler
+image:
+ repository: apache/yunikorn
+ tag: scheduler-1.2.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the plugin scheduler
+pluginImage:
+ repository: apache/yunikorn
+ tag: scheduler-plugin-1.2.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the web UI
+web:
+ image:
+ repository: apache/yunikorn
+ tag: web-1.2.0 # default depends on YuniKorn version
+ pullPolicy: Always
+
+# Image information for the admission controller
+admissionController:
+ image:
+ repository: apache/yunikorn
+ tag: admission-1.2.0 # default depends on YuniKorn version
+ pullPolicy: Always
+```
### Kubernetes configuration
#### affinity
@@ -73,36 +73,37 @@ Sets the affinity for the YuniKorn scheduler pod.
Default: `{}`
Example:
-
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - primary1
- - primary2
-
+```yaml
+affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - primary1
+ - primary2
+```
#### admissionController.affinity
Sets the affinity for the YuniKorn admission controller pod.
Default: `{}`
Example:
-
- admissionController:
- affinity:
- nodeAffinity:
- requiredDuringSchedulingIgnoredDuringExecution:
- nodeSelectorTerms:
- - matchExpressions:
- - key: kubernetes.io/hostname
- operator: In
- values:
- - primary1
- - primary2
+```yaml
+admissionController:
+ affinity:
+ nodeAffinity:
+ requiredDuringSchedulingIgnoredDuringExecution:
+ nodeSelectorTerms:
+ - matchExpressions:
+ - key: kubernetes.io/hostname
+ operator: In
+ values:
+ - primary1
+ - primary2
+```
#### hostNetwork
Controls whether the scheduler should run in the host network.
@@ -110,8 +111,9 @@ Controls whether the scheduler should run in the host network.
Default: `false`
Example:
-
- hostNetwork: true
+```yaml
+hostNetwork: true
+```
#### admissionController.hostNetwork
Controls whether the admission controller should run in the host network.
@@ -119,42 +121,42 @@ Controls whether the admission controller should run in the host network.
Default: `true`
Example:
-
- admissionController:
- hostNetwork: false
-
+```yaml
+admissionController:
+ hostNetwork: false
+```
#### imagePullSecrets
Provides secrets needed for pulling YuniKorn images.
Default: `[]`
Example:
-
- imagePullSecrets:
- - secret1
- - secret2
-
+```yaml
+imagePullSecrets:
+ - secret1
+ - secret2
+```
#### nodeSelector
Sets a node selector(s) to use for placement of the YuniKorn scheduler pod.
Default: `{}`
Example:
-
- nodeSelector:
- role.node.kubernetes.io/infra: "true"
-
+```yaml
+nodeSelector:
+ node-role.kubernetes.io/control-plane: "true"
+```
#### admissionController.nodeSelector
Sets a node selector(s) to use for placement of the YuniKorn admission controller pod.
Default: `{}`
Example:
-
- admissionController:
- nodeSelector:
- role.node.kubernetes.io/infra: "true"
-
+```yaml
+admissionController:
+ nodeSelector:
+ node-role.kubernetes.io/control-plane: "true"
+```
#### admissionController.replicaCount
Sets the number of replicas to use for the YuniKorn admission controller. This
can be set to greater than 1 for high-availability.
@@ -162,10 +164,10 @@ can be set to greater than 1 for high-availability.
Default: `1`
Example:
-
- admissionController:
- replicaCount: 2
-
+```yaml
+admissionController:
+ replicaCount: 2
+```
#### serviceAccount
Sets an alternate service account for the YuniKorn scheduler.
@@ -176,9 +178,9 @@ functionaliy.
Default: `yunikorn-admin`
Example:
-
- serviceAccount: my-account
-
+```yaml
+serviceAccount: my-account
+```
#### admissionController.serviceAccount
Sets an alternate service account for the YuniKorn admission controller.
@@ -189,31 +191,31 @@ functionaliy.
Default: `yunikorn-admission-controller`
Example:
-
- admissionController:
- serviceAccount: my-account
-
+```yaml
+admissionController:
+ serviceAccount: my-account
+```
#### service.type
Sets the type of service used for the scheduler.
Default: `ClusterIP`
Example:
-
- service:
- type: ClusterIP
-
+```yaml
+service:
+ type: ClusterIP
+```
#### admissionController.service.type
Sets the type of service used for the admission controller.
Default: `ClusterIP`
Example:
-
- admissionController:
- service:
- type: ClusterIP
-
+```yaml
+admissionController:
+ service:
+ type: ClusterIP
+```
#### service.port
Sets the port exposed in the YuniKorn scheduler service for the REST API.
It is not recommended to change this value.
@@ -221,10 +223,10 @@ It is not recommended to change this value.
Default: 9080
Example:
-
- service:
- port: 9080
-
+```yaml
+service:
+ port: 9080
+```
#### service.portWeb
Sets the port exposed in the YuniKorn scheduler service for the Web UI.
It is not recommended to change this value.
@@ -232,73 +234,73 @@ It is not recommended to change this value.
Default: 9889
Example:
-
- service:
- portWeb: 9889
-
+```yaml
+service:
+ portWeb: 9889
+```
#### tolerations
Sets the tolerations for the YuniKorn scheduler pod.
Default: `[]`
-Example:
-
- tolerations:
- - key: *infraRoleKey
- operator: Equal
- value: "true"
- effect: NoSchedule
- - key: CriticalAddonsOnly
- operator: Exists
-
+Example:
+```yaml
+tolerations:
+ - key: node-role.kubernetes.io/control-plane
+ operator: Equal
+ value: "true"
+ effect: NoSchedule
+ - key: CriticalAddonsOnly
+ operator: Exists
+```
#### admissionController.tolerations
Sets the tolerations for the YuniKorn admission controller pod.
Default: `[]`
-Example:
-
- admissionController:
- tolerations:
- - key: *infraRoleKey
- operator: Equal
- value: "true"
- effect: NoSchedule
- - key: CriticalAddonsOnly
- operator: Exists
-
+Example:
+```yaml
+admissionController:
+ tolerations:
+ - key: node-role.kubernetes.io/control-plane
+ operator: Equal
+ value: "true"
+ effect: NoSchedule
+ - key: CriticalAddonsOnly
+ operator: Exists
+```
### Resource utilization
The resources requested for YuniKorn pods can be customized as follows:
-
- # Scheduler container resources
- resources:
- requests:
- cpu: 200m
- memory: 1Gi
- limits:
- cpu: 4
- memory: 2Gi
-
- # Web UI container resources
- web:
- resources:
- requests:
- cpu: 100m
- memory: 100Mi
- limits:
- cpu: 100m
- memory: 500Mi
-
- # Admission controller resources
- admissionController:
- resources:
- requests:
- cpu: 100m
- memory: 500Mi
- limits:
- cpu: 500m
- memory: 500mi
-
+```yaml
+# Scheduler container resources
+resources:
+ requests:
+ cpu: 200m
+ memory: 1Gi
+ limits:
+ cpu: 4
+ memory: 2Gi
+
+# Web UI container resources
+web:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 100Mi
+ limits:
+ cpu: 100m
+ memory: 500Mi
+
+# Admission controller resources
+admissionController:
+ resources:
+ requests:
+ cpu: 100m
+ memory: 500Mi
+ limits:
+ cpu: 500m
+ memory: 500Mi
+```
### Optional features
#### embedAdmissionController
@@ -307,18 +309,18 @@ Controls whether to enable the YuniKorn admission controller.
Default: `true`
Example:
-
- embedAdmissionController: false
-
+```yaml
+embedAdmissionController: false
+```
#### enableSchedulerPlugin
Controls whether to run YuniKorn in scheduler plugin mode.
Default: `false`
Example:
-
- enableSchedulerPlugin: true
-
+```yaml
+enableSchedulerPlugin: true
+```
### YuniKorn defaults
#### yunikornDefaults
@@ -329,47 +331,11 @@ declared in [YuniKorn configuration](#yunikorn-configuration) may be set here.
Default: `{}`
Example:
-
- yunikornDefaults:
- service.clusterId: yunikorn-01
- service.policyGroup: group-01
- group-01.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
-
-
-### Deprecated settings
-The following settings are deprecated, and will be removed from a future
-YuniKorn release. They should now be specified in the `yunikorn-configs` ConfigMap
-or via the Helm `yunikornDefaults` section:
-
-| Deprecated setting | ConfigMap replacement |
-| --------------------------------------- | ----------------------------------------------- |
-| operatorPlugins | service.operatorPlugins |
-| placeHolderImage | service.placeholderImage |
-| admissionController: processNamespaces | admissionController.filtering.processNamespaces |
-| admissionController: bypassNamespaces | admissionController.filtering.bypassNamespaces |
-| admissionController: labelNamespaces | admissionController.filtering.labelNamespaces |
-| admissionController: noLabelNamespaces | admissionController.filtering.noLabelNamespaces |
-| configuration | queues.yaml |
-
-Deprecated example:
-
- operatorPlugins: general
- placeHolderImage: registry.k8s.io/pause:3.7
- admissionController:
- processNamespaces: "^spark-,^mpi-"
- bypassNamespaces: "^kube-system$"
- labelNamespaces: "^spark-"
- noLabelNamespaces: "^mpi-legacy-"
- configuration: |
+```yaml
+yunikornDefaults:
+ service.clusterId: yunikorn-01
+ service.policyGroup: group-01
+ group-01.yaml: |
partitions:
- name: default
placementrules:
@@ -378,29 +344,65 @@ Deprecated example:
create: true
queues:
- name: root
- submitacl: '*'`
+ submitacl: '*'
+```
-Replacement example:
+### Deprecated settings
+The following settings are deprecated, and will be removed from a future
+YuniKorn release. They should now be specified in the `yunikorn-configs` ConfigMap
+or via the Helm `yunikornDefaults` section:
- yunikornDefaults:
- service.policyGroup: queues
- service.operatorPlugins: general
- service.placeholderImage: registry.k8s.io/pause:3.7
- admissionController.filtering.processNamespaces: "^spark-,^mpi-"
- admissionController.filtering.bypassNamespaces: "^kube-system$"
- admissionController.filtering.labelNamespaces: "^spark-"
- admissionController.filtering.noLabelNamespaces: "^mpi-legacy-"
- queues.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
+| Deprecated setting | ConfigMap replacement |
+|----------------------------------------|-------------------------------------------------|
+| operatorPlugins | service.operatorPlugins |
+| placeHolderImage | service.placeholderImage |
+| admissionController: processNamespaces | admissionController.filtering.processNamespaces |
+| admissionController: bypassNamespaces | admissionController.filtering.bypassNamespaces |
+| admissionController: labelNamespaces | admissionController.filtering.labelNamespaces |
+| admissionController: noLabelNamespaces | admissionController.filtering.noLabelNamespaces |
+| configuration | queues.yaml |
+Deprecated example:
+```yaml
+operatorPlugins: general
+placeHolderImage: registry.k8s.io/pause:3.7
+admissionController:
+ processNamespaces: "^spark-,^mpi-"
+ bypassNamespaces: "^kube-system$"
+ labelNamespaces: "^spark-"
+ noLabelNamespaces: "^mpi-legacy-"
+configuration: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
+Replacement example:
+```yaml
+yunikornDefaults:
+ service.policyGroup: queues
+ service.operatorPlugins: general
+ service.placeholderImage: registry.k8s.io/pause:3.7
+ admissionController.filtering.processNamespaces: "^spark-,^mpi-"
+ admissionController.filtering.bypassNamespaces: "^kube-system$"
+ admissionController.filtering.labelNamespaces: "^spark-"
+ admissionController.filtering.noLabelNamespaces: "^mpi-legacy-"
+ queues.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
Currently, if both the deprecated parameter and the replacement ConfigMap entry are specified, the ConfigMap entry will take precedence.
@@ -425,48 +427,48 @@ to YuniKorn configuration outside of provisioning infrastructure should be made
If neither ConfigMap is provided, or if an option is not specified, YuniKorn will
use the default values listed here:
-
- apiVersion: v1
- kind: ConfigMap
- metadata:
- name: yunikorn-configs
- data:
- service.clusterId: "mycluster"
- service.policyGroup: "queues"
- service.schedulingInterval: "1s"
- service.volumeBindTimeout: "10s"
- service.eventChannelCapacity: "1048576"
- service.dispatchTimeout: "5m"
- service.operatorPlugins: "general"
- service.disableGangScheduling: "false"
- service.enableConfigHotRefresh: "true"
- service.placeholderImage: "registry.k8s.io/pause:3.7"
- health.checkInterval: "30s"
- log.level: "0"
- kubernetes.qps: "1000"
- kubernetes.burst: "1000"
- admissionController.webHook.amServiceName: "yunikorn-admission-controller-service"
- admissionController.webHook.schedulerServiceAddress: "yunikorn-service:9080"
- admissionController.filtering.processNamespaces: ""
- admissionController.filtering.bypassNamespaces: "^kube-system$"
- admissionController.filtering.labelNamespaces: ""
- admissionController.filtering.noLabelNamespaces: ""
- admissionController.accessControl.bypassAuth: "false"
- admissionController.accessControl.trustControllers: "true"
- admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system:"
- admissionController.accessControl.externalUsers: ""
- admissionController.accessControl.externalGroups: ""
- queues.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
-
+```yaml
+apiVersion: v1
+kind: ConfigMap
+metadata:
+ name: yunikorn-configs
+data:
+ service.clusterId: "mycluster"
+ service.policyGroup: "queues"
+ service.schedulingInterval: "1s"
+ service.volumeBindTimeout: "10s"
+ service.eventChannelCapacity: "1048576"
+ service.dispatchTimeout: "5m"
+ service.operatorPlugins: "general"
+ service.disableGangScheduling: "false"
+ service.enableConfigHotRefresh: "true"
+ service.placeholderImage: "registry.k8s.io/pause:3.7"
+ health.checkInterval: "30s"
+ log.level: "0"
+ kubernetes.qps: "1000"
+ kubernetes.burst: "1000"
+ admissionController.webHook.amServiceName: "yunikorn-admission-controller-service"
+ admissionController.webHook.schedulerServiceAddress: "yunikorn-service:9080"
+ admissionController.filtering.processNamespaces: ""
+ admissionController.filtering.bypassNamespaces: "^kube-system$"
+ admissionController.filtering.labelNamespaces: ""
+ admissionController.filtering.noLabelNamespaces: ""
+ admissionController.accessControl.bypassAuth: "false"
+ admissionController.accessControl.trustControllers: "true"
+ admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system:"
+ admissionController.accessControl.externalUsers: ""
+ admissionController.accessControl.externalGroups: ""
+ queues.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
### Service settings
The following parameters are understood by YuniKorn:
@@ -479,9 +481,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `mycluster`
Example:
-
- service.clusterId: "yunikorn-east"
-
+```yaml
+service.clusterId: "yunikorn-east"
+```
#### service.policyGroup
Defines the policy group in use by this scheduler. The policy group is used to
choose one of several queue configurations. The value of this setting plus an
@@ -493,18 +495,19 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `queues`
Example:
-
- service.policyGroup: group_b
- group_b.yaml: |
- partitions:
- - name: default
- placementrules:
- - name: tag
- value: namespace
- create: true
- queues:
- - name: root
- submitacl: '*'`
+```yaml
+service.policyGroup: group_b
+group_b.yaml: |
+ partitions:
+ - name: default
+ placementrules:
+ - name: tag
+ value: namespace
+ create: true
+ queues:
+ - name: root
+ submitacl: '*'
+```
#### service.schedulingInterval
Controls the frequency with which YuniKorn executes scheduling runs.
@@ -514,9 +517,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1s`
Example:
-
- service.schedulingInterval: "5s"
-
+```yaml
+service.schedulingInterval: "5s"
+```
#### service.volumeBindTimeout
Controls the timeout before volume binding fails.
@@ -525,9 +528,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `10s`
Example:
-
- service.volumeBindTimeout: "30s"
-
+```yaml
+service.volumeBindTimeout: "30s"
+```
#### service.eventChannelCapacity
Controls the number of internal scheduling events that YuniKorn will allow
to be in-flight at one time. This acts as an out-of-memory guard.
@@ -537,9 +540,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1048576`
Example:
-
- service.eventChannelCapacity: "1000000"
-
+```yaml
+service.eventChannelCapacity: "1000000"
+```
#### service.dispatchTimeout
Controls how long internal events will reattempt dispatching if the event
channel is full. Warnings will be emitted if this timeout is exceeded.
@@ -549,9 +552,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `5m`
Example:
-
- service.dispatchTimeout: "10m"
-
+```yaml
+service.dispatchTimeout: "10m"
+```
#### service.operatorPlugins
Controls the set of operator plugins which are enabled within YuniKorn.
Currently, only the `general`, `spark-k8s-operator`, and `yunikorn-app`
@@ -562,9 +565,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `general`
Example:
-
- service.operatorPlugins: "general,spark-k8s-operator"
-
+```yaml
+service.operatorPlugins: "general,spark-k8s-operator"
+```
#### service.disableGangScheduling
Allows global disabling of the gang scheduling feature (not recommended).
@@ -573,9 +576,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `false`
Example:
-
- service.disableGangScheduling: "true"
-
+```yaml
+service.disableGangScheduling: "true"
+```
#### service.enableConfigHotRefresh
Controls whether configuration should be hot-reloaded. By default, this
is set to `true`, but it can be disabled to avoid changes to the
@@ -589,9 +592,9 @@ a restart of YuniKorn.
Default: `true`
Example:
-
- service.enableConfigHotRefresh: "false"
-
+```yaml
+service.enableConfigHotRefresh: "false"
+```
#### service.placeholderImage
Sets the Pod image that will be used for gang scheduling placeholders.
@@ -600,9 +603,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `registry.k8s.io/pause:3.7`
Example:
-
- service.placeholderImage: "registry.k8s.io/pause:3.6"
-
+```yaml
+service.placeholderImage: "registry.k8s.io/pause:3.6"
+```
### Health settings
#### health.checkInterval
@@ -616,9 +619,9 @@ A change to this setting will be picked up without a restart of YuniKorn.
Default: `30s`
Example:
-
- health.checkInterval: "1m"
-
+```yaml
+health.checkInterval: "1m"
+```
### Log settings
#### log.level
@@ -627,20 +630,20 @@ Sets the verbosity that YuniKorn will log at.
A change to this setting will be picked up without a restart of YuniKorn. The available
values are:
- - `-1`: Debug
- - `0`: Info
- - `1`: Warn
- - `2`: Error
- - `3`: DPanic
- - `4`: Panic
- - `5`: Fatal
+- `-1`: Debug
+- `0`: Info
+- `1`: Warn
+- `2`: Error
+- `3`: DPanic
+- `4`: Panic
+- `5`: Fatal
Default: `0` (Info)
Example:
-
- log.level: "-1"
-
+```yaml
+log.level: "-1"
+```
### Kubernetes settings
#### kubernetes.qps
@@ -652,9 +655,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1000`
Example:
-
- kubernetes.qps: "500"
-
+```yaml
+kubernetes.qps: "500"
+```
#### kubernetes.burst
Sets the maximum size of bursty queries to Kubernetes, temporarily allowing
events to burst to this number while not still exceeding `kubernetes.qps`.
@@ -664,9 +667,9 @@ A change to this setting requires a restart of YuniKorn to take effect.
Default: `1000`
Example:
-
- kubernetes.burst: "500"
-
+```yaml
+kubernetes.burst: "500"
+```
### Admission controller webhook settings
#### admissionController.webHook.amServiceName
@@ -680,9 +683,9 @@ to take effect.
Default: `yunikorn-admission-controller-service`
Example:
-
- admissionController.webHook.amServiceName: "yunikorn-admission-controller-alt-service-name"
-
+```yaml
+admissionController.webHook.amServiceName: "yunikorn-admission-controller-alt-service-name"
+```
#### admissionController.webHook.schedulerServiceAddress
Sets the address of the YuniKorn scheduler service. This address must be
reachable by the admission controller, and is used by the admission
@@ -696,9 +699,9 @@ to take effect.
Default: `yunikorn-service:9080`
Example:
-
- admissionController.webHook.schedulerServiceAddress: "alt-yunikorn-service:9080"
-
+```yaml
+admissionController.webHook.schedulerServiceAddress: "alt-yunikorn-service:9080"
+```
### Admission controller filtering settings
#### admissionController.filtering.processNamespaces
@@ -712,10 +715,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Schedule only pods in spark-* and mpi-* namespaces with YuniKorn
- admissionController.filtering.processNamespaces: "^spark-,^mpi-"
-
+```yaml
+# Schedule only pods in spark-* and mpi-* namespaces with YuniKorn
+admissionController.filtering.processNamespaces: "^spark-,^mpi-"
+```
#### admissionController.filtering.bypassNamespaces
Controls which namespaces will *not* have pods forwarded to YuniKorn for scheduling.
This acts as an exception list to `admissionController.filtering.processNamespaces`.
@@ -733,10 +736,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: `^kube-system$`
Example:
-
- # Don't schedule pods in kube-system or fluentd-* namespaces
- admissionController.filtering.bypassNamespaces: "^kube-system$,^fluentd-"
-
+```yaml
+# Don't schedule pods in kube-system or fluentd-* namespaces
+admissionController.filtering.bypassNamespaces: "^kube-system$,^fluentd-"
+```
#### admissionController.filtering.labelNamespaces
Controls which namespaces will have pods labeled with an `applicationId`. By default,
all pods which are scheduled by YuniKorn will have an `applicationId` label applied.
@@ -757,10 +760,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Add applicationId labels to pods spark-* namespaces
- admissionController.filtering.labelNamespaces: "^spark-"
-
+```yaml
+# Add applicationId labels to pods spark-* namespaces
+admissionController.filtering.labelNamespaces: "^spark-"
+```
#### admissionController.filtering.noLabelNamespaces
Controls which namespaces will *not* have pods labeled with an `applicationId`. This
acts as an exception list to `admissionController.filtering.labelNamespaces`.
@@ -781,10 +784,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # Skip queueing in the noqueue namespace
- admissionController.filtering.labelNamespaces: "^noqueue$"
-
+```yaml
+# Skip queueing in the noqueue namespace
+admissionController.filtering.labelNamespaces: "^noqueue$"
+```
### Admission controller ACL settings
#### admissionController.accessControl.bypassAuth
@@ -795,9 +798,9 @@ A change to this setting will be picked up without a restart of the admission co
Default: `false`
Example:
-
- admissionController.accessControl.bypassAuth: "true"
-
+```yaml
+admissionController.accessControl.bypassAuth: "true"
+```
#### admissionController.accessControl.trustControllers
Allow controller users to create pods with user information already set.
@@ -806,9 +809,9 @@ A change to this setting will be picked up without a restart of the admission co
Default: `true`
Example:
-
- admissionController.accessControl.trustControllers: "false"
-
+```yaml
+admissionController.accessControl.trustControllers: "false"
+```
#### admissionController.accessControl.systemUsers
Comma-separated list of regular expressions that match allowed controller
service accounts.
@@ -818,10 +821,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: `^system:serviceaccount:kube-system:`
Example:
-
- # allow all kube-system accounts as well as kube-controller-manager
- admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system,^system:kube-controller-manager$"
-
+```yaml
+# allow all kube-system accounts as well as kube-controller-manager
+admissionController.accessControl.systemUsers: "^system:serviceaccount:kube-system,^system:kube-controller-manager$"
+```
#### admissionController.accessControl.externalUsers
Comma-separated list of regular expressions that match allowed external users.
@@ -830,10 +833,10 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # allow 'alice', 'bob', and 'admin-*'
- admissionController.accessControl.externalUsers: "^alice$,^bob$,^admin-"
-
+```yaml
+# allow 'alice', 'bob', and 'admin-*'
+admissionController.accessControl.externalUsers: "^alice$,^bob$,^admin-"
+```
#### admissionController.accessControl.externalGroups
Comma-separated list of regular expressions that match allowed external groups.
@@ -842,7 +845,7 @@ A change to this setting will be picked up without a restart of the admission co
Default: empty
Example:
-
- # allow 'sales', 'marketing', and 'admin-*'
- admissionController.accessControl.externalGroups: "^sales$,^marketing$,^admin-"
-
+```yaml
+# allow 'sales', 'marketing', and 'admin-*'
+admissionController.accessControl.externalGroups: "^sales$,^marketing$,^admin-"
+```