[CICD]Tekton in k8s trigger

 

前言

上一篇只是個開頭,其實我花了最多時間的地方就在這邊(各種撞牆),雖然說網路上資源很多、範例也多(但是大多年代久遠),也許有些部份還可以拿來用,但是這種情況會讓人挫折感大增。

了解工作流程

基本上到官方的GitHub都有相關說明,不過我這邊簡單帶一下就好,流程基本上就是在建立Eventlistener後會自動起個Service,該Service的前綴自動加上el-很容易分辨,這個Service主要目的是準備讓你接Webhook可以使用,如果你用Ingress或是Traefik這類的工具可以很輕鬆的把Webhook串起來。

Eventlistener會至少指定一個TriggerTemplateTriggerBinding,以這邊的擴充性來看感覺上應該是可以一個Template跟多個Binding,但是本人真的沒有多的時間一個一個試,我只有試過串接兩個Template成功的例子,如果要細分資料的話也許真的可以一對多個Binding;而在Eventlistener裡要注意的地方是interceptors,他的執行順序在TriggerBinding之前,也就是Webhook過來後,就會被interceptors攔截到,並開始處理你指定的相關動作,然後再執行TriggerBinding的變數設定,最後才執行TriggerTemplate的腳本流程。

流程如下所示

Eventlistener > TriggerBinding > TriggerTemplate.

啟動之前

這部份是我個人會額外多做的一個步驟,就是驗證我的taskpipeline可不可以正確的運作,以及真的出問題的話可以順便了解是不是自己並不是真的懂這套工具了。

跟原生的手動部署方式一樣,我先分別跑TaskRunPipelineRun來確認功能是否都可以正常的運作,

結語

這篇主要著重的點是在trigger的流程上是怎麼運作的以及需要注意的地方是什麼,把東西順一順後才發現自己當初卡很久的地方反而是在工具的理解不夠。

參考資料

pipeline

tekton catalog

tekton trigger