DO-1431 Co-authored-by: denis.patrakeev <denis.patrakeev@avroid.tech> Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/6
121 lines
4.2 KiB
Markdown
121 lines
4.2 KiB
Markdown
# 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
|
||
```
|