github.com/oam-dev/kubevela@v1.9.11/docs/examples/traits/json-patch/example.yaml (about)

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