encoding/yaml: use idiomatic indentation (regression)

For some reason, yaml.v3 uses 4 spaces, instead of
the recommended 2, so this changed when moving to
this new package.

This change reverts it back.

Change-Id: I3cd1fc5a4fb575cce7e014cf51795488c7a5a8a1
Reviewed-on: https://cue-review.googlesource.com/c/cue/+/5686
Reviewed-by: Marcel van Lohuizen <mpvl@golang.org>
diff --git a/cmd/cue/cmd/testdata/script/def_openapi.txt b/cmd/cue/cmd/testdata/script/def_openapi.txt
index 892d449..fc38380 100644
--- a/cmd/cue/cmd/testdata/script/def_openapi.txt
+++ b/cmd/cue/cmd/testdata/script/def_openapi.txt
@@ -117,30 +117,30 @@
 -- expect-yaml-out --
 openapi: 3.0.0
 info:
-    title: Some clever title.
-    version: v1
+  title: Some clever title.
+  version: v1
 paths: {}
 components:
-    schemas:
-        Bar:
-            type: object
-            required:
-              - foo
-            properties:
-                foo:
-                    $ref: '#/components/schemas/Foo'
-        Foo:
-            type: object
-            required:
-              - a
-              - b
-            properties:
-                a:
-                    type: integer
-                b:
-                    type: integer
-                    minimum: 0
-                    exclusiveMaximum: 10
+  schemas:
+    Bar:
+      type: object
+      required:
+      - foo
+      properties:
+        foo:
+          $ref: '#/components/schemas/Foo'
+    Foo:
+      type: object
+      required:
+      - a
+      - b
+      properties:
+        a:
+          type: integer
+        b:
+          type: integer
+          minimum: 0
+          exclusiveMaximum: 10
 -- expect-cue-out --
 openapi: "3.0.0"
 info: {
diff --git a/doc/tutorial/kubernetes/testdata/manual.out b/doc/tutorial/kubernetes/testdata/manual.out
index 4f0b732..4328753 100644
--- a/doc/tutorial/kubernetes/testdata/manual.out
+++ b/doc/tutorial/kubernetes/testdata/manual.out
@@ -5236,18 +5236,18 @@
             data: {
                 "alerts.yaml": """
         receivers:
-          - name: pager
-            slack_configs:
-              - text: |-
-                    {{ range .Alerts }}{{ .Annotations.description }}
-                    {{ end }}
-                channel: '#cloudmon'
-                send_resolved: true
+        - name: pager
+          slack_configs:
+          - text: |-
+              {{ range .Alerts }}{{ .Annotations.description }}
+              {{ end }}
+            channel: '#cloudmon'
+            send_resolved: true
         route:
-            receiver: pager
-            group_by:
-              - alertname
-              - cluster
+          receiver: pager
+          group_by:
+          - alertname
+          - cluster
         
         """
             }
@@ -5340,18 +5340,18 @@
     alertmanager: {
         "alerts.yaml": """
         receivers:
-          - name: pager
-            slack_configs:
-              - text: |-
-                    {{ range .Alerts }}{{ .Annotations.description }}
-                    {{ end }}
-                channel: '#cloudmon'
-                send_resolved: true
+        - name: pager
+          slack_configs:
+          - text: |-
+              {{ range .Alerts }}{{ .Annotations.description }}
+              {{ end }}
+            channel: '#cloudmon'
+            send_resolved: true
         route:
-            receiver: pager
-            group_by:
-              - alertname
-              - cluster
+          receiver: pager
+          group_by:
+          - alertname
+          - cluster
         
         """
     }
@@ -6052,229 +6052,229 @@
             data: {
                 "alert.rules": """
         groups:
-          - name: rules.yaml
-            rules:
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} of job {{ $labels.job }} has been down for
-                        more than 30 seconds.'
-                    summary: Instance {{$labels.app}} down
-                alert: InstanceDown
-                expr: up == 0
-                for: 30s
-              - labels:
-                    severity: page
-                annotations:
-                    description: If one more etcd peer goes down the cluster will be unavailable
-                    summary: etcd cluster small
-                alert: InsufficientPeers
-                expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
-                for: 3m
-              - labels:
-                    severity: page
-                annotations:
-                    summary: No ETCD master elected.
-                alert: EtcdNoMaster
-                expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
-                for: 1s
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value
-                        }} times in 5m.'
-                    summary: Pod for {{$labels.container}} restarts too often
-                alert: PodRestart
-                expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
-                    > 2
-                for: 1m
+        - name: rules.yaml
+          rules:
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} of job {{ $labels.job }} has been down for more
+                than 30 seconds.'
+              summary: Instance {{$labels.app}} down
+            alert: InstanceDown
+            expr: up == 0
+            for: 30s
+          - labels:
+              severity: page
+            annotations:
+              description: If one more etcd peer goes down the cluster will be unavailable
+              summary: etcd cluster small
+            alert: InsufficientPeers
+            expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
+            for: 3m
+          - labels:
+              severity: page
+            annotations:
+              summary: No ETCD master elected.
+            alert: EtcdNoMaster
+            expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
+            for: 1s
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }}
+                times in 5m.'
+              summary: Pod for {{$labels.container}} restarts too often
+            alert: PodRestart
+            expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
+              > 2
+            for: 1m
         
         """
                 "prometheus.yml": """
         global:
-            scrape_interval: 15s
+          scrape_interval: 15s
         rule_files:
-          - /etc/prometheus/alert.rules
+        - /etc/prometheus/alert.rules
         alerting:
-            alertmanagers:
-              - scheme: http
-                static_configs:
-                  - targets:
-                      - alertmanager:9093
+          alertmanagers:
+          - scheme: http
+            static_configs:
+            - targets:
+              - alertmanager:9093
         scrape_configs:
-          - scheme: https
-            job_name: kubernetes-apiservers
-            kubernetes_sd_configs:
-              - role: endpoints
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                  - __meta_kubernetes_service_name
-                  - __meta_kubernetes_endpoint_port_name
-                action: keep
-                regex: default;kubernetes;https
-          - scheme: https
-            job_name: kubernetes-nodes
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics
-          - scheme: https
-            job_name: kubernetes-cadvisor
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
-          - job_name: kubernetes-service-endpoints
-            kubernetes_sd_configs:
-              - role: endpoints
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scrape
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scheme
-                action: replace
-                regex: (https?)
-                target_label: __scheme__
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_path
-                action: replace
-                regex: (.+)
-                target_label: __metrics_path__
-              - source_labels:
-                  - __address__
-                  - __meta_kubernetes_service_annotation_prometheus_io_port
-                action: replace
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                action: replace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_service_name
-                action: replace
-                target_label: kubernetes_name
-          - job_name: kubernetes-services
-            kubernetes_sd_configs:
-              - role: service
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_probe
-                action: keep
-                regex: true
-              - source_labels:
-                  - __address__
-                target_label: __param_target
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_service_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-ingresses
-            kubernetes_sd_configs:
-              - role: ingress
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_ingress_annotation_prometheus_io_probe
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_ingress_scheme
-                  - __address__
-                  - __meta_kubernetes_ingress_path
-                regex: (.+);(.+);(.+)
-                target_label: __param_target
-                replacement: ${1}://${2}${3}
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_ingress_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_ingress_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-pods
-            kubernetes_sd_configs:
-              - role: pod
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_scrape
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_path
-                action: replace
-                regex: (.+)
-                target_label: __metrics_path__
-              - source_labels:
-                  - __address__
-                  - __meta_kubernetes_pod_annotation_prometheus_io_port
-                action: replace
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_pod_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                action: replace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_pod_name
-                action: replace
-                target_label: kubernetes_pod_name
+        - scheme: https
+          job_name: kubernetes-apiservers
+          kubernetes_sd_configs:
+          - role: endpoints
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_namespace
+            - __meta_kubernetes_service_name
+            - __meta_kubernetes_endpoint_port_name
+            action: keep
+            regex: default;kubernetes;https
+        - scheme: https
+          job_name: kubernetes-nodes
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics
+        - scheme: https
+          job_name: kubernetes-cadvisor
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
+        - job_name: kubernetes-service-endpoints
+          kubernetes_sd_configs:
+          - role: endpoints
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scrape
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scheme
+            action: replace
+            regex: (https?)
+            target_label: __scheme__
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_path
+            action: replace
+            regex: (.+)
+            target_label: __metrics_path__
+          - source_labels:
+            - __address__
+            - __meta_kubernetes_service_annotation_prometheus_io_port
+            action: replace
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            action: replace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_service_name
+            action: replace
+            target_label: kubernetes_name
+        - job_name: kubernetes-services
+          kubernetes_sd_configs:
+          - role: service
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_probe
+            action: keep
+            regex: true
+          - source_labels:
+            - __address__
+            target_label: __param_target
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_service_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-ingresses
+          kubernetes_sd_configs:
+          - role: ingress
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_ingress_annotation_prometheus_io_probe
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_ingress_scheme
+            - __address__
+            - __meta_kubernetes_ingress_path
+            regex: (.+);(.+);(.+)
+            target_label: __param_target
+            replacement: ${1}://${2}${3}
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_ingress_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_ingress_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-pods
+          kubernetes_sd_configs:
+          - role: pod
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_path
+            action: replace
+            regex: (.+)
+            target_label: __metrics_path__
+          - source_labels:
+            - __address__
+            - __meta_kubernetes_pod_annotation_prometheus_io_port
+            action: replace
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_pod_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            action: replace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_pod_name
+            action: replace
+            target_label: kubernetes_pod_name
         
         """
             }
@@ -6374,229 +6374,229 @@
     prometheus: {
         "alert.rules": """
         groups:
-          - name: rules.yaml
-            rules:
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} of job {{ $labels.job }} has been down for
-                        more than 30 seconds.'
-                    summary: Instance {{$labels.app}} down
-                alert: InstanceDown
-                expr: up == 0
-                for: 30s
-              - labels:
-                    severity: page
-                annotations:
-                    description: If one more etcd peer goes down the cluster will be unavailable
-                    summary: etcd cluster small
-                alert: InsufficientPeers
-                expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
-                for: 3m
-              - labels:
-                    severity: page
-                annotations:
-                    summary: No ETCD master elected.
-                alert: EtcdNoMaster
-                expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
-                for: 1s
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value
-                        }} times in 5m.'
-                    summary: Pod for {{$labels.container}} restarts too often
-                alert: PodRestart
-                expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
-                    > 2
-                for: 1m
+        - name: rules.yaml
+          rules:
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} of job {{ $labels.job }} has been down for more
+                than 30 seconds.'
+              summary: Instance {{$labels.app}} down
+            alert: InstanceDown
+            expr: up == 0
+            for: 30s
+          - labels:
+              severity: page
+            annotations:
+              description: If one more etcd peer goes down the cluster will be unavailable
+              summary: etcd cluster small
+            alert: InsufficientPeers
+            expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
+            for: 3m
+          - labels:
+              severity: page
+            annotations:
+              summary: No ETCD master elected.
+            alert: EtcdNoMaster
+            expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
+            for: 1s
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }}
+                times in 5m.'
+              summary: Pod for {{$labels.container}} restarts too often
+            alert: PodRestart
+            expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
+              > 2
+            for: 1m
         
         """
         "prometheus.yml": """
         global:
-            scrape_interval: 15s
+          scrape_interval: 15s
         rule_files:
-          - /etc/prometheus/alert.rules
+        - /etc/prometheus/alert.rules
         alerting:
-            alertmanagers:
-              - scheme: http
-                static_configs:
-                  - targets:
-                      - alertmanager:9093
+          alertmanagers:
+          - scheme: http
+            static_configs:
+            - targets:
+              - alertmanager:9093
         scrape_configs:
-          - scheme: https
-            job_name: kubernetes-apiservers
-            kubernetes_sd_configs:
-              - role: endpoints
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                  - __meta_kubernetes_service_name
-                  - __meta_kubernetes_endpoint_port_name
-                action: keep
-                regex: default;kubernetes;https
-          - scheme: https
-            job_name: kubernetes-nodes
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics
-          - scheme: https
-            job_name: kubernetes-cadvisor
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
-          - job_name: kubernetes-service-endpoints
-            kubernetes_sd_configs:
-              - role: endpoints
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scrape
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scheme
-                action: replace
-                regex: (https?)
-                target_label: __scheme__
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_path
-                action: replace
-                regex: (.+)
-                target_label: __metrics_path__
-              - source_labels:
-                  - __address__
-                  - __meta_kubernetes_service_annotation_prometheus_io_port
-                action: replace
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                action: replace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_service_name
-                action: replace
-                target_label: kubernetes_name
-          - job_name: kubernetes-services
-            kubernetes_sd_configs:
-              - role: service
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_probe
-                action: keep
-                regex: true
-              - source_labels:
-                  - __address__
-                target_label: __param_target
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_service_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-ingresses
-            kubernetes_sd_configs:
-              - role: ingress
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_ingress_annotation_prometheus_io_probe
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_ingress_scheme
-                  - __address__
-                  - __meta_kubernetes_ingress_path
-                regex: (.+);(.+);(.+)
-                target_label: __param_target
-                replacement: ${1}://${2}${3}
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_ingress_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_ingress_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-pods
-            kubernetes_sd_configs:
-              - role: pod
-            relabel_configs:
-              - source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_scrape
-                action: keep
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_path
-                action: replace
-                regex: (.+)
-                target_label: __metrics_path__
-              - source_labels:
-                  - __address__
-                  - __meta_kubernetes_pod_annotation_prometheus_io_port
-                action: replace
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_pod_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                action: replace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_pod_name
-                action: replace
-                target_label: kubernetes_pod_name
+        - scheme: https
+          job_name: kubernetes-apiservers
+          kubernetes_sd_configs:
+          - role: endpoints
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_namespace
+            - __meta_kubernetes_service_name
+            - __meta_kubernetes_endpoint_port_name
+            action: keep
+            regex: default;kubernetes;https
+        - scheme: https
+          job_name: kubernetes-nodes
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics
+        - scheme: https
+          job_name: kubernetes-cadvisor
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
+        - job_name: kubernetes-service-endpoints
+          kubernetes_sd_configs:
+          - role: endpoints
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scrape
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scheme
+            action: replace
+            regex: (https?)
+            target_label: __scheme__
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_path
+            action: replace
+            regex: (.+)
+            target_label: __metrics_path__
+          - source_labels:
+            - __address__
+            - __meta_kubernetes_service_annotation_prometheus_io_port
+            action: replace
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            action: replace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_service_name
+            action: replace
+            target_label: kubernetes_name
+        - job_name: kubernetes-services
+          kubernetes_sd_configs:
+          - role: service
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_probe
+            action: keep
+            regex: true
+          - source_labels:
+            - __address__
+            target_label: __param_target
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_service_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-ingresses
+          kubernetes_sd_configs:
+          - role: ingress
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_ingress_annotation_prometheus_io_probe
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_ingress_scheme
+            - __address__
+            - __meta_kubernetes_ingress_path
+            regex: (.+);(.+);(.+)
+            target_label: __param_target
+            replacement: ${1}://${2}${3}
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_ingress_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_ingress_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-pods
+          kubernetes_sd_configs:
+          - role: pod
+          relabel_configs:
+          - source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+            action: keep
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_path
+            action: replace
+            regex: (.+)
+            target_label: __metrics_path__
+          - source_labels:
+            - __address__
+            - __meta_kubernetes_pod_annotation_prometheus_io_port
+            action: replace
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_pod_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            action: replace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_pod_name
+            action: replace
+            target_label: kubernetes_pod_name
         
         """
     }
diff --git a/doc/tutorial/kubernetes/testdata/quick.out b/doc/tutorial/kubernetes/testdata/quick.out
index 38b396e..a678e55 100644
--- a/doc/tutorial/kubernetes/testdata/quick.out
+++ b/doc/tutorial/kubernetes/testdata/quick.out
@@ -2476,18 +2476,18 @@
         data: {
             "alerts.yaml": """
         receivers:
-          - name: pager
-            slack_configs:
-              - text: |-
-                    {{ range .Alerts }}{{ .Annotations.description }}
-                    {{ end }}
-                channel: '#cloudmon'
-                send_resolved: true
+        - name: pager
+          slack_configs:
+          - text: |-
+              {{ range .Alerts }}{{ .Annotations.description }}
+              {{ end }}
+            channel: '#cloudmon'
+            send_resolved: true
         route:
-            receiver: pager
-            group_by:
-              - alertname
-              - cluster
+          receiver: pager
+          group_by:
+          - alertname
+          - cluster
         
         """
         }
@@ -2888,229 +2888,229 @@
         data: {
             "alert.rules": """
         groups:
-          - name: rules.yaml
-            rules:
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} of job {{ $labels.job }} has been down for
-                        more than 30 seconds.'
-                    summary: Instance {{$labels.app}} down
-                alert: InstanceDown
-                expr: up == 0
-                for: 30s
-              - labels:
-                    severity: page
-                annotations:
-                    description: If one more etcd peer goes down the cluster will be unavailable
-                    summary: etcd cluster small
-                alert: InsufficientPeers
-                expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
-                for: 3m
-              - labels:
-                    severity: page
-                annotations:
-                    summary: No ETCD master elected.
-                alert: EtcdNoMaster
-                expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
-                for: 1s
-              - labels:
-                    severity: page
-                annotations:
-                    description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value
-                        }} times in 5m.'
-                    summary: Pod for {{$labels.container}} restarts too often
-                alert: PodRestart
-                expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
-                    > 2
-                for: 1m
+        - name: rules.yaml
+          rules:
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} of job {{ $labels.job }} has been down for more
+                than 30 seconds.'
+              summary: Instance {{$labels.app}} down
+            alert: InstanceDown
+            expr: up == 0
+            for: 30s
+          - labels:
+              severity: page
+            annotations:
+              description: If one more etcd peer goes down the cluster will be unavailable
+              summary: etcd cluster small
+            alert: InsufficientPeers
+            expr: count(up{job=\"etcd\"} == 0) > (count(up{job=\"etcd\"}) / 2 - 1)
+            for: 3m
+          - labels:
+              severity: page
+            annotations:
+              summary: No ETCD master elected.
+            alert: EtcdNoMaster
+            expr: sum(etcd_server_has_leader{app=\"etcd\"}) == 0
+            for: 1s
+          - labels:
+              severity: page
+            annotations:
+              description: '{{$labels.app}} {{ $labels.container }} resturted {{ $value }}
+                times in 5m.'
+              summary: Pod for {{$labels.container}} restarts too often
+            alert: PodRestart
+            expr: (max_over_time(pod_container_status_restarts_total[5m]) - min_over_time(pod_container_status_restarts_total[5m]))
+              > 2
+            for: 1m
         
         """
             "prometheus.yml": """
         global:
-            scrape_interval: 15s
+          scrape_interval: 15s
         rule_files:
-          - /etc/prometheus/alert.rules
+        - /etc/prometheus/alert.rules
         alerting:
-            alertmanagers:
-              - scheme: http
-                static_configs:
-                  - targets:
-                      - alertmanager:9093
+          alertmanagers:
+          - scheme: http
+            static_configs:
+            - targets:
+              - alertmanager:9093
         scrape_configs:
-          - scheme: https
-            job_name: kubernetes-apiservers
-            kubernetes_sd_configs:
-              - role: endpoints
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: keep
-                source_labels:
-                  - __meta_kubernetes_namespace
-                  - __meta_kubernetes_service_name
-                  - __meta_kubernetes_endpoint_port_name
-                regex: default;kubernetes;https
-          - scheme: https
-            job_name: kubernetes-nodes
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics
-          - scheme: https
-            job_name: kubernetes-cadvisor
-            kubernetes_sd_configs:
-              - role: node
-            tls_config:
-                ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
-            bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
-            relabel_configs:
-              - action: labelmap
-                regex: __meta_kubernetes_node_label_(.+)
-              - target_label: __address__
-                replacement: kubernetes.default.svc:443
-              - source_labels:
-                  - __meta_kubernetes_node_name
-                regex: (.+)
-                target_label: __metrics_path__
-                replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
-          - job_name: kubernetes-service-endpoints
-            kubernetes_sd_configs:
-              - role: endpoints
-            relabel_configs:
-              - action: keep
-                source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scrape
-                regex: true
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_scheme
-                regex: (https?)
-                target_label: __scheme__
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_path
-                regex: (.+)
-                target_label: __metrics_path__
-              - action: replace
-                source_labels:
-                  - __address__
-                  - __meta_kubernetes_service_annotation_prometheus_io_port
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_service_name
-                target_label: kubernetes_name
-          - job_name: kubernetes-services
-            kubernetes_sd_configs:
-              - role: service
-            relabel_configs:
-              - action: keep
-                source_labels:
-                  - __meta_kubernetes_service_annotation_prometheus_io_probe
-                regex: true
-              - source_labels:
-                  - __address__
-                target_label: __param_target
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_service_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_service_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-ingresses
-            kubernetes_sd_configs:
-              - role: ingress
-            relabel_configs:
-              - action: keep
-                source_labels:
-                  - __meta_kubernetes_ingress_annotation_prometheus_io_probe
-                regex: true
-              - source_labels:
-                  - __meta_kubernetes_ingress_scheme
-                  - __address__
-                  - __meta_kubernetes_ingress_path
-                regex: (.+);(.+);(.+)
-                target_label: __param_target
-                replacement: ${1}://${2}${3}
-              - target_label: __address__
-                replacement: blackbox-exporter.example.com:9115
-              - source_labels:
-                  - __param_target
-                target_label: app
-              - action: labelmap
-                regex: __meta_kubernetes_ingress_label_(.+)
-              - source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - source_labels:
-                  - __meta_kubernetes_ingress_name
-                target_label: kubernetes_name
-            metrics_path: /probe
-            params:
-                module:
-                  - http_2xx
-          - job_name: kubernetes-pods
-            kubernetes_sd_configs:
-              - role: pod
-            relabel_configs:
-              - action: keep
-                source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_scrape
-                regex: true
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_pod_annotation_prometheus_io_path
-                regex: (.+)
-                target_label: __metrics_path__
-              - action: replace
-                source_labels:
-                  - __address__
-                  - __meta_kubernetes_pod_annotation_prometheus_io_port
-                regex: ([^:]+)(?::\\d+)?;(\\d+)
-                target_label: __address__
-                replacement: $1:$2
-              - action: labelmap
-                regex: __meta_kubernetes_pod_label_(.+)
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_namespace
-                target_label: kubernetes_namespace
-              - action: replace
-                source_labels:
-                  - __meta_kubernetes_pod_name
-                target_label: kubernetes_pod_name
+        - scheme: https
+          job_name: kubernetes-apiservers
+          kubernetes_sd_configs:
+          - role: endpoints
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: keep
+            source_labels:
+            - __meta_kubernetes_namespace
+            - __meta_kubernetes_service_name
+            - __meta_kubernetes_endpoint_port_name
+            regex: default;kubernetes;https
+        - scheme: https
+          job_name: kubernetes-nodes
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics
+        - scheme: https
+          job_name: kubernetes-cadvisor
+          kubernetes_sd_configs:
+          - role: node
+          tls_config:
+            ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
+          bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
+          relabel_configs:
+          - action: labelmap
+            regex: __meta_kubernetes_node_label_(.+)
+          - target_label: __address__
+            replacement: kubernetes.default.svc:443
+          - source_labels:
+            - __meta_kubernetes_node_name
+            regex: (.+)
+            target_label: __metrics_path__
+            replacement: /api/v1/nodes/${1}/proxy/metrics/cadvisor
+        - job_name: kubernetes-service-endpoints
+          kubernetes_sd_configs:
+          - role: endpoints
+          relabel_configs:
+          - action: keep
+            source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scrape
+            regex: true
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_scheme
+            regex: (https?)
+            target_label: __scheme__
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_path
+            regex: (.+)
+            target_label: __metrics_path__
+          - action: replace
+            source_labels:
+            - __address__
+            - __meta_kubernetes_service_annotation_prometheus_io_port
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_service_name
+            target_label: kubernetes_name
+        - job_name: kubernetes-services
+          kubernetes_sd_configs:
+          - role: service
+          relabel_configs:
+          - action: keep
+            source_labels:
+            - __meta_kubernetes_service_annotation_prometheus_io_probe
+            regex: true
+          - source_labels:
+            - __address__
+            target_label: __param_target
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_service_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_service_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-ingresses
+          kubernetes_sd_configs:
+          - role: ingress
+          relabel_configs:
+          - action: keep
+            source_labels:
+            - __meta_kubernetes_ingress_annotation_prometheus_io_probe
+            regex: true
+          - source_labels:
+            - __meta_kubernetes_ingress_scheme
+            - __address__
+            - __meta_kubernetes_ingress_path
+            regex: (.+);(.+);(.+)
+            target_label: __param_target
+            replacement: ${1}://${2}${3}
+          - target_label: __address__
+            replacement: blackbox-exporter.example.com:9115
+          - source_labels:
+            - __param_target
+            target_label: app
+          - action: labelmap
+            regex: __meta_kubernetes_ingress_label_(.+)
+          - source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - source_labels:
+            - __meta_kubernetes_ingress_name
+            target_label: kubernetes_name
+          metrics_path: /probe
+          params:
+            module:
+            - http_2xx
+        - job_name: kubernetes-pods
+          kubernetes_sd_configs:
+          - role: pod
+          relabel_configs:
+          - action: keep
+            source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_scrape
+            regex: true
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_pod_annotation_prometheus_io_path
+            regex: (.+)
+            target_label: __metrics_path__
+          - action: replace
+            source_labels:
+            - __address__
+            - __meta_kubernetes_pod_annotation_prometheus_io_port
+            regex: ([^:]+)(?::\\d+)?;(\\d+)
+            target_label: __address__
+            replacement: $1:$2
+          - action: labelmap
+            regex: __meta_kubernetes_pod_label_(.+)
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_namespace
+            target_label: kubernetes_namespace
+          - action: replace
+            source_labels:
+            - __meta_kubernetes_pod_name
+            target_label: kubernetes_pod_name
         
         """
         }
diff --git a/internal/encoding/yaml/encode.go b/internal/encoding/yaml/encode.go
index b0a247d..d9742e7 100644
--- a/internal/encoding/yaml/encode.go
+++ b/internal/encoding/yaml/encode.go
@@ -15,6 +15,7 @@
 package yaml
 
 import (
+	"bytes"
 	"math/big"
 	"strings"
 
@@ -45,7 +46,14 @@
 	if err != nil {
 		return nil, err
 	}
-	return yaml.Marshal(y)
+	w := &bytes.Buffer{}
+	enc := yaml.NewEncoder(w)
+	// Use idiomatic indentation.
+	enc.SetIndent(2)
+	if err = enc.Encode(y); err != nil {
+		return nil, err
+	}
+	return w.Bytes(), nil
 }
 
 func encode(n ast.Node) (y *yaml.Node, err error) {
diff --git a/internal/encoding/yaml/encode_test.go b/internal/encoding/yaml/encode_test.go
index 33d478a..b90447c 100644
--- a/internal/encoding/yaml/encode_test.go
+++ b/internal/encoding/yaml/encode_test.go
@@ -51,18 +51,18 @@
 		`,
 		out: `
 seq:
-  - 1
-  - 2
-  - 3
-  - a: 1
-    b: 2
+- 1
+- 2
+- 3
+- a: 1
+  b: 2
 a:
-    b:
-        c: 3
+  b:
+    c: 3
 b:
-    x: 0
-    y: 1
-    z: 2
+  x: 0
+  y: 1
+  z: 2
 		`,
 	}, {
 		name: "oneLineFields",
@@ -136,8 +136,8 @@
 
 # head 3
 f3:
-    # struct doc
-    a: 1
+  # struct doc
+  a: 1
 f4: {} # line 4
 
 # Trailing
@@ -229,16 +229,16 @@
 		}`,
 		out: `
 receivers:
-  - name: pager
-    slack_configs:
-      - text: |-
-            {{ range .Alerts }}{{ .Annotations.description }}
-            {{ end }}
-        channel: '#cloudmon'
-        send_resolved: true
+- name: pager
+  slack_configs:
+  - text: |-
+      {{ range .Alerts }}{{ .Annotations.description }}
+      {{ end }}
+    channel: '#cloudmon'
+    send_resolved: true
 route:
-    receiver: pager
-    group_by: [alertname, cluster]
+  receiver: pager
+  group_by: [alertname, cluster]
 		`,
 	}}
 	for _, tc := range testCases {