클러스터 파이프라인구현 - 05 (Pipeline Test)

gyeongseon·2023년 4월 30일
0

pipeline

목록 보기
5/6
post-thumbnail

개요

구성한 파이프라인이 정상적으로 돌아가는 아주 간단한 project로 테스트를 진행한다


Repository

  • demo-chart
  • .gitlab.ci-yaml
  • Dockerfile

Source

demo-chart

stages:          # List of stages for jobs, and their order of execution
  - build

get-latest-git-version:
  stage: .pre
  image: 
    name: alpine/git
    entrypoint: [""]
  script:
    - |
      git clone https://$GIT_USERNAME:$GIT_PWD@gitlab.example.kr/ShinGyeongseon/demo-pipeline.git
      cd demo-pipeline
      pwd

build-job:       # This job runs in the build stage, which runs first.
  stage: build
  image: 
    # 구글 공식 kaniko 이미지 repository 사용
    # debug 태그 이미지를 사용해야 파이프라인 출력 내용 확인 가능
    name: gcr.io/kaniko-project/executor:debug

    # entrypoint를 override 하지 않으면 아래 script 커맨드들이 실행되지 않음
    entrypoint: [""]
  script:
    # registry 접속 정보를 저장하기 위한 디렉토리 생성
    - mkdir -p /kaniko/.docker

    # Gitlab > Repository > Setting > CI/CD > Variables 사용
    # HARBOR_URL : harbor.example.com
    # HARBOR_USER : username
    # HARBOR_PASSWORD : userpassword
    - echo "{\"auths\":{\"$HARBOR_URL\":{\"username\":\"$HARBOR_USER\",\"password\":\"$HARBOR_PASSWORD\"}}}" > /kaniko/.docker/config.json

    # Gitlab에 미리 정의된 Variables 사용
    # CI_PROJECT_DIR : Dockerfile을 포함한 Source Repositry 경로
    # CI_COMMIT_SHORT_SHA : Commit SHA의 앞 8자를 tag로 사용
    - |
      cat /builds/ShinGyeongseon/demo-pipeline/Dockerfile

    - /kaniko/executor --context dir://$CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $HARBOR_URL/$CI_PROJECT_PATH:$CI_COMMIT_SHORT_SHA
    - /kaniko/executor --context dir://$CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile --destination $HARBOR_URL/$CI_PROJECT_PATH:latest

[Kaniko] Gitlab CI를 위해 Docker 대신 사용할 수 있는 이미지 빌드 툴

kaniko 참고한 내용입니다.

위에서 환경변수처럼 사용되는 변수들이 존재한다. gitlab에서는 변수 생성할 수 있으며 log에 남기기 민감한 정보들은 마스킹도 가능하다. pwd와 같은 민감정보들은 마스킹 하는 것을 권장한다.

변수 메뉴: 왼쪽 메뉴 → settings → CI/CD → **Variables 에서 설정할 수 있습니다.**

Dockerfile

FROM ubuntu
ENTRYPOINT ["/bin/bash", "-c", "echo Hello"]

chart

helm create 를 통해서 간단한 helm chart 를 생성했고 image registry 만 harbor에 생성된 이미지를 보도록 설정하였습니다.


Argo CD 설정

컨테이너 기반 워크플로우 솔루션 Argo

Argo 에 대해서 디테일하게 원리까지 이해하고 싶다면 위 글을 추천합니다.

만약 빠르게 배포를 확인해보고 싶다면

위 속성들을 보고 빠르게 설정하면 된다.

단 배포 패키지를 여러가지를 선택할 수 있다. 나의 경우는 HELM 을 선택했습니다. 해당 설정은 create app 할 때 맨 아래에서 변경할 수 있습니다.

그리고 path의 경우는 manifests이 있는 위치를 말해주면 됩니다.


결과

도커파일을 보게되면 Hello만 출력되도록 설정했습니다.

(원래는 pod 를 통해 서비스가 살아 있다면 초록색으로 표시되는게 맞습니다.)

profile
경선 :)

0개의 댓글