# 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 ```