github.com/argoproj/argo-events@v1.9.1/examples/sensors/filter-with-multiple-filters-mixed.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-mixed-multiple-filters
    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          # 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 DOES NOT PASS
    38            - path: "a"   # true
    39              type: "string"
    40              value:
    41                - "b"
    42            - path: "c"   # FALSE
    43              type: "number"
    44              comparator: ">"
    45              value:
    46                - "20"
    47            - path: "d.e"   # true
    48              type: "bool"
    49              value:
    50                - "false"
    51    triggers:
    52      - template:
    53          name: workflow
    54          k8s:
    55            operation: create
    56            source:
    57              resource:
    58                apiVersion: argoproj.io/v1alpha1
    59                kind: Workflow
    60                metadata:
    61                  generateName: workflow-
    62                spec:
    63                  entrypoint: whalesay
    64                  arguments:
    65                    parameters:
    66                      - name: message
    67                        # value will get overridden by the event payload
    68                        value: hello world
    69                  templates:
    70                    - name: whalesay
    71                      inputs:
    72                        parameters:
    73                          - name: message
    74                      container:
    75                        image: docker/whalesay:latest
    76                        command: [cowsay]
    77                        args: ["{{inputs.parameters.message}}"]
    78            parameters:
    79              - src:
    80                  dependencyName: test-dep
    81                  dataKey: name
    82                dest: spec.arguments.parameters.0.value