7.4 KiB
Анализ 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