examples: DEVfromGround vc_org, NODEJS, VM, POSTGRES updates
This commit is contained in:
@@ -4,6 +4,62 @@
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-26 — БАГ ГЕНЕРАТОРА: modify-only поля помечаются Required в schema ресурса
|
||||
|
||||
```
|
||||
Error: Missing required argument
|
||||
on vc_org.tf line 5, in resource "nubes_vc_org" "dev_org":
|
||||
5: resource "nubes_vc_org" "dev_org" {
|
||||
The argument "v_i_p_configure" is required, but no definition was found.
|
||||
The argument "resource_name" is required, but no definition was found.
|
||||
```
|
||||
|
||||
### Причина
|
||||
|
||||
Генератор (`~/terra/terraform/devops/`) при создании Go-кода ресурса (`19_vc_org_resource.go`)
|
||||
помечает **все операции ресурса** как `Required` в схеме, включая поля,
|
||||
которые нужны только для операции `modify` (не для `create`).
|
||||
|
||||
Конкретный пример: `vIPConfigure` (код параметра 662) — это поле операции `modify`,
|
||||
но попадает в schema с `Required: true`:
|
||||
|
||||
```go
|
||||
"v_i_p_configure": schema.StringAttribute{Required: true},
|
||||
```
|
||||
|
||||
В YAML-описании сервиса (19_vc_org.yaml) `vIPConfigure` объявлен только под
|
||||
`operations.modify.params`, а не под `operations.create.params`.
|
||||
|
||||
### Что нужно исправить в генераторе
|
||||
|
||||
В `~/terra/terraform/devops/` (файлы `02_generate_resources_and_docs*.go/sh`):
|
||||
|
||||
Поля, принадлежащие только операции `modify` (или другим не-create операциям),
|
||||
должны генерироваться как **`Optional: true, Computed: true`**, а не `Required: true`.
|
||||
|
||||
Логика:
|
||||
- поле в `operations[create].params` → `Required: true`
|
||||
- поле только в `operations[modify].params` → `Optional: true, Computed: true`
|
||||
- поле только в state (read-only) → `Computed: true`
|
||||
|
||||
### Временный workaround (действующий)
|
||||
|
||||
В `terraform.tf`-манифесте указывать пустую строку:
|
||||
|
||||
```hcl
|
||||
v_i_p_configure = "" # modify-only поле; при create не отправляется в API
|
||||
```
|
||||
|
||||
Провайдер при Create не передаёт это поле в API (строка 418/556 params),
|
||||
но schema.Required требует non-null значение в плане.
|
||||
|
||||
### Файлы для правки
|
||||
|
||||
- `~/terra/terraform/devops/profiles/test/generated/go/19_vc_org_resource.go` — сгенерированный, не менять вручную
|
||||
- **Править нужно шаблоны/генераторы** в `~/terra/terraform/devops/`
|
||||
|
||||
---
|
||||
|
||||
## 2026-03-22 — БАГ: CreateService/CreateFunction возвращает 409 при `terraform apply -replace` (ИСПРАВЛЕН)
|
||||
|
||||
### Симптом
|
||||
|
||||
Reference in New Issue
Block a user