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

     1  # Event Payload
     2  #
     3  #  {
     4  #    "a": "b",
     5  #    "c": 10,
     6  #    "d": {
     7  #      "e": false
     8  #    }
     9  #  }
    10  #
    11  
    12  apiVersion: argoproj.io/v1alpha1
    13  kind: Sensor
    14  metadata:
    15    name: with-multiple-filters
    16  spec:
    17    dependencies:
    18      - name: test-dep
    19        eventSourceName: webhook
    20        eventName: example
    21        # If event payload passes ALL following filters, the event is considered a valid event.
    22        # default "filtersLogicalOperator" = "and"
    23        filters:   # global filters result: EVENT PASS
    24          # default "exprLogicalOperator" = "and"
    25          exprs:   # expr filter result: EVENT PASS
    26            - expr: a == "b" || c == 10   # true
    27              fields:
    28                - name: a
    29                  path: a
    30                - name: c
    31                  path: c
    32            - expr: e == false   # true
    33              fields:
    34                - name: e
    35                  path: d.e
    36          # default "dataLogicalOperator" = "and"
    37          data:   # data filter result: EVENT PASS
    38            - path: "a"   # true
    39              type: "string"
    40              value:
    41                - "b"
    42            - path: "c"   # true
    43              type: "number"
    44              value:
    45                - "10"
    46            - path: "d.e"   # true
    47              type: "bool"
    48              value:
    49                - "false"
    50    triggers:
    51      - template:
    52          name: workflow
    53          k8s:
    54            operation: create
    55            source:
    56              resource:
    57                apiVersion: argoproj.io/v1alpha1
    58                kind: Workflow
    59                metadata:
    60                  generateName: workflow-
    61                spec:
    62                  entrypoint: whalesay
    63                  arguments:
    64                    parameters:
    65                      - name: message
    66                        # value will get overridden by the event payload
    67                        value: hello world
    68                  templates:
    69                    - name: whalesay
    70                      inputs:
    71                        parameters:
    72                          - name: message
    73                      container:
    74                        image: docker/whalesay:latest
    75                        command: [cowsay]
    76                        args: ["{{inputs.parameters.message}}"]
    77            parameters:
    78              - src:
    79                  dependencyName: test-dep
    80                  dataKey: name
    81                dest: spec.arguments.parameters.0.value