argoproj / argo-cd

Declarative Continuous Deployment for Kubernetes
https://argo-cd.readthedocs.io
Apache License 2.0
17.95k stars 5.47k forks source link

Create Core HA install with several repo-server replicas #8057

Open joebowbeer opened 2 years ago

joebowbeer commented 2 years ago

Summary

Create Core HA manifest with several repo-server replicas.

Motivation

Paraphrasing @alexmt

Without the API server and the UI the only HA components are the repo-server and redis. Redis is on the critical path only if the UI is present. The controller gracefully handles Redis restarts. However, HA repo-server is valuable for Core as well, even if UI is missing.

Proposal

@alexmt

jannfis commented 2 years ago

The difference between HA and non-HA manifests for the repo-server is nil. The main difference is with Redis, which is a multi-instance primary/secondary setup in HA.

If you want multiple replicas of the repo server, you can always go for increasing just the replicas count in the argocd-repo-server Deployment resource.

IMHO, multipe repo-server replicas don't justify a unique set of installation manifests. My suggestion would be to create a simple Kustomize overlay with the argocd-repo-server Deployment's replicas field adjusted, and pull in https://github.com/argoproj/argo-cd/manifests/core-install as a remote base.

joebowbeer commented 2 years ago

@jannfis I can't speak for @alexmt, I'm just paraphrasing the discussion we had in IM a few months ago. At the time, he said he would create an issue. I'm just following up. I hope someone, anyone, knowledgeable can resolve.

alexmt commented 2 years ago

Found discussion in slack. Thank you for creating the issue @joebowbeer . I forgot to do it.

The core installation manifests are based on non HA manifests version. I did it mostly because core does not have api-server component but did not really think about redis and repo-server. So I've suggested to use HA redis and repo server by default.