반응형

Pipeline 12

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (3편: Preview 환경 배포하기)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”앞선 글과 이어지는 내용 입니다.3편 글에서는 Helm 차트로 만들어준 Preview 환경을 PR이 발생하였을 때, 어떻게 만들어지는지 설명해보겠습니다.Github에서 PR이 발생하면 Argo ApplicationSet 리소스가 해당 PR을 감지하고 Helm 차트를 배포 하는 방식으로 진행 해보겠습니다.Argo ApplicationSet 이란 ?ArgoCD의 Application을 자동화해서 관리할 수 있도록 도와주는 컨트롤러 리소스 입니다.Prview 환경에서 App..

Pipeline 2025.09.16

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (2편: Helm 차트 구성)”

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”앞선 글과 이어지는 내용 입니다.2편 글에서는 Preview 환경을 Helm 차트로 어떻게 만들었는지 설명해보도록 하겠습니다.Helm 차트를 왜 선택했는가?PR 마다 네임스페이스가 달라지고, 각 어플리케이션 파드 별로 이미지가 달라지는 상황에서 k8s yaml을 일일히 변경하면 비효율적이고, 실수를 하게될 위험이 큽니다.Helm은 템플릿화가 가능해서, PR 번호나 이미지 태그 같은 값을 변수로 넘길 수 있어 변화가 잦은 Preview 환경에 적합하다 생각되어 선택하였습니다.이제 Helm 차트를 어떻게 생성하고 구성했는지 알아보겠습니다.Helm 차트 생성Helm 차트 생성 명령어helm cre..

Pipeline 2025.09.12

“Helm + ArgoCD + ApplicationSet으로 구축하는 PR Preview 환경 (1편: 아키텍처)”

PR Preview 환경을 구성하게 된 이유보통은 Prod / Dev / Test 이렇게 3개 환경을 두고 개발을 하죠.하지만 제가 있는 곳은 스타트업이다 보니 비용 압박 때문에 Prod / Test 딱 두 개만 있었습니다.문제는 여기서 시작됐습니다.Dev 환경이 없다 보니, 개발자분들이 기능을 테스트하려면 Test 환경을 뺏어 써야 했습니다.그러다 보니, QA 팀도 쓰고, 다른 팀도 쓰는데… 개발자가 자기 브랜치 테스트를 위해 올려버리면 Test 환경으로 사용하던 다른 팀원 분들의 동작이 멈추게 됩니다..“이거 왜 안 되지?” 하고 보면, 다른 사람이 방금 테스트 중이던 API가 바뀌어 있던 경험… 다들 해보셨을 겁니다.그러다 알아보던 중, 다른 회사들은 개발자가 PR 올리면 자동으로 Preview 환..

Pipeline 2025.09.11

ArgoCD 배포 완료 시, Google-Chat으로 알림 보내기 (Helm 차트의 values.yaml 파일 수정)

저는 ArgoCD를 Helm 차트에서 다운로드를 받았습니다.그래서 values.yaml 파일에서 설정을 변경하고 적용을 하도록 하였습니다.ArgoCD에서 애플리케이션 배포가 완료되면 webhook을 사용하여 Google-chat으로 알림 보내는 것을 해보겠습니다.우선 알림 동작 방식을 먼저 알아보겠습니다.1. GitHub Repository에 변경된 Yaml 파일 Push or Manual Sync ↓2. ArgoCD에서 Application과 연결된 Github Repository의 상태 변화 감지 후 Sync 동기화 ↓3. Notifications Controller가 변경되는 동작 감지 ↓4. Trigger 조건 평가 ↓5. Trigger 매칭 시 ..

Pipeline 2025.06.23

Blue - Green 배포 실습 해보기

이번에 해볼 것은 Blue - Green 배포를 직접 해보겠습니다. 사전 준비 사항Github Action 사용법k8s 클러스터 환경Helm 설치 목표Nginx 이미지를 사용해서 Blue - Green 배포 동작 방식을 확인 해보도록 하겠습니다. 이제 실습을 해보도록 하겠습니다.1. ArgoCD, ArgoCD-rollout 설치Helm 차트를 통해 설치를 진행 해보도록 하겠습니다.helm repo add argo https://argoproj.github.io/argo-helmhelm install argocd argo/argo-cd --version 7.7.10helm install argo-rollout argo/argo-rollouts2. Nginx 이미지 커스텀제가 원하는 index 내용을 보여주..

Pipeline 2024.12.20

Github Action 원하는 환경에서 Workflow 작업 해보기

이번에 해볼 것은 원하는 환경에서 Workflow 를 실행 해보도록 하겠습니다. ex) 노트북, 가상 머신 등Self-hosted runner 설정 1. Github 레포지터리 접속 2. Settings -> Actions -> Runners -> New-self-hosted runner 3. 실행 환경의 OS 선택(저는 노트북의 OS가 Window여서 Window로 선택을 하였습니다.)  Download 방법에 나온 명령어를 입력하여 다운로드 해주면 됩니다. 마지막으로 Configure 에 나온 방법 대로 명령어를 실행 해주면 self-hosted 환경 설정이 완료됩니다. 4. YAML 파일에서 실행환경을 self-hosted로 지정 ex)name: Example Workflow on: push:..

Pipeline 2024.12.19

Github Action 이란 ?

Github Action 이란 ?Github에서 제공하는 CI/CD(Continuous Integration/Continuous Deployment) 플랫폼 입니다.Github Action을 사용하여 빌드, 테스트 및 배포 파이프라인을 자동화 할 수있습니다. 바로 실습을 통해 좀 더 자세히 알아보겠습니다.먼저 Github Action의 Workflow를 실행하기 위해서 .github/workflow 라는 디렉터리가 필요합니다. 해당 디렉터리 안에 Workflow를 돌리기 위한 YAML 파일을 정의합니다. 따라서 repository를 생성하고 해당 repository에서 디렉터리를 생성 해줍니다. 폴더 tree는 아래와 같습니다..githubㄴ workflows ㄴ workflow를 정의할 YAML 파..

Pipeline 2024.12.19

주먹구구식 Gradle 빌드/배포 자동화 (Gitlab-runner, ArgoCD)

앞서 진행했던 Gradle 빌드 참고해주세요. 2024.07.25 - [Git] - Gitlab-runner 사용해서 Gradle 빌드 해보기 Gitlab-runner 사용해서 Gradle 빌드 해보기이번엔 Gitlab-runner 사용해서 Gradle 빌드 해보겠습니다.1. Gitlab Project에 build 할 때 필요한 파일 업로드저 같은 경우에는 Gitlab에서 Project를 하나 생성을 한 후에 빌드에 필요한 파일들을 모두 올려두ksh-cloud.tistory.com docker_build 단계Gradle 빌드를 완료하면,해당 jar 파일 가지고 이미지 빌드를 해준 후에 Harbor 레지스트리에 push 해줍니다.우선 Dockerfile의 내용을 변수로 생성해줍니다.(GitLab Proje..

Pipeline 2024.08.13

Gitlab-runner 사용해서 Gradle 빌드 해보기

이번엔 Gitlab-runner 사용해서 Gradle 빌드 해보겠습니다.1. Gitlab Project에 build 할 때 필요한 파일 업로드저 같은 경우에는 Gitlab에서 Project를 하나 생성을 한 후에 빌드에 필요한 파일들을 모두 올려두었습니다.  2. 원격 서버에 SSH 키 생성 및 Pipeline 변수 설정.gitlab-ci.yml 파일로 Run Pipeline 하기 전에 원격 서버(10.10.92.10)에서 해주어야 할 일이 있습니다. 1. SSH 키 생성$ ssh-keygen -t rsa -b 4096 위 명령어를 입력하면 두 개의 파일이 생성 됩니다.id_rsa (개인 키)id_rsa.pub (공개 키) 2. 서버의 인증된 키에 공개 키 추가앞서 생성된 공개 키를 원격 서버(10.10..

Pipeline 2024.07.25

Gitlab runner 사용해서 CI 해보기

이번에 해볼 것은 Gitlab runner 사용해서 docker 이미지 빌드하고 harbor 레지스트리에 추가 해보도록 하겠습니다.config.toml 파일 수정우선 Gitlab runner에서 docker 명령어를 사용하기 위해서 /etc/gitlab-runner/config.toml 파일을 수정해줍니다.[[ruuners]] executor = "shell" => "docker" [runners.docker] tls_verify = false image = "docker:24.0.5" privilieged = true config.toml 파일을 수정해준 다음 Gitlab-runner를 재시작 해줍니다.(저 같은 경우에는 docker 컨테이너로 gitlab-runner 서비스를 실행해주었기 때..

Pipeline 2024.06.14
반응형