Create KUMA stateless service
This commit is contained in:
@@ -0,0 +1,103 @@
|
||||
# KUMA: история работ
|
||||
|
||||
Дата: 2026-08-26
|
||||
|
||||
## Цель
|
||||
|
||||
Создать сервис KUMA для алертов по whitelist:
|
||||
|
||||
- https://whitelist.nodejsk8s.services.ngcloud.ru/
|
||||
|
||||
Первый этап: stateless-хранилище. В дальнейшем планируется MariaDB.
|
||||
|
||||
## Git
|
||||
|
||||
Локальный каталог проекта:
|
||||
|
||||
- `/home/naeel/nubes/kuma`
|
||||
|
||||
Удалённый Git-репозиторий:
|
||||
|
||||
- `https://gitea.services.ngcloud.ru/forcloud/kuma.git`
|
||||
|
||||
Репозиторий был пустым, затем клонирован в локальный каталог. Remote `origin` настроен на указанный адрес.
|
||||
|
||||
## Реализация
|
||||
|
||||
Создан минимальный Flask HTTP-сервис:
|
||||
|
||||
- `GET /` возвращает JSON с параметрами сервиса и MariaDB.
|
||||
- `GET /health` возвращает состояние сервиса.
|
||||
- `GET /mariadb` возвращает параметры MariaDB.
|
||||
- Пароль MariaDB не возвращается; выводится только `passwordConfigured`.
|
||||
- Конфигурация задаётся переменными окружения.
|
||||
|
||||
Файлы:
|
||||
|
||||
- `Dockerfile`
|
||||
- `app.py`
|
||||
- `requirements.txt`
|
||||
|
||||
## Docker
|
||||
|
||||
Локальный образ:
|
||||
|
||||
- `kuma:0.1.0`
|
||||
|
||||
Опубликованный образ:
|
||||
|
||||
- `gitea.services.ngcloud.ru/forcloud/kuma:0.1.0`
|
||||
|
||||
Digest опубликованного образа:
|
||||
|
||||
- `sha256:15e7ef5c9e125c81222cffe1c8c4c278c9c148fc432368f01662b4cdbd772f4e`
|
||||
|
||||
Сборка образа и проверка endpoint `/mariadb` выполнены успешно.
|
||||
|
||||
## Переменные окружения
|
||||
|
||||
```json
|
||||
{
|
||||
"MARIADB_DATABASE": "db-kuma",
|
||||
"MARIADB_HOST": "mariadb",
|
||||
"MARIADB_PORT": "3306",
|
||||
"MARIADB_USER": "userkuma",
|
||||
"MARIADB_VERSION": "9.4.0",
|
||||
"PORT": "5000"
|
||||
}
|
||||
```
|
||||
|
||||
`MARIADB_PASSWORD` должен передаваться как секрет окружения и не храниться в истории, документации или Docker-образе.
|
||||
|
||||
## Ответ сервиса
|
||||
|
||||
```json
|
||||
{
|
||||
"mariadb": {
|
||||
"database": "db-kuma",
|
||||
"host": "mariadb",
|
||||
"passwordConfigured": true,
|
||||
"port": 3306,
|
||||
"user": "userkuma",
|
||||
"version": "9.4.0"
|
||||
},
|
||||
"service": "kuma",
|
||||
"state": "stateless",
|
||||
"target": "https://whitelist.nodejsk8s.services.ngcloud.ru/",
|
||||
"version": "0.1.0"
|
||||
}
|
||||
```
|
||||
|
||||
## Gitea Container Registry
|
||||
|
||||
Registry endpoint:
|
||||
|
||||
- `https://gitea.services.ngcloud.ru/v2/`
|
||||
|
||||
Проверка без корректного токена возвращала `401 Unauthorized`. С действительным токеном Registry вернул `HTTP 200`. Образ успешно опубликован и манифест проверен.
|
||||
|
||||
## Ограничения текущего этапа
|
||||
|
||||
- Сервис пока не подключается к MariaDB.
|
||||
- Состояние не сохраняется.
|
||||
- Логика получения и отправки алертов whitelist ещё не реализована.
|
||||
Reference in New Issue
Block a user