refactor: restructure project — separate tools, config, generated, provider

TOOLS/        — generators + scripts + config + ARCHITECTURE.md
  ├── yaml-generator/    (code)
  ├── resource-generator/ (code)
  ├── docs-generator/    (code)
  ├── scripts/           (← devops/*.sh)
  ├── config/            (← devops/profiles/ + devops/config/)
  │   ├── test/          profile.env, services_list.txt, operation_timeouts.json
  │   ├── prod/
  │   └── dev/
  └── ARCHITECTURE.md    (← devops/ARCHITECTURE.md)

generated/    — pipeline output only (gitignored)
  ├── test/resources_yaml/, go/, docs/, provider_build/
  ├── prod/
  └── dev/

provider/     — code only, no generated files
  resources_yaml/        — DELETED (generated)
  internal/resources_gen/ — DELETED (generated)

devops/       — removed (replaced by TOOLS/scripts + TOOLS/config + generated/)

Generators now fail if NUBES_*_DIR not set (no defaults to provider/).
Provider requires pipeline to populate resources_gen/ before build.
This commit is contained in:
“Naeel”
2026-07-06 09:06:09 +04:00
parent c34db5e5e3
commit dd56bcda83
1285 changed files with 84004 additions and 1910 deletions
+215
View File
@@ -0,0 +1,215 @@
name: nodejs
service_id: 95
service_display_name: NodeJS
service_short_name: nodejs
service_man: Развертывает контейнер в k8s кластере с node, который можно использовать для запуска своих приложений.<br/>Приложение должно быть доступно по ссылки в git репозитории, которая является входным параметром.
lifecycle:
suspend_on_destroy_default: true
adopt_existing_on_create_default: false
outputs:
params:
- code: state_params
type: map
- code: state_out
type: map
- code: state_params_flat
type: map
- code: state_out_flat
type: map
- code: vault_secrets
type: map
sensitive: true
- code: vault_url
type: string
- code: vault_user_path
type: string
- code: vault_fields
type: list
operations:
- name: create
id: 58
kind: instance
action: create
params:
- id: 149
code: domain
data_type: string
required: true
default: web01
regex: ^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)*[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?$
descr: Если будет указан FQDN, то происходят проверки DNS на валидность А-записи, или будет добавлено в зону resourceRealm
man: Наименование поддомена, будет добавлено в nodejs.dev.nubes.ru
sort: 10
- id: 150
code: gitPath
data_type: string
required: true
default: https://github.com/xahys/testnode.git
descr: Путь до Git, который будет webroot для сайта
man: Путь до Git, который будет webroot для сайта
sort: 60
is_modifiable: true
- id: 151
code: healthPath
data_type: string
required: false
descr: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код. Если оставить пустым, healtcheck'а не будет
sort: 80
is_modifiable: true
- id: 152
code: jsonEnv
data_type: json
required: false
descr: Массив переменных, будут переданы в env приложения
man: Массив переменных, будут переданы в env приложения
sort: 70
is_modifiable: true
- id: 153
code: resourceCPU
data_type: integer &gt; 0
required: true
default: "500"
maxvalue: 4000
minvalue: 100
descr: Квота ядра пода (milicores). 1000Mili = 1 Ядро
man: Квота ядра пода (milicores). 1000Mili = 1 Ядро
sort: 30
is_modifiable: true
- id: 154
code: resourceMemory
data_type: integer &gt; 0
required: true
default: "1024"
maxvalue: 8192
minvalue: 128
descr: Квота памяти пода (MBytes)
man: Квота памяти пода (MBytes)
sort: 40
is_modifiable: true
- id: 155
code: resourceInstances
data_type: integer &gt; 0
required: true
default: "1"
maxvalue: 7
minvalue: 1
descr: Количество узлов
man: Количество узлов в сети
sort: 50
is_modifiable: true
- id: 156
code: resourceRealm
data_type: string
required: true
func: getAvailableResourceRealms
descr: Платформа для развертывания
sort: 20
- id: 270
code: appVersion
data_type: string
required: true
default: "23"
value_list:
- "18"
- "20"
- "22"
- "23"
regex: ^(\d){2}$
descr: Версия приложения
sort: 90
is_modifiable: true
- name: delete
id: 61
kind: instance
action: delete
params: []
- name: modify
id: 59
kind: instance
action: modify
params:
- id: 157
code: gitPath
data_type: string
required: false
descr: Путь до Git, который будет webroot для сайта
man: Путь до Git, который будет webroot для сайта
sort: 50
- id: 158
code: healthPath
data_type: string
required: false
descr: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.
man: Путь до healtcheck для запуска пода в Kubernetes, который отдаст 200 код.
sort: 60
- id: 159
code: jsonEnv
data_type: json
required: false
maxlength: 2048
descr: Массив переменных, будут переданы в env приложения
man: Массив переменных, будут переданы в env приложения
sort: 40
- id: 160
code: resourceCPU
data_type: integer &gt; 0
required: false
maxvalue: 4000
minvalue: 100
descr: Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро
man: Квота ядра пода (Указывается в mili) 1000Mili = 1 ядро
sort: 10
- id: 161
code: resourceMemory
data_type: integer &gt; 0
required: false
maxvalue: 8192
minvalue: 128
descr: Квота памяти пода (Указывается в Megabytes)
man: Квота памяти пода (Указывается в Megabytes)
sort: 20
- id: 162
code: resourceInstances
data_type: integer &gt; 0
required: false
maxvalue: 7
minvalue: 1
descr: Количество узлов
man: Количество узлов в сети
sort: 30
- id: 271
code: appVersion
data_type: string
required: true
default: "23"
value_list:
- "18"
- "20"
- "22"
- "23"
regex: ^(\d){2}$
descr: Версия приложения
man: Версия приложения
sort: 70
- name: redeploy
id: 60
kind: action
action: redeploy
params:
- id: 258
code: resourceRealm
data_type: string
required: true
func: getAvailableResourceRealms
descr: Платформа для развертывания
- name: resume
id: 121
kind: instance
action: resume
params: []
- name: suspend
id: 120
kind: instance
action: suspend
params: []