Это репозиторий для установки ArgoCD, который подключится к github репозиторию с настройками ArgoCD, чтобы передеплоить Argo уже с кастомной настройкой.
Чтобы скачивать из Вашего github репозитория, Argo нужно дать доступ с помощью github приложения. Создайте приложение, у которого выдан доступ на чтение репозиториев и установите в свою организацию.
Склонируйте репозиторий и запустите скрипт fillArgoGithubCredentails.sh
./fillArgoGithubCredentials.sh ${your_credentials_name} "${repository_or_organization_path}" ${app_id} ${app_installation_id} "${app_pem_file_path} ${argocd_config_repo}"- your_credentials_name - любое имя для кредов
- repository_or_organization_path - путь к организации или репозиторию на github, к которому выдан доступ приложению (
https://github.com/YOURORGANIZATION) - app_id - id приложения github
- app_installation_id - id инсталляции (надо зайти в установленное в организацию github приложение и посмотреть)
- app_pem_file_path - путь к файлу с секретным ключем приложения, который генери руется при создании приложения
- argocd_config_repo - путь к github репозиторию (внутри организации), в котором содержится настройка ArgoCD
Будет подготовлена конфигурация для ArgoCD, которая смотрит в репозиторий ${argocd_config_repo} содержащий ArgoCD и его настройки и подкачивает оттуда изменения. Argo деплоит сам себя. В настройках указывается какие addon'ы для кластера и приложения проектов в какие кластеры нужно установить.
При этом будет создан файл ./config/argocd/main-github-credentials.yaml который содержит креды именно для доступа к организации или репозиторию, в котором содержится целевая настройка argocd_config_repo. Для добавления кредов (уже в репозитории конфигурации), нужно использовать новые имена кредов и файла.
Настройте ноды, на которые будет установлен argo в ./kustomization.yaml. По умолчанию Арго установится только на ноды, где установлен лейбл node-role.kubernetes.io/system-workloads и установлен Taint node-role=system-workloads:NoExecute
spec:
tolerations:
- key: node-role
operator: Equal
value: system-workloads
effect: NoExecute
nodeSelector:
node-role.kubernetes.io/system-workloads: ""Если в Вашем кластере на целевых нодах стоит другой лейбл или Taint, измените на корректные.
После этого устанавливаем Argo в свой кластер, просто запускаем в корне этого проекта
kubectl apply -k . --context <контекст кластера где будет развернут арго>Арго развернется, и скачает сам себя с конфигами из репозитория ${argocd_config_repo} и развернёт все адоны и приложения из конфига.