새로운 리스트에 새로운 아이템 만들기

gitHub project : https://github.com/tgseo76/install
Definition : Pipeline script from SCM
Definition > SCM : Git
Definition > SCM > Repositories > Repository URL : https://github.com/tgseo76/install.git
Definition > SCM > Branches to build > Branch Specifier : */main
Definition > SCM > Branches to build > Additional Behaviours > Sparse Checkout paths > Path : ground/cicd-server/argo
Definition > Script Path : ground/cicd-server/argo/Jenkinsfile
지금 빌드를 눌러 빌드를 하면 파라미터와 함께 빌드가 나오게 된다.

아르고cd를 설치할 네임스페이스를 생성

헬름업그레이드를 눌러주고 밑에 옵션대신 argo-cd를 눌러 설치해준다.

https://192.168.56.30:30002/login 주소에 접속을 해보면 아르고 창이 나오는데 뒤에 포트는 https://github.com/tgseo76/install/blob/main/ground/cicd-server/argo/helm/argo-cd/values-dev.yaml 에 있는 포트 지정

username : admin
pw : kubectl get -n argo secret argocd-initial-admin-secret -o jsonpath='{.data.password}' | base64 -d 명령어를 치면 나오는 문자열을 넣어준다.

로그인이 되면 아르고에 메인 페이지가 나오게 된다.

왼쪽 메뉴 user info → 위쪽 자물쇠 update passwrod

비밀번호 변경 후 세이브를 눌러 저장한다.

메인화면에서 applications → new app
Application Name : test
Project Name : default
SYNC POLICY : Manual

sync options 설명
SKIP SCHEMA VALIDATION : 매니패스트에 대한 yaml 스키마 유효성 검사를 건너뛰고 배포 (kubectl apply --validate=false)
PRUNE LAST : 동기화 작업이 끝난 이후에 Prune(git에 없는 리소스를 제거하는 작업)를 동작시킴
RESPECT IGNORE DIFFERENCES : 동기화 상태에서 특정 상태의 필드를 무시하도록 함
AUTO-CREATE NAMESPACE : 클러스터에 네임스페이스가 없을 시 argocd에 입력한 이름으로 자동 생성
APPLY OUT OF SYNC ONLY : 현재 동기화 상태가 아닌 리소스만 배포
SERVER-SIDE APPLY : 쿠버네티스 서버에서 제공하는 Server-side Apply API 기능 활성화 (레퍼런스 참조)
- PRUNE PROPAGATION POLICY (레퍼런스 참조)
foreground : 부모(소유자, ex. deployment) 자원을 먼저 삭제함
background : 자식(종속자, ex. pod) 자원을 먼저 삭제함
orphan : 고아(소유자는 삭제됐지만, 종속자가 삭제되지 않은 경우) 자원을 삭제함
밑에 souce 부분
Repository URL : https://github.com/tgseo76/kubernetes.git
Revision : main
Path : 2231/deploy/k8s

밑에 destination 부분
Cluster URL : https://kubernetes.default.svc 설치되어있는 부분 드롭다운에서 선택
Namespace : argo-test 이 이름대로 네임스페이스가 만들어진다.
[선택] Directory

다 작성한 후 위쪽 create 클릭
test 어플리케이션이 만들어진다.

들어가 보면 git에서 만들어 놓은 yaml파일을가지고 배포할 리소스들을 만들어 놨다.

sync → synchronize를 누르면 배포가 된다.

PRUNE : GIt에서 자원 삭제 후 배포시 K8S에서는 삭제되지 않으나, 해당 옵션을 선택하면 삭제시킴
FORCE : --force 옵션으로 리소스 삭제
APPLY ONLY : ArgoCD의 Pre/Post Hook은 사용 안함 (리소스만 배포)
DRY RUN : 테스트 배포 (배포에 에러가 있는지 한번 확인해 볼때 사용)
실행되고 있으면 돌아가는 아이콘 배포가 되면 하트로 바뀐다.

쿠버네티스 대시보드에서도 확인 가능

아르고에서 설정파일을 변경하고 쿠버네티스 대시보드에서 확인해보면 변경되는걸 확인할 수 있다.
메인화면에서 applications → new app
Application Name : test-helm
Project Name : default
SYNC POLICY : Manual

souce
Repository URL : https://github.com/tgseo76/kubernetes.git
Revision : main
Path : 2232/deploy/helm/api-tester
destination
Cluster URL : https://kubernetes.default.svc
Namespace : test
체크박스에 helm을 눌러주고
values files에서 values-dev.yaml 를 적어준뒤 엔터를 눌러 화면과 같이 지정되어야 한다.
소스에 경로를 넣어주면 그 경로를 읽어 밑에 helm으로 바꾸어준다.

create를 눌러 만들면 만들어 진게 확인 된다. sync를 눌러 배포
