Как стать автором
Обновить

Комментарии 9

А смысл здесь от ансиболи? Шаблонизировать можно хелмом, тем более что конфиг в кубе можно и нужно передавать извне, а не запекать в докере.

Более того, external dns не нужен, для такого масштаба проекта проще сделать запись со * с dns.

Пока выглядит как переусложненное решение тестового задания на девопса, которое можно было сделать гораздо проще и правильнее.

Плюс базу можно иметь ресурсом куба, наверняка есть операторы которые и создадут и удалят.

И сидинг лучше не через бэкап делать а через нормальный сидинг данных из кода. Он же пригодится и разработчикам при локальной разработке.

В целом задача хорошо решается через argocd, там есть генераторы которые следят за репо и видят новые каталоги. Просто скопировали каталог с манифестами или чартами - и у вас новое приложение в другом неймспейсе.

Плюс базу можно иметь ресурсом куба, наверняка есть операторы которые и создадут и удалят.

Это верно подмечено, разве что стоит также подметить что база частенько деплоится не на кубере, а отдельно на виртуалки или используется менеджед сервис и в этом случае это решение не подойдет

И сидинг лучше не через бэкап делать а через нормальный сидинг данных из кода. Он же пригодится и разработчикам при локальной разработке.

Безусловно. Но часто разработчики "очень заняты" и вариант с копированием их устраивает больше поскольку не требует их вовлечения

В целом задача хорошо решается через argocd, там есть генераторы которые следят за репо и видят новые каталоги. Просто скопировали каталог с манифестами или чартами - и у вас новое приложение в другом неймспейсе.

А можно тут поподробнее если не сложно? Как через него организовать создание окружения из ветки (даже если опустить момент с копированием базы)?

Но в целом, мы не используем арго для приложений, только для инфраструктурных сервисов. Потому что:

  1. Не видно процесса и статуса деплоя в Gitlab, это не удобно

  2. Нет возможности делать --atomic релизы

  3. Иногда требуется добавить доп логику завязанную на процесс деплоя (например, сброс кеша на Cloudflare, отправка оповещалок в Telegram). Если деплой организован через арго, то это становится проблематичной задачей (все решаемо конечно, но уже сложнее)

Шаблонизировать можно хелмом

Тут согласен, банально так привык пользоваться Ansible что и не заметил что можно упростить =)

тем более что конфиг в кубе можно и нужно передавать извне, а не запекать в докере

Кубконфиг кладется в /root/.kube/config и контекст докер билда не захватывает эту папку. Или вы чтото другое имели в виду?

Более того, external dns не нужен, для такого масштаба проекта проще сделать запись со * с dns.

В случае с * придется делать отдельный поддомен. А из за этого как минимум Cloudflare не будет генерировать сертификат. Но в целом тоже рабочий вариант конечно, как-то давно использовал такое

Пока выглядит как переусложненное решение тестового задания на девопса, которое можно было сделать гораздо проще и правильнее.

В статье ведь был был не сложный проект как пример, схема в целом рабочая и для большего числа приложений

> Кубконфиг кладется в /root/.kube/config и контекст докер билда не захватывает эту папку. Или вы чтото другое имели в виду?
Другое, да. Я про конфиг который web.config, его лучше монтировать как файл из configmap куба. Ну а в идеале перейти на конфигурацию из env-переменных, но это выходит за рамки этого проекта и обсуждения)

> В случае с * придется делать отдельный поддомен. А из за этого как минимум Cloudflare не будет генерировать сертификат. Но в целом тоже рабочий вариант конечно, как-то давно использовал такое

Ну тут такое, серты можно генерить другими способами. Но да, тут аргумент принимается. Просто впервые вижу использование edns для такого масштаба, удивился.

> В статье ведь был был не сложный проект как пример, схема в целом рабочая и для большего числа приложений

"В целом рабочая" - это достаточно большой класс схем с костылями и усложнениями разного масштаба. KISS - наше всё. А то посмотришь, как предыдущие девопсы в компании напилили после таких гайдов - и рыдать хочется. Мой фаворит - это докер, внутри которого puppet, который запускает ansible, который дёргает helm, который после себя вызывает kustomize, после чего ямлы идут в кластер и там изменяются с помощью мутатора в кластере. Тоже схема-то "в целом рабочая")

Ссылка из конца статьи спрашивает логин и пароль. Что туда ввести? :)

Поправил, теперь ссылка доступна без входа👍

Для kubectl delete можно использовать --ignore-not-found, вместо || true

Да, так действительно лучше, спасибо =)

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации