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