This commit is contained in:
Simple_Not 2023-07-01 21:04:18 +10:00
parent dce21d4ad0
commit ba26ae8fda

119
README.md
View File

@ -1,16 +1,23 @@
# Table of Contents
1. [Логика доступа к контенту ](#Логика-доступа-к-контенту)
1. [Логика деплоя в куб по коммиту ](#Логика-деплоя-в-куб-по-коммиту)
1. [Логика доступа к контенту ](#логика-доступа-к-контенту)
1. [Логика деплоя в куб по коммиту ](#логика-деплоя-в-куб-по-коммиту)
1. [Общая схема отдельного приложения](#логика-деплоя-в-куб-по-коммиту)
1. [Логика работы мониторинга](#логика-работы-мониторинга)
Вообще суть такова:
Мы берём фласк, кидаем в контейнер, далее контейнер педалим в кубернетес в деплоймент соответствующий ветке (мастер/дев) с 2-3 подами на деплоймент, всё это должен уметь делать CI/CD
Далее возможно добавление в схему волта
----
## Логика доступа к контенту
[наверх](#table-of-contents)
Попадаем на сервер, nginx отправляет в куб. Там ингресс закидывает на деплоймент соответственно доменному имени. Из деплоймента отвечают свободные поды. Поды ходят в постгрес и минио когда надо.
```mermaid
@ -33,12 +40,12 @@ stateDiagram-v2
state DeploymentMaster {
state "pod" as p1
state "pod" as p2
state "app" as p1
state "app" as p2
}
state DeploymentDev {
state "pod" as p1d
state "pod" as p2d
state "app" as p1d
state "app" as p2d
}
}
@ -63,8 +70,7 @@ stateDiagram-v2
p2 --> all_join
p1d --> all_join
p2d --> all_join
p1 --> all_join
all_join --> Postgres : данные с БД
all_join --> Minio : статика
@ -74,17 +80,100 @@ stateDiagram-v2
----
## Логика деплоя в куб по коммиту
TBA
[наверх](#table-of-contents)
```mermaid
stateDiagram-v2
committer --> Git
Git --> Drone
state "pipeline-${branch}" as pm {
Git
committer
Docker
Kube
Drone
Runner --> Docker : create ${branch} image with new files
Docker --> Kube : ${branch} deploy with new image
}
state branch_fork <<fork>>
Drone --> branch_fork : ветка репо
branch_fork --> pm
```
----
## Общая схема отдельного приложения
[наверх](#table-of-contents)
```mermaid
stateDiagram-v2
User
state inet <<fork>>
User --> inet : дайте борду, запишу свои посты, картинки итд
state Flask {
hmtx : htmx templates
static_files : flask static
}
inet --> Flask
Flask --> Postgres : посты
Flask --> Minio : картинки и шебм
```
----
## Логика работы мониторинга
[наверх](#table-of-contents)
```mermaid
stateDiagram-v2
App
state enter_monitoring <<fork>>
App --> enter_monitoring
enter_monitoring --> Prometheus : metrics
Prometheus --> Grafana
enter_monitoring --> Loki : logs
Loki --> Grafana
state admini {
User : Наш слон
}
Prometheus --> Alertmanager
Loki --> Alertmanager
state alerts_join <<join>>
state dash_join <<join>>
Alertmanager --> alerts_join
Grafana --> alerts_join
alerts_join --> User : алерты
Grafana --> dash_join
dash_join --> User : дашборды
```