{"queryDurationMs":49,"svc":{"svcId":89,"svc":"Web-сервер с фреймворком Flask","svcShort":"flask","code":"paas.flsk.0","version":"master","orchestratorName":"Flask","createUrl":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/create/job/master/buildWithParameters","isProductionReady":true,"resourceRealmTypeId":3,"iconSrc":null,"descr":null,"man":"# Инструкция по развертыванию Web-сервер с фреймворком Flask через платформу

## 1. Общая информация

Сервис **Web-сервер с фреймворком Flask** предназначен для развертывания веб-приложений на базе Flask.

### Доступные операции

create — включить сервис, развернуть веб-приложение с указанными параметрами.
delete — удалить сервис, только после suspend.
modify — изменить настройки сервиса и переразвернуть.
suspend — выключить веб-приложение, остановить обслуживание.
resume — включить веб-приложение после suspend.

---

## 2. Параметры развертывания

Параметры входных данных операции **create**:

### Имя домена
Описание: доменное имя для доступа к веб-приложению. Если указан FQDN, происходит проверка DNS на валидность А-записи. А-запись должна указывать на балансировщик ресурсной платформы. Если указано имя в рамках одного октета, оно будет добавлено в публичную DNS-зону.
Пример значения: строка, допустимые FQDN или имя в одном октете. Пример: example.com или myapp.

### Платформа для развертывания
Описание: кластер Kubernetes, в котором будет развернуто приложение.
Пример значения: идентификатор кластера Kubernetes.

### Квота ядра пода
Описание: количество CPU, выделяемое на под, в Milicores.
Пример значения: целое число, например 500 для 0.5 ядра.

### Квота памяти пода
Описание: количество памяти, выделяемое на под, в Megabytes.
Пример значения: целое число, например 512 для 512 MB.

### Кол-во реплик пода
Описание: количество инстансов пода для масштабирования.
Пример значения: целое число, шт, например 2.

### URL Проекта (gitpath)
Описание: полный HTTPS путь до проекта в Git-репозитории.
Пример значения: URL в формате https://github.com/myuser/myproject.git. Доступ к репозиторию должен быть публичным.

### URL HealthCheck
Описание: путь для проверки здоровья приложения внутри пода.
Пример значения: строка, путь, например /api/v1/health.

### Переменные окружения пода
Описание: структура данных, которая будет передана как переменные окружения в под.
Пример значения: ключ-значение, например {"ENV": "production"}.

---

## 3. Рекомендованные характеристики

### Тестовое окружение
- Квота ядра пода: 300m (0.3 ядра)
- Квота памяти пода: 256 MB
- Кол-во реплик пода: 1

### Промышленное окружение
- Квота ядра пода: от 1000m (1 ядро) в зависимости от нагрузки
- Квота памяти пода: от 1024 MB (1 GB) с учетом потребностей приложения
- Кол-во реплик пода: от 2 для обеспечения отказоустойчивости

---

## 4. Выходные параметры
Операция create не возвращает явных выходных параметров. Успешное выполнение операции приводит к развертыванию сервиса, доступного по указанному домену.

---

## 5. Дополнительная информация
- В корне проекта должен находиться файл requirements.txt со списком зависимостей Python.
- Исходный код веб-приложения должен располагаться в директории site.
- Запуск веб-сервера осуществляется командой python app.py.
- Используется версия Python: python:3.12-slim.
- Git-репозиторий должен быть публично доступен для платформы.
- Операция delete возможна только после suspend.
- Операция modify приводит к переразвертыванию с новыми параметрами.","operations":[{"svcOperationId":145,"operation":"resume","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null},{"svcOperationId":146,"operation":"modify","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/modify/job/master/buildWithParameters","descr":null,"man":null},{"svcOperationId":89,"operation":"delete","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/delete/job/master/buildWithParameters","descr":null,"man":"Удаление возможно только после остановки сервиса через операцию `suspend`
После выполнения операции необходимо выждать определенное кол-во времени"},{"svcOperationId":125,"operation":"suspend","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/","descr":null,"man":null},{"svcOperationId":88,"operation":"create","url":"https://jenkins-master1.adl.nubes.ru/job/cloudServicesDev/job/k8s/job/Flask/job/create/job/master/buildWithParameters","descr":null,"man":null}]},"runDurationMs":49}