Tekton4

ZONGRU Li
8 min readJun 16, 2022

--

參考github上的Hands-On Tekton練習2

更新一下機台(main.tf):

參數(terraform.tfvars)不變:

#重新整理安裝指令如下(主要修改tkn安裝):
curl -LO https://storage.googleapis.com/minikube/releases/latest/minikube_latest_amd64.deb
sudo dpkg -i minikube_latest_amd64.debcurl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"sudo install -o root -g root -m 0755 kubectl /usr/local/bin/kubectlkubectl version --client -o json#安裝docker:
sudo apt-get update
sudo apt-get install \
ca-certificates \
curl \
gnupg \
lsb-release
#添加Docker’s official GPG key:
sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg#增設Repo位置:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
#以下實際安裝Docker:
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-pluginapt-cache madison docker-ce#測試:
sudo docker run hello-world
#設置帳號group:
sudo usermod -aG docker $USER && newgrp docker
minikube config set driver dockerminikube start --driver=dockerkubectl cluster-info#安裝Tekton pipeline:
kubectl apply --filename \
https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
#然後立刻跑以下指令觀察上述動作:
kubectl get pods --namespace tekton-pipelines --watch
#安裝Tekton pipeline(更新github版):
sudo apt update;sudo apt install -y gnupg
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3EFE0E0A2F2F60AAecho "deb http://ppa.launchpad.net/tektoncd/cli/ubuntu impish main"|sudo tee /etc/apt/sources.list.d/tektoncd-ubuntu-cli.listsudo apt update && sudo apt install -y tektoncd-cli#Ubuntu安裝git:
sudo apt-get install git
#clone教學內容(LINK):
git clone https://github.com/joellord/handson-tekton
cd handson-tekton

繼續從參數的部分練習開始試試:

#執行上述指令:
kubectl apply -f ./demo/02-param.yaml
tkn task start --showlog hellotkn task start --showlog -p person=Joel hello

看起來終於正常了...

2.接著看到下一階段練習 — Multiple steps to Task

#執行以上指令:
kubectl apply -f ./demo/03-multistep.yaml
tkn task start --showlog hello

3.練習 — pipeline:

建立以下Task元件內容:

建立以下pipeline元件內容:

#執行上述指令:
kubectl apply -f ./demo/04-tasks.yaml
kubectl apply -f ./demo/05-pipeline.yamltkn pipeline start say-things --showlog

4.練習 — Run in parallel or sequentially:

建立以下pipeline元件:

#執行以上指令:
kubectl apply -f ./demo/06-pipeline-order.yaml
tkn pipeline start say-things-in-order --showlog

5.練習 — Resources:

建立以下Task元件:

建立以下pipeline元件:

建立以下PipelineResource元件,名稱就叫git-repo:

#執行上述指令:
kubectl apply -f ./demo/07-pipelineresource.yaml
tkn pipeline start count --showlogtkn pipeline start count --showlog --resource git-repo=git-repo

或是直接給指定resource:

後面有提醒關於PipelineResource元件還在alpha(當下官網是已經deprecated.)

官網:

6.練習 — 真實場景的pipeline:

建立Task元件:

建立另一個Task元件:

建立pipeline元件:

#執行以上指令:
kubectl apply -f ./demo/08-realworld.yaml
tkn pipeline start app-deploy --showlogdocker run -d -p 3000:3000 --rm --name handson <user>/<image-name>curl localhost:3000/add/2/5

這邊看起來要給參數推到自己的dockerhub,就暫時不試了

參考範例(reference)

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet