Featured image of post Подключение репозиториев в ArgoCD

Подключение репозиториев в ArgoCD

Инструкция по подключению Git репозиториев

Чтобы Gitops подход на основе ArgoCD начал работать его нужно настроить. В данном гайде я покажу как подключить приватные репозитории Gitlab, где хранятся приложения и values, а также Harbor, где у меня лежат Helm чарты и образы.

Собираю единомышленников в телеграм канале. Там же отвечаю на вопросы.
Присоединяйся Telegram

Шаг 1. Получаем доступ к репозиторию

В Gitlab создаём пользователя argocd и выдаём ему права на чтения репозитория + формируем токен.
Gitlab - Администрирование - Пользователи - Новый пользователь - argocd - обычный - Создать

Привязываем группу:
Gitlab - Группы - Участники - Пригласить - argocd - Разработчик Создаём токен:
Группы - gitops - Настройки - Управление доступом - Создать токен - Name: read_repository - Срок действия на год - Роль: Developer
Ставим галки на:
read_api, read_repository - Создать токен группы

Шаг 2. Подключаем ArgoCD к Gitlab

ArgoCD живёт в кубере и не знает внешнего DNS имени сервиса Gitlab, но зато знает внутри кластера, поэтому посмотри в кубере сервис gitlab-webservice-default, порт и свой домен.

Первый способ подключения: ArgoCD - Settings - Repository

Выбираем: Connect Repo - VIA HTTP/HTTPS - Type: git - Project: - Repo URL http://gitlab-webservice-default.gitlab.svc.k8s.domain.local:8181/gitops/cluster_config.git - User:Token - Connect

Второй вариант, если первый не сработал создать этот же репозиторий через кубер:

1
2
3
4
5
6
kubectl -n argocd create secret generic gitlab-repo-creds \
  --from-literal=url=http://gitlab-webservice-default.gitlab.svc.k8s.domain.local:8181/ \
  --from-literal=username=<GITLAB_USERNAME> \
  --from-literal=password=<TOKEN> \
  -o yaml --dry-run=client | \
  kubectl -n argocd apply -f -

И прикрепить label:

1
2
3
4
5
6
7
kubectl -n argocd patch secret gitlab-repo-creds -p '{
  "metadata": {
    "labels": {
      "argocd.argoproj.io/secret-type": "repo-creds"
    }
  }
}'

Шаг 3. Подключаем ArgoCD к Harbor

Чарты и образы хранятся в приватном Harbor.
Подключаем Harbor Connect Repo - VIA HTTP/HTTPS - Type: oci - Project: default - Repo URL harbor.domain.local - User:Pass - Connect

Готово.

Если твой ArgoCD не доверяет внешним источникам по типу Harbor, добавь рутовый серт в secret, которым он подписан.

1
kubectl -n argocd create configmap argocd-tls-certs-cm --from-file=my-root.ca=/usr/local/share/ca-certificates/root-ca.crt -o yaml --dry-run=client | kubectl apply -f -
Информацию можно использовать в свободном доступе, с указанием ссылки на сайт
Telegram GitHub YouTube