728x90
728x90
# argocd repo-server 란?
https://argo-cd.readthedocs.io/en/stable/operator-manual/server-commands/argocd-repo-server/
- git 레포지토리를 복제하고 fetch하며 매니페스트 생성하는 서버
- 복제된 git 레포지토리는 /tmp 폴더에 저장됨 : emptyDir, 20G
- git fetch를 할 뿐이라, 사실 볼륨 보존을 할 필요가 없음 (데이터 날아가도 다시 fetch하면 그만)
# 왜 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
'공부 > Open Source' 카테고리의 다른 글
[superset/helm] Google OAuth 붙이기 (0) | 2023.11.05 |
---|---|
[ArgoCD] multiple sources 사용하기 (1) | 2023.11.03 |
[Grafana/helm] Google Oauth 붙이기 (0) | 2023.10.29 |
[Redash/helm] Google Oauth 붙이기 (0) | 2023.10.29 |
[Keycloak 21/Terraform] AWS SAML 로그인 연동하기 (0) | 2023.10.29 |
댓글