[CICD]Tekton in k8s 的第一步

 

前言

這套工具我相信有在接觸Knative的人應該都不會太陌生,最近因為一些案子的關係,所以我得把這東西導入,一方面是為了區分CICD的獨立性,二方面也是想試試這套好不好用。

手忙腳亂的導入

原本我導入的版本是v0.22.0,然後順著教學往下做一切都很容易,但是在準備使用private gitprivate dockerhub的時候就出現問題了,首先dockerconfig還可以用別的方試實作,但是git這邊怎麼試就是沒辦法解決.gitconfig不存在的問題。

這邊要注意的是,tekton很多secret的東西都是透過serviceAccount來做為帳號管理,也就是你只要在secret設定好後,到 serviceAccount裡載入就可以在之後的taskrun以及pipelinerun裡來使用相關權限的登入。

最後我是直接退一版改用v0.21.0就解決上面這個問題了,足足卡了我一整個禮拜。

解決問題之後

解決了主要的敵人,次要敵人就會接二連三的出現;不過所幸都不是什麼太大的問題,相關的東西在社群討論裡都可以慢慢找到答案。

不過這邊主要是記載一些在導入的時候比較麻煩的點,所以並沒有什麼太多深入的地方,在一般tekton設定的taskpipeline這邊來說,pipeline可以直接寫task(廢話),也就是說我可以不需要先寫好task就直接寫pipeline是可以的,但是為了讓自己好做事我個人還是建議人家教學怎麼教,你就怎麼學,不然整體上維護的時間會花在很多不必要的細節裡。

方便性

tekton在越寫越順之後,會發現他真的是把k8s當作一個stack在存放那些可以一直被reusetask,也就是說今天你建了一些task是為了’nodejsphppython或是Golang以及java不管怎樣,你只要把相關的build寫成task放在k8s裡,日後要用只需要在pipeline裡呼叫對應的執行動作就可以了,而官方的github也提供了很多你想的到的和你沒想到的build檔相關的執行程序供你使用。

結語

這篇東西不多,主要是注意一下使用版本的問題,如果後續的版本也沒有上述的兩個config檔的話,應該也有相關的作法可以參考,下一篇來談談trigger;這個才是我花最久時間的地方。

參考資料

Tekton GitHub