8 месяцев назад
История
README.md
P.S
- Код хранится в GitLab с использованием любого git-flow Не увидел реализации какого-либо flow через гит в CI.
- Использовал самый приметивный вид git-flow Feature branche
- В проекте присутствует .gitlab-ci.yml, в котором описаны шаги сборки Описание CI присутствует. В CI использованы DOWNSTEREAM пайплайны. Пароли лежат прямо в гите. Например sonar-scanner
Просьба убрать. -Убрал В сборке бэка: Зачем стейжд build? Бинарь, который ложится в артифакт после него не используется нигде. -Используется при тестах. Сборка докер описана как мультистейдж - это правильно. Хороший набор тестов. Зачем стейдж upload-backend-latest? Не надо использовать latest. - Не понял, в чем проблема тега ? Убрал название. В сборке фронта: Нет тестов. Совсем. Это расстраивает. Просьба добавить.
- Сделано. Чарт: Нет тестов. Хотябы helm lint добавить.
- +
Мониторинг - Можно как то без него ?
Выкатывается автоматически, через pelmennaya/chart.gitlab-ci.yml
Momo Store aka Пельменная №2
Магазин
http://158.160.57.174:443
Мониторинг (admin/qwerty123)
Показатели продаж
https://std-013-18-grafana.k8s.praktikum-services.tech/?orgId=1
Репозиторий GIT
https://gitlab.praktikum-services.ru/std-013-18/pelmennaya
Container Registry (артефакты):
Backend
gitlab.praktikum-services.ru:5050/std-013-18/pelmennaya/pelmeni-store-backend
Frontend
gitlab.praktikum-services.ru:5050/std-013-18/pelmennaya/pelmeni-store-frontend
Репозиторий (helm-chart):
https://nexus.k8s.praktikum-services.tech/repository/xgio2-momo-store/
Струкутура репозитория
.
├── backend - исходный код бэкэнда + Dockerfile + gitlab-ci.yml
├── frontend - исходный код фронтэнда + Dockerfile + gitlab-ci.yml
├── infrastructure - манифесты terraform для развертывания кластера в облаке Yandex
├── kubernetes - манифесты k8s для развертывания приложения momo-store кластера в облаке Yandex + certmanager
│ ├── backend
│ ├── certmanager
│ └── frontend
├── momo-chart - helm-chart k8s для развертывания приложения momo-store кластера в облаке Yandex
│ ├── charts
│ └── templates
└── monitoring - helm-chart(ы) k8s для развертывания мониторинга momo-store кластера в облаке Yandex
├── kube-prometheus-stack
├── loki-stack
└── prometheus
Добавление ключей для работы S3 Bucket
Для корретной передачи ключей к S3 хранилищу, перед применением манифестов terraform нужно добавить в окружени
export TF_S3_ACCESS_KEY="<идентификатор_ключа>"
export TF_S3_SECRET_KEY="<секретный_ключ>"
terraform init -backend-config="access_key=$TF_S3_ACCESS_KEY" -backend-config="secret_key=$TF_S3_SECRET_KEY"
Приложение размещается в кластере k8s Yandex Cloud в двух namespace
1. default - развертываем приложение Пельменная при помощи helm-chart
Приложение развертывается автоматически при изменнеии коды в каталогах frontend/backend или при запуску pipeline руками
2. monitoring - рзвертываем grafana + prometheus + loki
Приложения развертываются руками при помощи установки в k8s helm-charts grafana + prometheus
Используемые черты для инфраструктуры мониторинга
kube-prometheus-stack-47.0.0 v0.66.0
Установка:
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install grafana --set --namespace=monitoring prometheus-community/kube-prometheus-stack
prometheus-22.6.7 v2.45.0
Установка :
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus prometheus-community/prometheus
Конвейеры
0 успешных
0 с ошибкой