Tekton 사용법(1) — pipelineresource

Jerry(이정훈)
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 사용 예제를 공유하겠다.

--

--

Jerry(이정훈)
Jerry(이정훈)

Written by Jerry(이정훈)

DevOps/Automation Engineer 60살까지 콘솔 잡는 엔지니어를 목표로 느리게 생각하고 있습니다.

No responses yet