Make. Build. Break. Reflect.
909 subscribers
115 photos
1 video
119 links
Полезные советы, всратые истории, странные шутки и заметки на полях от @kruchkov_alexandr
Download Telegram
#argocd #gitops

В рамках самостоятельной профессиональной регулярной переподготовки поработал пару ночей над ArgoCD https://argo-cd.readthedocs.io/

Вообще я с ним давно работаю, всё умею, вношу правки, добавляю новые аппликейшны/аппликейшнсеты, траблшутю и вообще всё понятно.

Но что, если всё поднять с нуля и не подглядывать за ранее написанным кодом?

Насколько сильно обделаюсь в свои портки за 40 грошей?

Задача простая: есть тестовая организация в GitHub, внутри 3 тестовых репозитория с 3 микросервисами, 1 репозиторий с универсальным helm chart, который подходит всем 3 тестовым микросервисам, 1 репозиторий argocd с манифестами Application + Application Set. Всё сделать сперва на мастер ветке, потом по тегам докер имиджа.
Мы стильные молодёжные, так что сразу с SSO авторизацией.
Есть тестовый(студенческий) аккаунт MS Azure + MS Entra.
Финишем добавить пару общий хелмчартов, ну не знаю, допустим прометиус стек, так же через арго.

Признаюсь, первые часа два я дичайше тупил.🚬
Сперва долго тупил с SSO. Потом орнул с разделения админ центра/enterprise applications/app service.
Ок, авторизацию прикрутил и это хорошо.
Потом долго пытался понять а как вообще цеплять репозитории к арго серверу.
Все валуес файлы делать в каждом репозитории? Или все валуес файлы хранить в репах с аппликейшнсетами?
Аппликейшн или аппликейшнсеты пилить? С учётом на рост(теории).
Если валуес хранить в репозиториях микросервисах, получается мне надо каждый из них внести по отдельности вместе с кредами? А как лучше - через https или git? А как проходит авторизация с гитом?
В итоге сделал через PAT GitHub и логин git (внезапно).
Ладно, репы подключил, но что если я всё ещё хочу валуес файлы хранить в репе с сервисам, а не в арго репе - мне все репы отдельно подключать надо?? Это же бред. Потом прочитал(и спросил у коллеги) про креденшл темплейт, что облегчило мою задачу, ведь всё в одной организации гитхаба. Не надо каждый подключать, очень удобно.
С репами вроде закончил.
Затем я перечитал десятки страниц документации, всякие how to/get started etc.
А у меня ничего не получалось.
Просто не было понимания как стартовать с нуля.
Вроде вот всё понятно: вот репы, вот чарт, вот аппликейшнсет, сейчас будет ????? и ???? и всё заработает.
Не хватало какого-то краеугольного куска гранита для понимания что не так.
В общем просто "изначальный" аппликешйн, который должен играть роль init/controller/bootstrap/App-of-Apps/mainapp (назвать как удобно), который и указывает аргохе куда смотреть на основные аппликейшнсеты...надо создавать руками через kubectl apply -f init.yaml
Я не нашёл иных способов, как изначальную инициацию сделать без разового ввода команды.
Ок, это заработало, засинкалось. Появились аппликейшн сеты, пробовал добавить ещё, новые репы и так далее. Всё заработало.
Потом я ковырялся в реконселейшн арго, так как k8s кластер тестовый, free tier и его апишку просто ломало полностью от 8 приложений(+5 от чартов).
Вернулся к ролевой модели, поковырялся кто может видеть логи, кто может делать рестарт подов и удалять ресурсы, тоже потратил время.
В общем и целом задача закрыта - поднял всё с нуля. Не удивлюсь, что где-то сделал глупо, но идеально и не стояло задачи.

Увлекательное время.
Закрыл несколько пробелов в знаниях, освежил старые знаний.
Всё же одно дело работать с инструментом, который я либо настроил давно, либо вообще делали без меня, другое дело поднять всё с нуля.
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍17