github.com/oam-dev/kubevela@v1.9.11/references/docgen/def-doc/trait/json-merge-patch.eg.md (about)

     1  ```yaml
     2  apiVersion: core.oam.dev/v1beta1
     3  kind: Application
     4  metadata:
     5    name: busybox
     6  spec:
     7    components:
     8      - name: busybox
     9        type: webservice
    10        properties:
    11          image: busybox
    12          cmd: ["sleep", "86400"]
    13          labels:
    14            pod-label-key: pod-label-value
    15            to-delete-label-key: to-delete-label-value
    16        traits:
    17          # the json merge patch can be used to add, replace and delete fields
    18          # the following part will
    19          # 1. add `deploy-label-key` to deployment labels
    20          # 2. set deployment replicas to 3
    21          # 3. set `pod-label-key` to `pod-label-modified-value` in pod labels
    22          # 4. delete `to-delete-label-key` in pod labels
    23          # 5. reset `containers` for pod
    24          - type: json-merge-patch
    25            properties:
    26              metadata:
    27                labels:
    28                  deploy-label-key: deploy-label-added-value
    29              spec:
    30                replicas: 3
    31                template:
    32                  metadata:
    33                    labels:
    34                      pod-label-key: pod-label-modified-value
    35                      to-delete-label-key: null
    36                  spec:
    37                    containers:
    38                      - name: busybox-new
    39                        image: busybox:1.34
    40                        command: ["sleep", "864000"]
    41  ```