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

image

Магазин

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 с ошибкой