github.com/oam-dev/kubevela@v1.9.11/references/docgen/def-doc/trait/json-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 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. add sidecar container for pod
    24          - type: json-patch
    25            properties:
    26              operations:
    27                - op: add
    28                  path: "/spec/replicas"
    29                  value: 3
    30                - op: replace
    31                  path: "/spec/template/metadata/labels/pod-label-key"
    32                  value: pod-label-modified-value
    33                - op: remove
    34                  path: "/spec/template/metadata/labels/to-delete-label-key"
    35                - op: add
    36                  path: "/spec/template/spec/containers/1"
    37                  value:
    38                    name: busybox-sidecar
    39                    image: busybox:1.34
    40                    command: ["sleep", "864000"]
    41  ```