# Анализ 43 YAML-файлов из нового API Gateway > Дата: 2026-07-02 > Источник: `devops/profiles/test/generated/resources_yaml/` > Gateway: `https://lk-api-gateway-test.ngcloud.ru/api/v1/svc` --- ## Идеология построения сервисов ### Два класса сервисов | Класс | Признак | Примеры | Кол-во | |---|---|---|---| | **Простые (flat)** | Плоские параметры: `resourceRealm`, `resourceCPU`, `domain`, ... | s3bucket, vc_vm, dnszone, harbor, gitea, rabbitmq, ... | **31** | | **Сложные (map-fixed)** | Структурированные JSON-блоки: `clusterConfiguration`, `startupConfiguration`, ... | postgres, redis, mariadb, clickhouse, kafka, nextcloud, flask, lucee, nodejs, valoTenant, dummy, template | **12** | **Закономерность**: map-fixed используют сервисы, разворачиваемые в Kubernetes (БД, приложения). Простые flat — всё остальное (VM, сеть, DNS, S3). --- ## Типы данных (435 параметров всего) | Тип | Кол-во | Где | |---|---|---| | `string` | 146 | Имена, домены, UUID | | `integer > 0` | 101 | CPU, memory, disk | | `map-fixed` | 93 | K8s-сервисы (12 шт.) | | `boolean` | 21 | Флаги | | `array-map-fixed` | 17 | Массивы объектов (7 сервисов) | | `uuid` | 14 | ref-параметры | | `json` | 11 | Произвольный JSON | | `map` | 14 | Только в outputs | | `yaml` | 2 | Редко | | `array` | 1 | Редко | | `integer >= 0` | 2 | Числовые, допускающие 0 | --- ## Обязательность - **required: 340** (78%) - **optional: 95** (22%) - **default: 120** параметров имеют значение по умолчанию Большинство параметров обязательные, но многие с дефолтами. --- ## Типы операций | Kind | Кол-во | Паттерн | |---|---|---| | `instance` | 164 | create/delete + modify/suspend/resume (у 27 из 43) | | `action` | 32 | reconcile (20), redeploy (7), restart (3), recovery (2) | | `subresource` | 31 | user (16), database (6), topic (3), backup (2), vdc (2) | --- ## Subresource-паттерн Самый частый — `user` (16 сервисов). Создаётся отдельный `nubes_{service}_user` ресурс с параметрами `username` + `role`. Аналогично `database` (6 сервисов) с `dbName` + `dbOwner`. | subresource | Кол-во | Параметры | |---|---|---| | `user` | 16 | `username` (string, regex), `role` (string, value_list) | | `database` | 6 | `dbName` (string, regex), `dbOwner` (string) | | `topic` | 3 | Kafka | | `backup` | 2 | S3, PostgreSQL | | `vdc` | 2 | vcOrg | | `sub_user` | 2 | openwhisk | --- ## Топ параметров create | code | Кол-во | Назначение | |---|---|---| | `resourceRealm` | 19 | Платформа/K8s-кластер | | `resourceMemory` | 11 | Память | | `resourceCPU` | 11 | CPU | | `startupConfiguration` | 10 | map-fixed (K8s) | | `clusterConfiguration` | 10 | map-fixed (K8s) | | `accessConfiguration` | 10 | map-fixed (K8s) | | `resourceInstances` | 10 | Кол-во реплик | | `domain` | 9 | Домен | | `resourceDisk` | 8 | Диск | | `ipSpaceName` | 4 | IP-space | | `appConfiguration` | 4 | Конфигурация приложения | | `jsonEnv` | 4 | Переменные окружения | | `backupConfiguration` | 3 | Бэкапы | | `autoscaleConfiguration` | 3 | Автоскейлинг | | `ipSpaceNameMaster` | 3 | IP для master | | `vdcUid` | 3 | Ссылка на VDC | | `vappName` | 2 | Имя vApp | | `storageConfig` | 2 | Конфигурация хранилища | --- ## Action-операции | action | Кол-во | У каких сервисов | |---|---|---| | `reconcile` | 20 | Универсальная синхронизация (почти все) | | `redeploy` | 7 | flask, nodejs, lucee, nifi, superset, nextcloud, gitea | | `restart` | 3 | postgres, mariadb, redis | | `recovery` | 2 | postgres, clickhouse | --- ## Жизненный цикл - **27 из 43** сервисов поддерживают `suspend` - **27 из 43** сервисов поддерживают `resume` - Все кто имеет suspend — имеют и resume (и наоборот) --- ## Валидация параметров | Механизм | Кол-во | Пример | |---|---|---| | `regex` | 29 | `dbName: ^[A-Za-z0-9]+$` | | `value_list` | 38 | `role: [app_user, ddl_user]` | | `min/max value/length` | 87/74 | Числовые и строковые ограничения | | `default` | 120 | `deleteS3Bucket: true` | | `is_modifiable` | 106 (24%) | Можно менять после создания | | `is_sensitive` | 2 | `vault_secrets` | --- ## Сервисы с map-fixed (12) `mariadb`, `clickhouse`, `valo_tenant`, `k8s_sthutrval_cluster`, `dummy`, `template`, `nextcloud`, `flask`, `postgres`, `redis`, `lucee`, `nodejs` ## Сервисы с array-map-fixed (7) `mariadb`, `clickhouse`, `k8s_sthutrval_cluster`, `vc_org`, `dummy`, `vc_vdc`, `postgres` --- ## Сервисы без операций (4) `openwhisk`, `gitea_complex`, `vmpostgre`, `template` — только заглушки/заготовки. --- ## Полный список сервисов и их операций ``` 100_openwhisk | (нет операций) 110_dnszone | instance 111_dnsrecord | instance, action 112_tenant | instance 113_vc_complex | instance 114_gitea_complex | (нет операций) 115_mariadb | instance, subresource, action 116_kafka | instance, subresource 117_nifi | instance 119_akhq | instance 120_clickhouse | instance, subresource, action 12_s3 | instance, subresource, action 13_s3bucket | instance 149_valo_tenant | instance 150_k8s_sthutrval_cluster | instance, subresource, action 19_vc_org | instance, subresource, action 1_dummy | instance, action 20_vc_org_saas | instance 21_vc_vdc | instance, action 22_vc_nsxt | instance, action 23_vc_vm | instance 25_vcexternalip | instance 26_vapp | instance, action 27_vc_vm_v2 | instance 28_vc_vm_v3 | instance, action 29_vc_vdc_group | instance, subresource, action 2_template | instance, action 32_vmpostgre | (нет операций) 50_nextcloud | instance, subresource, action 81_superset | instance 82_harbor | instance 88_k8s_ziti_controller | instance 89_flask | instance, action 90_postgres | instance, subresource, action 91_redis | instance, action 92_mongodb | instance, subresource 93_rabbitmq | instance 94_lucee | instance, action 95_nodejs | instance, action 96_pgadmin | instance, action 97_nodered | instance 98_http | instance, action 99_gitea | instance ```