Files
k8s-configs/clusters/k8s-avroid-office.prod.local/namespaces/argocd/argo-cd/README.md
Denis Patrakeev 5654a65bff [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
2025-02-10 15:05:06 +03:00

121 lines
4.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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
```