본문 바로가기
공부/Open Source

[ArgoCD] repo-server PVC 붙이기 (w. Terraform)

by haejang 2023. 11. 3.
728x90
728x90

 

 

# argocd repo-server 란?

https://argo-cd.readthedocs.io/en/stable/operator-manual/server-commands/argocd-repo-server/

 

Argocd repo server - Argo CD - Declarative GitOps CD for Kubernetes

Argocd repo server argocd-repo-server Run ArgoCD Repository Server Synopsis ArgoCD Repository Server is an internal service which maintains a local cache of the Git repository holding the application manifests, and is responsible for generating and returni

argo-cd.readthedocs.io

 

# 왜 pvc를 붙이려는가?

아마 이건 내 클러스터 설정 문제인 것 같긴 한데, 노드의 볼륨이 꽉 차는 바람에 해당 노드에 붙어있던 repo server들이 전부 죽었었음

보존 가능한 별도 볼륨이 꼭 필요한건 아니지만, 10-20G 이상 쓰는데 호스트 볼륨을 쓰게 놔둘 순 없었다.

(사실 왜 repo server가 10-20G까지나 쓰는지도 미지수.. 오픈소스 앱들을 많이 설치해서 그런가..)

 

아무튼간에 argocd helm chart에서는 reposerver용 pvc를 만드는 템플릿이 없다.

나는 argocd를 Terraform으로 운영하고 있었기에, Terraform을 사용해서 pvc를 레포서버에 붙여주었다.

 

# 코드

## PVC in Terraform

resource "kubernetes_persistent_volume_claim_v1" "argocd_reposerver" {
  metadata {
    name      = "argocd-repo-server-pvc"
    namespace = local.ns # argocd를 배포하는 ns
  }
  spec {
    access_modes       = ["ReadWriteOnce"]
    storage_class_name = "gp3"
    resources {
      requests = {
        storage = "50Gi"
      }
    }
  }
}

 

## ArgoCD helm value 추가

# argocd values file에 추가
repoServer:
  volumeMounts:
    - name: argocd-repo-server-pvc
      mountPath: /tmp
  volumes:
    - name: argocd-repo-server-pvc
      persistentVolumeClaim:
        claimName: argocd-repo-server-pvc

 

 

추가로, TMPDIR 이란 변수 세팅 시 /tmp 가 아닌 원하는 경로를 사용할 수 있다.

 

 

 

 

728x90
728x90

댓글