首页 > 其他分享 >Tekton Trigger EventListener 基础

Tekton Trigger EventListener 基础

时间:2023-12-05 14:45:41浏览次数:24  
标签:name Kubernetes EventListener 指定 Tekton Trigger spec

EventListener 概述

EventListener 是一个 Kubernetes 对象,用于侦听 Kubernetes 集群上指定端口上的事件。它公开了一个可寻址接收器,用于接收传入事件并指定一个或多个Triggers。sink是一个 Kubernetes 服务,在专用 Pod 内运行sink逻辑。
每个Trigger又允许您指定一个或多个 TriggerBindings(允许您从事件负载中提取字段及其值)以及一个或多个 TriggerTemplates(从相应的 TriggerBindings 接收字段值),并允许 Tekton Triggers使用该数据实例化资源,例如 TaskRuns 和 PipelineRuns。
如果您需要在将事件有效负载数据传递到 TriggerBinding 之前对其进行修改、过滤或验证,您可以选择指定一个或多个Interceptors.

EventListener 资源规范

apiVersion: triggers.tekton.dev/v1beta1    # 指定目标API版本,例如triggers.tekton.dev/v1alpha1
kind: EventListener                        # 指定此 Kubernetes 资源是 EventListener 对象
metadata:                                  # 指定该资源的元数据
  name: eventlistener
spec:                                      # 指定EventListener 的配置
  serviceAccountName:                      # 指定 EventListener 将用于实例化 Tekton 资源的 ServiceAccount
  triggers:                               # 指定在事件检测时执行的Triggers列表
    - name:                                # (可选)唯一标识Trigger的有效 Kubernetes 名称
      interceptors:                       # (可选)拦截器列表,在将事件有效负载数据传递给关联的 TriggerBinding 之前将对其进行处理
      bindings:                           # (可选)此Trigger的 TriggerBindings 列表;您可以引用现有的 TriggerBindings 或直接嵌入它们的定义
      template:                           # (可选)此Trigger的 TriggerTemplate;您可以引用现有的 TriggerTemplate 或直接嵌入其定义
      triggerRef:                         # (可选)对外部Trigger的引用
  cloudEventURI:                          # 指定cloudevent接收器的URI
  triggerGroups:                           # TriggerGroups 是一项功能,允许您指定一组拦截器,这些拦截器将在事件侦听器处理一组触发器资源之前进行处理。
    - name:                                # (可选)唯一标识Trigger的有效 Kubernetes 名称
      interceptors:                       # (可选)拦截器列表,在将事件有效负载数据传递给关联的 TriggerBinding 之前将对其进行处理
      triggerSelector:                     # Kubernetes labelSelector 和 namespaceSelector 的组合,这两个字段一起定义拦截器处理完成后将处理的触发器。
        labelSelector:
          matchLabels:
            type: github-pr
        namespaceSelector:
          matchNames:
            - foo
  resources:                              # 指定事件侦听服务可用的资源
    kubernetesResource:
      spec:
        template:
          spec:
            serviceAccountName: 
            containers:
              - resources:
                  requests:
                    memory: "64Mi"
                    cpu: "250m"
                  limits:
                    memory: "128Mi"
                    cpu: "500m"
  namespaceSelector:                      # 指定EventListener的命名空间;这是 EventListener 查找指定触发器并存储在事件检测时实例化的 Tekton 对象的位置
    matchNames:
    - foo
    - bar
    - "*"
  labelSelector:                          # 指定 EventListener 识别触发器并实例化指定 Tekton 对象的标签
    matchLabels:
      foo: bar
    matchExpressions:
      - {key: environment, operator: In, values: [dev,stage]}
      - {key: trigger-phase, operator: NotIn, values: [testing]}

EventListener 暴露到外部

LoadBalancer

spec:
  resources:
    kubernetesResource:
      serviceType: LoadBalancer

NodePort

spec:
  resources:
    kubernetesResource:
      serviceType: NodePort

EventListener 示例

apiVersion: triggers.tekton.dev/v1beta1    
kind: EventListener                        
metadata:                                  
  name: eventlistener
spec:                    
  triggers:
    - name: trigger-1
      serviceAccountName: trigger-1-sa
      interceptors:
        - ref:
            name: "gitlab"
          params:
          - name: "secretRef"
            value:
              secretName: foo
              secretKey: bar
          - name: "eventTypes"
            value: ["Push Hook"]
      bindings:
        - ref: pipeline-binding
        - ref: message-binding
      template:
        ref: pipeline-template

参考文档

https://tekton.dev/docs/triggers/eventlisteners/

标签:name,Kubernetes,EventListener,指定,Tekton,Trigger,spec
From: https://www.cnblogs.com/wangguishe/p/17876602.html

相关文章

  • Tekton Trigger 基础
    TektonTrigger概述TektonTriggers是一个Tekton组件,它允许您从各种来源的事件中检测和提取信息,并基于该信息确定地实例化和执行TaskRuns和PipelineRuns。Tekton触发器还可以将从事件中提取的信息直接传递给TaskRuns和pipelinerun。在Kubernetes集群上安装TektonTriggers作为Te......
  • Tekton Trigger Interceptors 基础
    Interceptors概述Interceptor是针对特定平台的的事件处理器,在TriggerBinding之前运行。它允许您执行有效负载过滤、验证(使用秘密)、转换、定义和测试触发条件,以及实现其他有用的处理。一旦事件数据通过Interceptor,它就会在将有效负载数据传递到TriggerBinding之前转到Trigger......
  • Tekton 认证配置
    Tenton支持Secret类型GitDockerkubernetes.io/basic-authkubernetes.io/ssh-authkubernetes.io/basic-authkubernetes.io/dockercfgkubernetes.io/dockerconfigjson配置Git身份验证TentonSecrets存储路径~/.gitconfig文件或~/.ssh目录。配置basic-auth......
  • Tekton pipelineruns 基础
    pipelineruns概述PipelineRun允许你在集群上实例化和执行Pipeline。一个Pipeline指定一个或多个Tasks,按照期望的执行顺序执行。PipelineRun按照指定的顺序执行Pipeline中的Tasks,直到所有Tasks都成功执行或失败。PipelineRun会自动为Pipeline中的每个Task创建相应的taskrun。pi......
  • Tekton Pipelines 基础
    Pipelines概述Pipeline是Tasks的集合,作为持续集成流的一部分,您可以定义并按照特定的执行顺序排列这些Tasks。Pipeline中的每个Tasks在Kubernetes集群上作为Pod执行。您可以配置各种执行条件来满足您的业务需求。Pipeline使用When表达式when表达式input:被评估的内容,支持使用......
  • Tekton 基础
    Tekton概述Tekton是用于构建CI/CD系统的云原生解决方案。它由TektonPipelines(提供构建块)和支持组件(例如TektonCLI和TektonCatalog)组成,使Tekton成为一个完整的生态系统。Tekton是Linux基金会项目CD基金会的一部分。Tekton作为Kubernetes集群上的扩展安装和运......
  • Tekton TaskRun 基础
    TaskRun概述TaskRun允许您在集群上实例化和执行Task。任务指定执行容器映像的一个或多个Steps,每个容器映像执行特定的构建工作。TaskRun按照指定的顺序执行任务中的Steps,直到所有Steps执行成功或失败。TaskRun配置清单apiVersion:tekton.dev/v1#指定API版本。kind:T......
  • Tekton Tasks 基础
    Tasks概述Task是一系列Step的组合,每个Step主要负责运行特定的构建或交付工具从而完成相关的一次特定事项;Task以Kubernetes集群上Pod运行。Task是名称空间级别的资源。Tasks组成Parameters:是使得Task及Pipeline资源定义出的“模板”更加具有通用性的关键要素之一Steps:具体执......
  • 部署 Tekton Triggers v0.25.3
    环境要求1.运行1.18或更高版本的Kubernetes集群;2.集群上要安装了TektonPipelines;部署TektonTriggers下载TektonTriggers#wgethttps://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml#wgethttps://storage.googleapis.com/tekton-relea......
  • 部署 Tekton Dashboard
    部署TektonDashboard下载TektonDashboard部署清单#wgethttps://storage.googleapis.com/tekton-releases/dashboard/latest/release.yaml替换gcr.io#sed-i'[email protected]@gcr.dockerproxy.com@g'release.yaml部署Tekton Dashboard#kubectlapply-frelease.yam......