Tekton 사용법(1) — pipelineresource
3 min readFeb 5, 2021
CI/CD 용도로 Jenkins 대신 Tekton을 검증하고 있다. Tekton은 모든 resource를 YAML 파일 형태로 관리되므로 좀 더 생산성이 낫다고 생각한다. (자세한 이유는 나보다 잘 설명해주는 다른 분들이 많으므로 생략 ^^)
먼저, 설치는 아주 간단하다. (kube 환경이 그렇듯이) 공홈 기준으로 따라만 하면 된다.
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/previous/v0.20.1/release.yaml
추가로 tkn cli도 같이 설치해 준다.
# Get the tar.xz
curl -LO https://github.com/tektoncd/cli/releases/download/v0.15.0/tkn_0.15.0_Linux_x86_64.tar.gz
# Extract tkn to your PATH (e.g. /usr/local/bin)
sudo tar xvzf tkn_0.15.0_Linux_x86_64.tar.gz -C /usr/local/bin/ tkn
Tekton 을 이용하기 위해서는 먼저 Git Source, Container Repository, 인증 정보 등의 환경 관련 Object를 먼저 YAML 파일로 정의해야 한다.
먼저, git 정보
- 설치형 gitlab 서버를 사용 중인데, 도메인 네임으로 설정하면 실행하는 task POD에서 해당 사설 도메인 lookup이 안되어 에러가 발생한다. 2~3일 넘게 고생했는데, 이렇게 IP 사용하는 걸로 gitlab 설정 변경하여 해결 하였다.
- sslVerify, 역시 사설 인증서를 사용하므로 이 옵션을 false 설정해야 정상적으로 사용 가능하다. (역시 찾는데 한참 걸렸다.)
다음은 Container Repository
- 동일한 이유로 ip로 주소 지정하였다.
Container Repository 인증 정보
- Repo 인증 user/password를 편리하게도 평문으로 저장 가능하다.
Service Account 정보
- 다른 namespace pod 정보까지 가져올 수 있도록 ClusterRoleBinding 사용
이렇게 정리하고 나면 참으로 단순한데, 이걸 찾기까지 고생이 많았다. 언제나 그렇듯이 이번에도 로그 파일 한 줄 한 줄 보면서 찬찬히 생각하여 겨우 겨우 해결 할 수 있었다.
다음 포스트에서 실제 Tekton CI/CD 사용 예제를 공유하겠다.