ArgoCD 22

EKS ArgoCD Capabilities

2025년 12월 AWS re:invent가 다가오면서 EKS의 기능도 한개씩 공개되고 있습니다. 제일 처음 눈길이 가는 기능은 EKS Capabilities였습니다. EKS Capabilities는 무슨 목적으로 만들었을까?한국말로 번역하면 EKS 기능인데 이름만 들었을때는 무슨 목적으로 만들었는지 처음에 감이 안왔습니다. 그러다가 AWS 블로그의 설명을 보고 어떤 목적으로 EKS Capabilities를 만들었는지 이해가 되었습니다. EKS를 운영하기 위한 인프라 솔루션을 AWS가 직접관리하는 목적으로 이해했습니다. 예를 들면 ArgoCD가 대표적인 운영을 위한 인프라 솔루션입니다. ArgoCD는 gitops방식으로 git에 있는 코드를 kubernetes에 배포하는 도구입니다. ArgoCD는 사용..

Argo CD v3.2 업데이트 내용: Application path에서 "." 또는 ""(공백)을 더 이상 사용할 수 없습니다.

ArgoCD v3.2 패치내용이 공개되었습니다. 가장 주목할 변경사항은 Application path에서 "." 또는 ""(공백)을 더 이상 사용할 수 없다는 점입니다.릴리즈 노트: https://argo-cd.readthedocs.io/en/latest/operator-manual/upgrading/3.1-3.2/?utm_source=chatgpt.com 예시로, v3.1까지는 아래와 같은 ArgoCD 설정이 유효했으나 v3.2부터는 오류가 발생합니다.apiVersion: argoproj.io/v1alpha1kind: Applicationmetadata: name: guestbookspec: source: repoURL: 'https://github.com/example/guestbook.gi..

EKS IPv6에서 ArgoCD 설치 방법

1. EKS IPv6에서 ArgoCD를 설치한다는 의미는? EKS IPv6는 pod와 service가 모두 IPv6 IP를 사용합니다. 따라서 ArgoCD도 IPv6 IP를 지원해야 ArgoCD pod 실행 오류가 없습니다. 2. ArgoCD와 EKS IPv6 설치 호환 24년 3월 기준 ArgoCD는 듀얼스택 VPC에서 생성이 가능합니다. 공식문서에서 IPv6 쿠버네티스에서는 실행이 불가능하다고 말하고 있습니다. 다행히 EKS IPv6는 듀얼스택(host-local설정으로 듀얼스택모드 실행)모드?이므로 ArgoCD는 EKS IPv6에서 정상적으로 실행됩니다. 3. 하지만 ArgoCD 설치 오류 발생 하지만, ArgoCD가 사용하는 redis ha-proxy pod는 IPv6에서 실행되지 않습니다. 그..

Argocd가 겪는 문제: 닭이 먼저냐, 닭걀이 먼저냐

음... 스크린샷 화질을 높이는 방법을 생각 중입니다. 1. 닭이 먼저냐, 달걀이 먼저냐 문제란? gitops 닭이 먼저냐 달걀이 먼저냐(chicken and eggs)용어는 gitops방법론을 사용할 때 겪는 어려움을 말합니다. 이 어려움은 gitops에서 관리 주체를 어떻게 관리할 것인가에 대한 어려움입니다. Argocd에서는 "Argocd appliation을 어떻게 관리할 것인가"에 대한 고민이 있습니다. Argocd는 git에 있는 내용을 쿠버네티스에 반영하기 위해 Argocd application이 필요합니다. 문제는 git 저장소에 코드를 푸시해도 Argocd application이 자동으로 생성되지 않습니다. 따라서 사용자가 수동으로 Argocd application을 만들어야 하며, 필요..

Argocd rbac 테스트

팀 동료님이 사내 채팅에 argocd 권한 테스트에 대한 내용을 공유해주셨습니다. 공유한 글을 보다가 궁금한 점이 있어 몇 가지 테스트를 진행했습니다. 1. 테스트 목록 readonly권한에서 argocd application sync가 되는지? 거부(deny)권한 우선순위 2. 테스트 환경구축 테스트를 진행하기 위해 쿠버네티스와 argocd, argocd application이 필요합니다. 저는 쿠버네티스를 kind cluster로 사용했고 argocd는 kustomize로 했고 argocd버전은 v2.6.2입니다. argocd application은 argocd 공식 예제를 사용했습니다. 테스트 환경 구축과정은 이 글 마지막 부록 챕터를 참고해주세요. 테스트 환경에는 테스트에 필요한 계정과 권한을 생..

ArgoCD 13편 - kustomize 사용 방법

개요 이 문서는 Argo CD에서 Kustomize를 사용하는 방법을 설명합니다. 사용 방법 Argo CD는 kustomize 설정 파일이 있으면 kustomize build를 실행합니다. 그리고 이 결과를 쿠버네티스에에 배포합니다. 정리하면 Argo CD가 kustomize를 실행하는 방법은 아래 명령어와 비슷합니다. kustomize build | kubectl apply -f 아래 그림은 Argo CD 공식 예제 (https://github.com/argoproj/argocd-example-apps/blob/master/kustomize-guestbook/kustomization.yaml)를 사용했습니다. kustomization.yaml파일이 있어 Argo CD는 kustomize build명령어..

연재 시리즈 2023.03.10

ArgoCD 12편 - helm 차트 release방법

영상: https://youtu.be/o8DC9TcJjiw 개요 Argo cd에서 helm차트를 release방법을 설명합니다. 이 글은 Argo cd WEB UI를 이용합니다. release방법 Argo cd에서 helm차트 release 방법은 2가지 입니다. helm release설정은 Argo cd application생성 과정 중 source에서 설정합니다. helm 차트 저장소 주소를 지정 git주소 지정 helm 차트 저장소 주소 지정 첫 번째 방법은 helm차트 저장소 주소를 지정하는 방법입니다. helm차트 저장소를 선택하려면 ① source타입을 “HELM”을 선택하면 됩니다. 그리고 helm차트 주소를 지정하면 helm차트 목록과 helm차트 버전이 자동으로 출력됩니다. 아래 예제는 ..

연재 시리즈 2023.03.10

Argocd kustomize --enable-helm 옵션 활성화

문제 Argocd에서 kustomize로 helm을 사용할 경우 에러가 발생합니다. default설정으로 kustomize --enable-helm이 설정되어 있지 않기 때문입니다. 해결 참고자료: https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#kustomizing-helm-charts kubernetes configmap에서 argocd-cm에서 kustomize옵션에 --enable-helm을 추가합니다. helm으로 Arogcd를 설치한 경우, values.yaml을 오버라이딩하면 됩니다. configs: cm: kustomize.buildOptions: --enable-helm

ArgoCD 11편 - 클러스터 추가

개요 argo CD는 여러 클러스터를 대상으로 git의 리소스를 sync할 수 있습니다. default 클러스터는argocd가 설치된 클러스터입니다. 클러스터 추가 방법 2가지 방법(token, 인증서)으로 클러스터를 추가할 수 있습니다. Token 설정 apiVersion: v1 kind: Secret metadata: name: mycluster-secret namespace: argocd labels: argocd.argoproj.io/secret-type: cluster type: Opaque stringData: name: mycluster.com server: https://mycluster.com config: | { "bearerToken": "" } 인증서 설정 apiVersion: v1..

연재 시리즈 2023.01.24

ArgoCD 10편 - App of Apps 패턴

App of Apps패턴이란? ArgoCD application을 모아서 관리하는 패턴을 app of apps패턴이라고 합니다. app of app패턴으로 구성된 application을 sync하면 여러 argoCD application을 생성합니다. 생성된 application은 바라보는 git에 저장된 쿠버네티스 리소스를 배포합니다. 언제 사용할까? 여러 application을 관리할 때 사용합니다. 대표적인 예가 공식문서에서 소개하는 cluster bootstrapping입니다. 새롭게 구축한 쿠버네티스 클러스터에 필요한 쿠버네티스 리소스를 빠르게 배포하는 것을 cluster bootstrapping이라고 부릅니다. 필요한 쿠버네티스 리소스를 application으로 정의하고 여러 applicati..

연재 시리즈 2022.12.06