github.com/argoproj/argo-events@v1.9.1/examples/sensors/filter-with-expressions.yaml (about)

     1  # Event Payload
     2  #
     3  #  {
     4  #    "a": "b",
     5  #    "a-longer-name": 10,
     6  #    "nested": {
     7  #      "path": {
     8  #        "can-get": {
     9  #          "longer": false
    10  #        }
    11  #      }
    12  #    }
    13  #  }
    14  #
    15  
    16  apiVersion: argoproj.io/v1alpha1
    17  kind: Sensor
    18  metadata:
    19    name: with-expression-filters
    20  spec:
    21    dependencies:
    22      - name: test-dep
    23        eventSourceName: webhook
    24        eventName: example
    25        filters:
    26          # If event payload passes ALL following expr filters, the event is considered a valid event.
    27          exprs:   # result: EVENT PASS
    28            - expr: a == "b" || c == 10   # true
    29              # In 'fields', 'name' works as a small alias used inside 'expr' above,
    30              # while 'path' refers to a potentially-long JSON path in the payload.
    31              fields:
    32                - name: a
    33                  path: a
    34                - name: c
    35                  path: a-longer-name
    36            - expr: e == false   # true
    37              fields:
    38                - name: e
    39                  path: nested.path.can-get.longer
    40    triggers:
    41      - template:
    42          name: workflow
    43          k8s:
    44            operation: create
    45            source:
    46              resource:
    47                apiVersion: argoproj.io/v1alpha1
    48                kind: Workflow
    49                metadata:
    50                  generateName: expr-workflow-
    51                spec:
    52                  entrypoint: whalesay
    53                  arguments:
    54                    parameters:
    55                      - name: message
    56                        # value will get overridden by the event payload
    57                        value: hello world
    58                  templates:
    59                    - name: whalesay
    60                      inputs:
    61                        parameters:
    62                          - name: message
    63                      container:
    64                        image: docker/whalesay:latest
    65                        command: [cowsay]
    66                        args: ["{{inputs.parameters.message}}"]
    67            parameters:
    68              - src:
    69                  dependencyName: test-dep
    70                  dataKey: name
    71                dest: spec.arguments.parameters.0.value