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/
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
1.OpenGL 和OpenGL ES OpenGL(Open Graphics Library)是一种用于渲染2D和3D图形的跨平台编程接口。OpenGL提供了一套标准的函数和接口,使开发人员能够在各种操作系统上创建高性能的图形应用程序,这些操作系统包括…