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-"
+```