github.com/argoproj/argo-events@v1.9.1/docs/eventsources/services.md (about)

     1  # EventSource Services
     2  
     3  Some of the EventSources (`webhook`, `github`, `gitlab`, `sns`, `slack`,
     4  `Storage GRID` and `stripe`) start an HTTP service to receive the events, for
     5  your convenience, there is a field named `service` within EventSource spec can
     6  help you create a `ClusterIP` service for testing.
     7  
     8  For example:
     9  
    10  ```yaml
    11  apiVersion: argoproj.io/v1alpha1
    12  kind: EventSource
    13  metadata:
    14    name: webhook
    15  spec:
    16    service:
    17      ports:
    18        - port: 12000
    19          targetPort: 12000
    20    webhook:
    21      example:
    22        port: "12000"
    23        endpoint: /example
    24        method: POST
    25  ```
    26  
    27  However, the generated service is **ONLY** for testing purpose, if you want to
    28  expose the endpoint for external access, please manage it by using native K8s
    29  objects (i.e. a Load Balancer type Service, or an Ingress), and remove `service`
    30  field from the EventSource object.
    31  
    32  For example, you can create a K8s service with the selector `eventsource-name: webhook`
    33  to select pods created for the "webhook" event source, like the following:
    34  
    35  ```yaml
    36  apiVersion: v1
    37  kind: Service
    38  metadata:
    39    name: webhook-eventsource
    40  spec:
    41    ports:
    42    - port: 12000
    43      protocol: TCP
    44      targetPort: 12000
    45    selector:
    46      eventsource-name: webhook
    47    type: NodePort
    48  ```
    49  
    50  Then you can expose the service for external access using native K8s objects as mentioned above.
    51  
    52  You can refer to [webhook heath check](webhook-health-check.md) if you need a
    53  health check endpoint for LB Service or Ingress configuration.