CI/CD Manager 는 소스 저장소(Gitea)를 관리하고 빌드 및 배포를 위한 Pipeline(Jenkins)을 구성합니다.
네임스페이스에 Docker Secret 추가
Secret 은 비밀번호, OAuth 토큰 및 ssh 키와 같은 중요한 정보를 유지하기 위한 것입니다. 이 정보를 Secret 에 두는 것은 Pod 정의 또는 Docker Image에 그대로 넣는 것보다 안전하고 유연합니다.
다음 절차에 따라서 위에서 생성한 Harbor 계정으로 Docker Secret을 추가하세요.
- Secret 탭을 클릭합니다.
- Secert 목록의 오른쪽 위에 있는 (Secret 추가) 버튼을 클릭합니다.
- Secret 추가 팝업이 뜨면 타입에 맞는 정보를 입력하고 등록 버튼을 클릭합니다.
- Secret Name : my-docker-secret
- Secret Type : Docker Registry
- docker-server(필수) : Image Registry (Harbor) 주소.
- docker-username(필수) : Image Registry 로그인 사용자 아이디
- docker-password(필수) : Image Registry 로그인 사용자 비밀번호
- docker-email : Docker 로그인 사용자 이메일
소스 저장소 생성 및 권한 설정
계정 생성하기
사용자 계정은 ZCP에 등록되어 있는 사용자 계정과 자동으로 연계 되지 않습니다. 신규 가입의 경우 Gitea에 접속하면 아래와 같은 신규 가입 화면이 나타나고, 필요한 정보를 입력해 신규로 가입합니다.
(반드시 가입하기 하위에 사용자명과 이메일은 변경하지 않고, 비밀번호만 입력해 계정을 생성합니다.)
이후 ZCP Console을 통해서 소스 저장소에 접속하면 자동으로 로그인 됩니다.
저장소(Repository) 생성하기
저장소(Repository)는 git 원격 저장소(Remote Repository)입니다.
Gitea 초기 화면에서 우측 상단의 + 버튼을 누른 후 새 저장소를 클릭합니다.
저장소의 이름과 설명등을 입력하고 저장소 만들기 버튼을 클릭합니다.
저장소가 생성된 화면입니다.
소스 코드 Push 하기
생성한 저장소에 소스 코드를 Push 합니다.
본 문서에서 사용한 샘플 소스 코드는 Hello ZCP (https://github.com/cnpst/hellozcp)에 있습니다.
# 샘플 소스 코드 가져오기 > git clone https://github.com/cnpst/hellozcp.git Cloning into 'hellozcp'... remote: Enumerating objects: 25, done. remote: Counting objects: 100% (25/25), done. remote: Compressing objects: 100% (18/18), done. remote: Total 25 (delta 0), reused 25 (delta 0), pack-reused 0 Unpacking objects: 100% (25/25), done. # 오리지널 저장소 연결 끊기 > cd hellozcp > git remote remove origin # ZCP git 저장소 연결 추가 > git remote add origin https://git.cloudzcp.io/earth1223/new-repository.git # 소스 코드 Push > git push -u origin master Enumerating objects: 25, done. Counting objects: 100% (25/25), done. Delta compression using up to 8 threads Compressing objects: 100% (18/18), done. Writing objects: 100% (25/25), 46.95 KiB | 9.39 MiB/s, done. Total 25 (delta 0), reused 0 (delta 0) To https://git.cloudzcp.io/earth1223/new-repository.git * [new branch] master -> master Branch 'master' set up to track remote branch 'master' from 'origin'.
저장소에 소스 코드 Push 가 성공한 모습입니다.
빌드 및 배포 Pipeline 구성
ZCP 콘솔에서 DevOps 하위의 빌드 및 배포 메뉴를 클릭합니다.
자신의 Namespace 와 동일한 Folder 를 선택합니다.
Credentials 생성하기
Jenkins 가 Gitea 의 소스를 Checkout 받고, Docker registry 에 push 를 하려면 각 시스템에 로그인하기 위한 인증 정보가 필요합니다.
자신의 Folder 에 들어가서 좌측의 Credentials 메뉴를 클릭합니다.
Credentials 하위의 Folder 를 선택하고 Global credentials 를 클릭합니다.
좌측의 Add Credentials 메뉴를 선택하고, 위에서 생성한 Gitea 의 ID, Password 를 입력하여 Credential 정보를 생성합니다.
Credentials 의 ID 는 아래의 규칙으로 생성합니다.
Service | Credentials ID |
---|---|
Gitea (GIT) | GIT_CREDENTIALS |
Harbor (Docker Registry) | HARBOR_CREDENTIALS |
Gitea, Harbor 두 Credentials 를 모두 생성한 화면입니다.