Files
tf_provider/docs/YAML_ANALYSIS_43_SERVICES.md
T

7.4 KiB
Raw Blame History

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