Tekton笔记(一)之trigger

本篇的内容是在一个现成的pipeline的基础上,配置一个trigger,最后用curl命令触发运行来验证功能。

准备工作

  1. 安装tekton,dashboard环境
    具体步骤请按照这篇教程操作:
    https://tekton.dev/docs/dashboard/tutorial/
    建议按照文中说明跑一个pipelineRun验证下系统是否正常

  2. 安装trigger

    kubectl apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/release.yaml
    kubectl apply --filename https://storage.googleapis.com/tekton-releases/triggers/latest/interceptors.yaml
    
  3. 无脑配置rbac
    kubectl apply -f https://raw.githubusercontent.com/tektoncd/triggers/v0.20.0/examples/rbac.yaml
    关于sa具体说明看这里:

    https://tekton.dev/docs/triggers/eventlisteners/#specifying-the-kubernetes-service-account

上述准备工作做完了之后,我们就有了一个完整的tekton系统,一个dashboard的web UI,

以及有一个hello-goodbyePipeline之后会用到。

配置Trigger相关资源

接下来开始进入本文正题,Trigger主要就是TriggerTemplate,TriggerBinding,EventListener三件套:

  • EventListener 负载创建一个service监听触发请求,再定义Trigger粘合一下TriggerTemplateTriggerBinding
  • TriggerBinding 处理下传进来的参数,把json变成一个个kv对,供TriggerTemplate使用。
  • TriggerTemplate 内部定义一个PipelineRun,指定下要用到的某一个pipeline

这个例子实际上没有用到TriggerBinding,但是不写又不行,所以随便写一点。

完整的配置如下:

apiVersion: triggers.tekton.dev/v1alpha1
kind: TriggerTemplate
metadata:
  name: tekton-demo-triggertemplate
spec:
  resourcetemplates:
    - apiVersion: tekton.dev/v1beta1
      kind: PipelineRun
      metadata:
        generateName: tekton-demo-
      spec:
        serviceAccountName: tekton-triggers-example-sa
        pipelineRef:
          name: hello-goodbye
---
apiVersion: triggers.tekton.dev/v1alpha1
kind: EventListener
metadata:
  name: tekton-demo-listener
spec:
  serviceAccountName: tekton-triggers-example-sa
  triggers:
    - bindings:
      - ref: tekton-demo-pipelinebinding
      template:
        ref: tekton-demo-triggertemplate
---
apiVersion: triggers.tekton.dev/v1alpha1
kind: TriggerBinding
metadata:
  name: tekton-demo-pipelinebinding
spec:
  params:
    - name: foo
      value: bar

测试运行

  1. 先将service端口暴露出来

    kubectl port-forward service/el-tekton-demo-listener 8080 &
    
  2. 发送请求,这里必须是json格式的,不然会报错。

    #curl -X POST   http://localhost:8080   -H 'Content-Type: application/json'   -d '{ }'
    Handling connection for 8080
    {"eventListener":"tekton-demo-listener","namespace":"default","eventListenerUID":"1ce49b54-578c-40b4-a86e-32221f5299c1",
    "eventID":"580bc66a-8b65-44eb-bdc5-a7076bfe8a0b"}
    

    可以看到会返回一个eventID,这样就可以知道哪个请求对应那次触发。

  3. 查看运行结果,点开dashboard可以看到已经成功运行了。
    在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值