안녕하세요. 인포그랩에서 DevOps 엔지니어로 근무하는 John입니다. 여러분은 GitLab으로 CI/CD 파이프라인을 구성할 때, 재사용성을 높이기 위해 어떻게 하시나요? 저는 스크립트가 정의된 CI/CD 템플릿 파일을 생성하고 include하는 방식을 사용했습니다. 이 방식을 활용하면 프로젝트의 .gitlab-ci.yml
파일에 CI/CD 템플릿을 쉽게 포함할 수 있죠.
그러나 이 방식은 CI/CD 파이프라인 재사용성을 높이는 데 항상 도움이 되는 건 아니었습니다. 예를 들어, 다른 사용자가 생성한 CI/CD 템플릿을 사용할 때, 템플릿의 상세 내용을 모를 수 있는데요. 즉, CI/CD 템플릿을 사용하기 위해 ‘어떤 변수를 추가하고, 추가 스크립트를 어떻게 작성할지’ 파악하지 못할 때가 있죠. 그렇다 보니 CI/CD 파이프라인 재사용성이 떨어지기도 했습니다.
이제 GitLab CI/CD 컴포넌트(Components)와 CI/CD 카탈로그(Catalog) 기능으로 이 한계를 보완할 수 있는데요. CI/CD 컴포넌트는 GitLab CI/CD 템플릿의 차세대로, 재사용 가능한 단일 파이프라인 구성 단위입니다. CI/CD 카탈로그는 공개된 CI/CD 컴포넌트가 있는 프로젝트 목록인데요. GitLab에서는 CI/CD 컴포넌트를 CI/CD 카탈로그에 게시할 수 있고요. CI/CD 카탈로그에서 공개된 CI/CD 컴포넌트를 검색해 이용할 수 있습니다.
GitLab은 두 기능으로 CI/CD 컴포넌트 활용법, 사용할 수 있는 Inputs 변수 리스트, 예제 스크립트 등을 쉽게 파악하도록 지원합니다. 이러한 정보를 토대로 CI/CD 컴포넌트를 잘 사용해 CI/CD 파이프라인 구성을 유연하고 동적으로 만들 수 있고요. 나아가 CI/CD 파이프라인 재사용성도 높일 수 있습니다. CI/CD 컴포넌트와 CI/CD 카탈로그는 GitLab 17.0부터 GA(Generally Available) 버전으로 이용할 수 있는데요. 이 글에서는 두 기능의 사용 방법을 알아보겠습니다.
CI/CD 컴포넌트란?
CI/CD 컴포넌트는 재사용 가능한 단일 파이프라인 구성 단위입니다. CI/CD 컴포넌트로 더 큰 파이프라인의 작은 부분을 만들거나, 전체 파이프라인 구성(configuration)을 구성(compose)할 수 있는데요. GitLab 시니어 프로덕트 매니저인 Dov Hershkovitch는 GitLab 블로그의 ‘CI/CD Catalog goes GA: No more building pipelines from scratch’라는 글에서 “CI/CD 컴포넌트를 CI/CD 워크플로의 레고 조각으로 생각하라”며 “이를 사용하면, 매번 처음부터 시작할 필요 없이 파이프라인을 더 효율적으로 조립할 수 있다”라고 설 명합니다.
CI/CD 컴포넌트에는 다음 특징이 있습니다.
- CI/CD 컴포넌트를 CI/CD 카탈로그에 게시해 다른 사용자도 이용할 수 있습니다.
- CI/CD 컴포넌트는 버전을 지정해 릴리즈하고 사용할 수 있습니다.
- 동일한 프로젝트에 여러 CI/CD 컴포넌트를 정의할 수 있습니다.
- CI/CD 컴포넌트는 동적인 동작을 위해 입력 매개변수로 구성할 수 있습니다.
CI/CD 컴포넌트 생성·사용법
GitLab에서 CI/CD 컴포넌트 프로젝트와 CI/CD 컴포넌트를 생성하고, 컴포넌트를 사용하는 방법을 알아보겠습니다.
프로젝트, 컴포넌트 생성하기
CI/CD 컴포넌트 프로젝트는 하나 이상 CI/CD 컴포넌트를 호스팅하는 리포지터리가 있는 GitLab 프로젝트입니다. 이 프로젝트와 CI/CD 컴포넌트 생성 방법은 다음과 같습니다.
-
GitLab에서 New Project > Create blank project를 클릭해 GitLab 프로젝트 생성 페이지로 이동합니다.
-
프로젝트 이름, 기본 README 파일 옵션 등을 확인합니다. 그다음, 아래에 Create project 버튼을 눌러 CI/CD 컴포넌트 프로젝트를 생성합니다.