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
@@ -0,0 +1,37 @@
# Resource nubes_vc_complex
Service ID: `113`
Service Name: Быстрый старт
[Manual](vc_complex.md) | [Create params](vc_complex_params_create.md) | [Modify params](vc_complex_params_modify.md) | [Output params](vc_complex_outputs.md) | [Operations](vc_complex_ops.md) | [Example](vc_complex_example.md)
## Create params
**Обязательные параметры (вводимые пользователем)**
<table class="resource-table resource-table-compact resource-table-required">
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Description</th><th>Constraints</th></tr></thead>
<tbody>
<tr><td>332</td><td><strong><code class="code-no-wrap">resource_realm</code></strong></td><td><code>string</code></td><td>Наименование ресурсной платформы</td><td>func=getAvailableResourceRealms</td></tr>
<tr><td>334</td><td><strong><code class="code-no-wrap">vapp_name</code></strong></td><td><code>string</code></td><td>Имя vApp</td><td>regex=^[a-z0-9][a-z0-9.-]{1,61}[a-z0-9]$</td></tr>
</tbody></table>
**Параметры, имеющие значение по умолчанию, если не меняете - эти параметры не обязательно прописывать в манифесте**
<table class="resource-table resource-table-compact">
<thead><tr><th>ID</th><th>Code</th><th>Type</th><th>Default</th><th>Description</th><th>Constraints</th></tr></thead>
<tbody>
<tr><td>358</td><td><strong><code class="code-no-wrap">vdc_provider_gateway</code></strong></td><td><code>string</code></td><td><code>sandbox-v1cl1-pvdc</code></td><td>Взять из свойств ресурсной платформы.<br/>Путь .vcd.providerVdc - взять KEY<br/><br/>providerGateway Cloud Director. Влияет ресурсы будут предоставлены. Является полем (List&amp;lt;String&amp;gt;) в свойствах рес. платформы ЛК, но сам параметр передаётся только как один String</td><td></td></tr>
<tr><td>359</td><td><strong><code class="code-no-wrap">virtual_services_count</code></strong></td><td></td><td><code>1</code></td><td>Кол-во виртуальных сервисов, которые выделяются на AVI. Во избежании коллапса пока выделяется до 4</td><td>minvalue=1; maxvalue=4</td></tr>
<tr><td>360</td><td><strong><code class="code-no-wrap">ip_space_name</code></strong></td><td><code>string</code></td><td><code>internet-ipv4-v1</code></td><td>Имя ip Space для внешнего IP. Целесообразнее брать самый дешёвый, так как это vip для исходящего трафика. Необходимо задавать если включен needExternalAddressSNAT</td><td></td></tr>
<tr><td>399</td><td><strong><code class="code-no-wrap">storage_config</code></strong></td><td><code>json</code></td><td><code>[{&#34;name&#34;: &#34;&#34;, &#34;size&#34;: 1024}]</code></td><td>Описывается как массив объектов, где описывается имя политики и её размер</td><td></td></tr>
<tr><td>400</td><td><strong><code class="code-no-wrap">vdc_network_pool</code></strong></td><td><code>string</code></td><td><code>nsxt-sandbox-geneve-np</code></td><td></td><td></td></tr>
<tr><td>401</td><td><strong><code class="code-no-wrap">cpu_guaranteed</code></strong></td><td><code>integer</code></td><td><code>20</code></td><td></td><td>value_list=20, 50, 80</td></tr>
<tr><td>402</td><td><strong><code class="code-no-wrap">mem_guaranteed</code></strong></td><td><code>integer</code></td><td><code>20</code></td><td></td><td>value_list=20, 50, 80</td></tr>
<tr><td>403</td><td><strong><code class="code-no-wrap">segroup_name</code></strong></td><td><code>string</code></td><td><code>SEGROUP-SANDBOX-CL1-SHARED-01</code></td><td>Наименование segroup, в котором будут выделяться пулы на AVI</td><td></td></tr>
<tr><td>404</td><td><strong><code class="code-no-wrap">need_external_address_snat</code></strong></td><td><code>boolean</code></td><td><code>true</code></td><td>Выделяет внешний IP на Edge. Используется для SNAT всего трафика</td><td>value_list=false, true</td></tr>
<tr><td>405</td><td><strong><code class="code-no-wrap">need_enable_avi</code></strong></td><td><code>boolean</code></td><td><code>false</code></td><td>Включает AVI в Cloud Director</td><td>value_list=false, true</td></tr>
<tr><td>566</td><td><strong><code class="code-no-wrap">cpu_allocated</code></strong></td><td><code>string</code></td><td><code>1</code></td><td>шт</td><td>minvalue=1</td></tr>
<tr><td>567</td><td><strong><code class="code-no-wrap">mem_allocated</code></strong></td><td><code>integer</code></td><td><code>10</code></td><td>gb</td><td>minvalue=1</td></tr>
<tr><td>568</td><td><strong><code class="code-no-wrap">v_ipcount</code></strong></td><td><code>integer</code></td><td><code>0</code></td><td>ш</td><td>minvalue=0; maxvalue=20</td></tr>
</tbody></table>