Как использовать один прослушиватель событий для нескольких конвейеров Tekton?

Я хотел бы иметь один прослушиватель событий, который запускал бы разные конвейеры в зависимости от имени репозитория git.

1 ответ

Для APIv1alpha1это можно сделать так:

      apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
  name: event-listener-yf57o5
spec:
  serviceAccountName: pipeline
  triggers:
    - name: app1Trigger
      bindings:
        - kind: ClusterTriggerBinding
          ref: github-push
      interceptors:
        - params:
            - name: filter
              value: body.repository.name.matches('app1name-')
          ref:
            kind: ClusterInterceptor
            name: cel
      template:
        ref: trigger-template-app1-hh2im8
    - name: app2trigger
      bindings:
        - kind: ClusterTriggerBinding
          ref: github-push
      interceptors:
        - params:
            - name: filter
              value: body.repository.name.matches('app2name-')
          ref:
            kind: ClusterInterceptor
            name: cel
      template:
        ref: trigger-template-app2-5yoj99

Где шаблон триггера может быть таким (для завершения):

      apiVersion: triggers.tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
  name: trigger-template-app2-5yoj99
spec:
  params:
    - name: git-revision
    - name: git-commit-message
    - name: git-repo-url
    - name: git-repo-name
    - name: content-type
    - name: pusher-name
  resourcetemplates:
    - apiVersion: tekton.dev/v1beta1
      kind: PipelineRun
      metadata:
        generateName: app2-pipeline-
        labels:
          tekton.dev/pipeline: app2-pipeline
      spec:
        params:
          - name: APP_NAME
            value: app2
          - name: GIT_REPO
            value: $(tt.params.git-repo-url)
          - name: GIT_REVISION
            value: $(tt.params.git-revision)
        pipelineRef:
          name: app2-pipeline
        workspaces:
          - name: workspace
            volumeClaimTemplate:
              metadata:
                labels:
                  tekton.dev/pipeline: app2-pipeline
              spec:
                accessModes:
                  - ReadWriteOnce
                resources:
                  requests:
                    storage: 1Gi
Другие вопросы по тегам