이전 포스팅에서는 ArgoCD와 Argo Rollout 컨트롤러를 통한 CD 환경을 구축했다. 이번 포스팅에서는 GitOps 상에서 CI 툴인 Jenkins가 Rollout Manifest 파일을 변경시킴으로써 CD 과정이 자동으로 트리거 되는 시나리오를 구축한다. 최종 GitOps 아키텍처 1) 사용자가 Git에 소스코드를 커밋/푸시 2) Jenkins가 커밋 감지 및 Jenkins Pipeline 실행 2-1) gradle 등의 빌드 툴로 빌드 2-2) 컨테이너 이미지 빌드 2-3) 컨테이너 레지스트리 푸시 (신규 태그 생성) 2-4) Git의 Manifest 레포지토리에 Rollout Manifest 수정(보통 컨테이너 이미지 tag 수정) 3) ArgoCD가 Git의 Rollout Manifest..
이번 포스팅에서는 Jenkins를 기반으로 CI(Continuous Integration)를 구축했던 과정을 다룬다. Jenkins에서 제공하는 플러그인들과 기능들을 활용하여 빌드 파이프라인 구성뿐만 아니라, 빌드 자동화, 테스트 자동화, 코드 품질 자동화 등의 작업을 파이프라인 상에 같이 연동시켜 사용하는 경우가 많다. 이번 포스팅에서는 Jenkins를 설치하고 간단한 빌드 파이프라인을 구축하는 과정만 다룰 것이고 아래와 같은 순서로 구성된다. 1) Jenkins 설치 및 기본 설정 (컨테이너 기반 Jenkins 설치, 플러그인 설치, SSH 셋업) 2) CI/CD Pipeline Job 구성 (GitHub 연동, Jenkinsfile 작성) 3) 이슈 처리 cf. Jenkins는 Java 프로그램이기..
CI (Continuous Integration) 배포 이전까지의 단계인 공유 레포지토리(git, svn)에 빌드나 테스트, 병합 등으로 최종 릴리즈까지 통합하는 것을 자동화한다는 것을 의미한다. 코드의 변경사항이 많아지면 충돌의 가능성이 커지고 이에따라 변경사항을 주기적으로 빈번하게 머지할 중요성이 커졌다. 이에따라 최종 배포 전까지의 단계를 스크립트 파일을 통해 자동화하여 보다 빈번하게 머지할 수 있도록 하기 위해 등장한 것이 CI이다. 무엇보다 CI는 공유 레포지토리에 빈번하게 머지된 소스코드를 자동으로 빌드하고 테스트하며 이에 대한 이력을 쉽게 보여줘야 한다. 이로써 주기적으로 머지되는 소스코드의 충돌을 최소화하고 빌드와 테스트를 자동화하여 코드 결합을 빠르고 쉽게 이루어낼 수 있다. CD(Con..
- Total
- Today
- Yesterday
- K8s
- golang
- GitOps
- db
- jvm
- RDB
- rolling update
- github actions
- Kubernetes
- helm
- ci/cd
- LFCS
- Controller
- docker
- container
- 카프카
- 우분투
- 코틀린
- 쿠버네티스
- Non-Blocking
- ubuntu
- Linux
- kafka
- argocd
- CICD
- Java
- spring
- Stream
- go
- 컨트롤러
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |