Files
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

4.2 KiB
Raw Permalink Blame History

Install Argo CD by argo-cd in argo-helm

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:

kubectl apply -f .rbac/vault-service-account.yaml

Получаем из Vault секреты с паролями/токенами/сертификатами и выгружаем в окружение оболочки:

./argocd_values_secrets_init.sh

source .creds

Создаём секрет с сертификатами:

kubectl -n argocd create secret tls argocd-server-tls \
  --cert=.secrets/argocd_cert.pem \
  --key=.secrets/argocd_key.pem

Добавляем конфигурацию для плагина ArgoCD Vault:

kubectl -n argocd apply -f .secrets/argocd-vault-plugin-configmap.yaml
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-secret.yaml

И производим непосредственную установку ArgoCD:

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 необходимые для конфигурации секреты:

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 секреты с паролями/токенами/сертификатами и выгружаем в окружение оболочки:

./argocd_values_secrets_init.sh

source .creds

Создаём секрет с сертификатами:

kubectl -n argocd create secret tls argocd-server-tls \
  --cert=.secrets/argocd_cert.pem \
  --key=.secrets/argocd_key.pem

Добавляем конфигурацию для плагина ArgoCD Vault:

kubectl -n argocd apply -f .secrets/argocd-vault-plugin-configmap.yaml
kubectl -n argocd apply -f .secrets/argocd-vault-plugin-secret.yaml

Подпихиваем в секрет argocd-secret необходимые для конфигурации секреты:

kubectl -n argocd patch --patch-file .secrets/argocd-secret-path.yaml secret argocd-secret

Затем применяем:

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:

brew install argocd

Использование:

argocd login argocd.avroid.tech