[DO-1431] deploy ArgoCD (!6)

DO-1431

Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech>
Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/6
This commit is contained in:
Denis Patrakeev
2025-02-10 15:05:06 +03:00
parent 328e9d39ed
commit 5654a65bff
12 changed files with 828 additions and 0 deletions

View File

@@ -0,0 +1,120 @@
# Install Argo CD by [argo-cd in argo-helm](https://github.com/argoproj/argo-helm/tree/main/charts/argo-cd)
## Create from version
| Project | Version |
|---------------------|---------|
| ArgoCD Helm | 7.8.2 |
| ArgoCD | v2.14.2 |
| ArgoCD Vault Plugin | 1.18.1 |
## Plugins
1. Argo CD Vault Plugin
https://argocd-vault-plugin.readthedocs.io/en/stable/installation/#initcontainer-and-configuration-via-sidecar
https://github.com/argoproj-labs/argocd-vault-plugin/tree/main/manifests/cmp-sidecar
https://habr.com/ru/articles/645773/
## Install
Настраиваем для работы файл конфигурации kubectl для подключения к кластеру Kubernetes
Готовим служебную УЗ для vault:
```bash
kubectl apply -f .rbac/vault-service-account.yaml
```
Получаем из Vault секреты с паролями/токенами/сертификатами и выгружаем в окружение оболочки:
```bash
./argocd_values_secrets_init.sh
source .creds
```
Создаём секрет с сертификатами:
```bash
kubectl -n argocd create secret tls argocd-server-tls \
--cert=.secrets/argocd_cert.pem \
--key=.secrets/argocd_key.pem
```
Добавляем конфигурацию для плагина ArgoCD Vault:
```bash
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-configmap.yaml
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-secret.yaml
```
И производим непосредственную установку ArgoCD:
```bash
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm install -n argocd argo-cd argo/argo-cd -f values-override.yaml \
--set configs.secret.argocdServerAdminPassword=$ARGOCD_ADMIN_PASSWORD_HASH \
--set configs.repositories.argocd-git-server.username=$ARGOCD_GIT_REPO_USER \
--set configs.repositories.argocd-git-server.password=$ARGOCD_GIT_REPO_USER_PASSWORD
```
Подпихиваем в секрет `argocd-secret` необходимые для конфигурации секреты:
```bash
kubectl -n argocd patch --patch-file .secrets/argocd-secret-path.yaml secret argocd-secret
```
## Upgrade/Changes
Обновление настроек и чарта делаем так:
В начале сравниваем содержимое `values-override.yaml` с исходным файлом `values.yaml`
(ссылка на исходную версию зафиксирована в заголовке `values-override.yaml`) через diff (IDE лучше).
Или с новой версией `values.yaml` в Helm-чарте.
Вносим необходимые правки, новые опции или добавляем секреты.
Получаем из Vault секреты с паролями/токенами/сертификатами и выгружаем в окружение оболочки:
```bash
./argocd_values_secrets_init.sh
source .creds
```
Создаём секрет с сертификатами:
```bash
kubectl -n argocd create secret tls argocd-server-tls \
--cert=.secrets/argocd_cert.pem \
--key=.secrets/argocd_key.pem
```
Добавляем конфигурацию для плагина ArgoCD Vault:
```bash
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-configmap.yaml
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-secret.yaml
```
Подпихиваем в секрет argocd-secret необходимые для конфигурации секреты:
```bash
kubectl -n argocd patch --patch-file .secrets/argocd-secret-path.yaml secret argocd-secret
```
Затем применяем:
```bash
helm upgrade -n argocd argo-cd argo/argo-cd -f values-override.yaml \
--set configs.secret.argocdServerAdminPassword=$ARGOCD_ADMIN_PASSWORD_HASH \
--set configs.repositories.argocd-git-server.username=$ARGOCD_GIT_REPO_USER \
--set configs.repositories.argocd-git-server.password=$ARGOCD_GIT_REPO_USER_PASSWORD
```
## Установка и использование CLI Argo CD на локальной машине
https://argo-cd.readthedocs.io/en/stable/cli_installation
MacOS:
```bash
brew install argocd
```
Использование:
```bash
argocd login argocd.avroid.tech
```