diff --git a/TEST_STAND/PGwNewRegistry/main.tf b/TEST_STAND/PGwNewRegistry/main.tf index a91ef3b..1ebe410 100644 --- a/TEST_STAND/PGwNewRegistry/main.tf +++ b/TEST_STAND/PGwNewRegistry/main.tf @@ -2,7 +2,7 @@ terraform { required_providers { nubes = { source = "tf-registry.containerk8s.services.ngcloud.ru/nubes-test/nubes" - version = "5.0.3" + version = "5.0.4" } } } diff --git a/TOOLS/config/dev/profile.env b/TOOLS/config/dev/profile.env index 12c6ad5..fece2b9 100644 --- a/TOOLS/config/dev/profile.env +++ b/TOOLS/config/dev/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/dev.token" # Release versions # Version -VERSION="3.0.4" +VERSION="3.0.5" NAMESPACE="nubes-dev" PROVIDER_NAME="nubes" diff --git a/TOOLS/config/prod/profile.env b/TOOLS/config/prod/profile.env index 262086e..30fa6c7 100644 --- a/TOOLS/config/prod/profile.env +++ b/TOOLS/config/prod/profile.env @@ -4,7 +4,7 @@ TOKEN_FILE="secrets/prod.token" # Release versions # Version -VERSION="2.0.3" +VERSION="2.0.5" NAMESPACE="nubes" PROVIDER_NAME="nubes" diff --git a/TOOLS/config/test/profile.env b/TOOLS/config/test/profile.env index 5aa2d81..53b932e 100644 --- a/TOOLS/config/test/profile.env +++ b/TOOLS/config/test/profile.env @@ -3,7 +3,7 @@ NUBES_API_ENDPOINT="https://lk-api-gateway-test.ngcloud.ru/api/v1/svc" TOKEN_FILE="secrets/test.token" # Version -VERSION="5.0.3" +VERSION="5.0.4" NAMESPACE="nubes-test" PROVIDER_NAME="nubes" diff --git a/TOOLS/docs-generator/internal/writers/writers.go b/TOOLS/docs-generator/internal/writers/writers.go index 4e8785e..2d0ec7c 100644 --- a/TOOLS/docs-generator/internal/writers/writers.go +++ b/TOOLS/docs-generator/internal/writers/writers.go @@ -22,27 +22,18 @@ var CloudOutputByServiceID = map[int]types.CloudOutputSnapshot{} func ResourceDocs(docsDir string, spec types.ServiceSpec, version string, apiEndpoint string, providerSource string) { base := spec.Name - navManual := fmt.Sprintf("**Manual** · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base) - navCreate := fmt.Sprintf("[Manual](%s.md) · **Create params** · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base) - navModify := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · **Modify params** · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base) - navOutputs := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · **Output params** · [Operations](%s_ops.md) · [Example](%s_example.md)", base, base, base, base, base) - navOps := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · **Operations** · [Example](%s_example.md)", base, base, base, base, base) - navExample := fmt.Sprintf("[Manual](%s.md) · [Create params](%s_params_create.md) · [Modify params](%s_params_modify.md) · [Output params](%s_outputs.md) · [Operations](%s_ops.md) · **Example**", base, base, base, base, base) - - WriteFile(filepath.Join(docsDir, base+".md"), buildManualPage(spec, navManual)) - WriteFile(filepath.Join(docsDir, base+"_example.md"), buildExamplePage(spec, navExample, version, apiEndpoint, providerSource)) - WriteFile(filepath.Join(docsDir, base+"_params_create.md"), buildCreateParamsPage(spec, navCreate)) - WriteFile(filepath.Join(docsDir, base+"_params_modify.md"), buildModifyParamsPage(spec, navModify)) - WriteFile(filepath.Join(docsDir, base+"_outputs.md"), buildOutputsPage(spec, navOutputs)) - WriteFile(filepath.Join(docsDir, base+"_ops.md"), buildOpsPage(spec, navOps, docsDir)) - WriteFile(filepath.Join(docsDir, base+"_params.md"), buildParamsLandingPage(spec, navManual)) + WriteFile(filepath.Join(docsDir, base+".md"), buildManualPage(spec)) + WriteFile(filepath.Join(docsDir, base+"_example.md"), buildExamplePage(spec, version, apiEndpoint, providerSource)) + WriteFile(filepath.Join(docsDir, base+"_params_create.md"), buildCreateParamsPage(spec)) + WriteFile(filepath.Join(docsDir, base+"_params_modify.md"), buildModifyParamsPage(spec)) + WriteFile(filepath.Join(docsDir, base+"_outputs.md"), buildOutputsPage(spec)) + WriteFile(filepath.Join(docsDir, base+"_ops.md"), buildOpsPage(spec, docsDir)) + WriteFile(filepath.Join(docsDir, base+"_params.md"), buildParamsLandingPage(spec)) for _, srName := range CollectSubresources(spec) { srBase := fmt.Sprintf("%s_%s", base, Slug(srName)) - srNav := fmt.Sprintf("[%s (основной)](%s.md) | [Operations](%s_ops.md) | [%s](%s.md) | [Example](%s_example.md)", - spec.ServiceDisplayName, base, base, Capitalize(srName), srBase, srBase) - WriteFile(filepath.Join(docsDir, srBase+".md"), buildSubresourcePage(spec, srName, srNav)) - WriteFile(filepath.Join(docsDir, srBase+"_example.md"), buildSubresourceExamplePage(spec, srName, srNav, version, apiEndpoint, providerSource)) + WriteFile(filepath.Join(docsDir, srBase+".md"), buildSubresourcePage(spec, srName)) + WriteFile(filepath.Join(docsDir, srBase+"_example.md"), buildSubresourceExamplePage(spec, srName, version, apiEndpoint, providerSource)) } } @@ -123,17 +114,17 @@ func FindSubresourceParams(ops []types.OperationSpec, srName, action string) []t // ===== internal helpers ===== -func buildHeader(spec types.ServiceSpec, nav string) string { +func buildHeader(spec types.ServiceSpec) string { name := spec.ServiceDisplayName if name == "" { name = spec.Name } - return fmt.Sprintf("# Resource nubes_%s · Service ID: %d · Service Name: %s\n\n%s\n\n", spec.Name, spec.ServiceID, name, nav) + return fmt.Sprintf("# Resource nubes_%s · Service ID: %d · Service Name: %s\n\n", spec.Name, spec.ServiceID, name) } -func buildManualPage(spec types.ServiceSpec, nav string) string { +func buildManualPage(spec types.ServiceSpec) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## MAN\n\n") man := strings.TrimSpace(spec.ServiceMan) if man == "" { @@ -184,9 +175,9 @@ func htmlToMarkdown(s string) string { return strings.TrimSpace(s) } -func buildExamplePage(spec types.ServiceSpec, nav, version string, apiEndpoint string, providerSource string) string { +func buildExamplePage(spec types.ServiceSpec, version string, apiEndpoint string, providerSource string) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString(fmt.Sprintf("## Minimal example — only required parameters\n\n")) b.WriteString("```hcl\n") b.WriteString(minimalExampleBlock(spec, version, apiEndpoint, providerSource)) @@ -281,9 +272,9 @@ func minimalExampleBlock(spec types.ServiceSpec, version string, apiEndpoint str return b.String() } -func buildCreateParamsPage(spec types.ServiceSpec, nav string) string { +func buildCreateParamsPage(spec types.ServiceSpec) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## Create params\n\n") createParams := FindParams(spec.Operations, "create") requiredParams, defaultParams := SplitParams(createParams) @@ -322,18 +313,18 @@ func buildCreateParamsPage(spec types.ServiceSpec, nav string) string { return b.String() } -func buildModifyParamsPage(spec types.ServiceSpec, nav string) string { +func buildModifyParamsPage(spec types.ServiceSpec) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## Modify params\n\n") modifyParams := FindParams(spec.Operations, "modify") b.WriteString(renderModifyTable(modifyParams)) return b.String() } -func buildOutputsPage(spec types.ServiceSpec, nav string) string { +func buildOutputsPage(spec types.ServiceSpec) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## Output params\n\n") if len(spec.Outputs.Params) == 0 { b.WriteString("None.\n") @@ -406,9 +397,9 @@ func containsString(values []string, target string) bool { return false } -func buildOpsPage(spec types.ServiceSpec, nav, docsDir string) string { +func buildOpsPage(spec types.ServiceSpec, docsDir string) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## Operations\n\n") for _, op := range spec.Operations { name := op.Name @@ -454,21 +445,20 @@ func buildOpsPage(spec types.ServiceSpec, nav, docsDir string) string { return b.String() } -func buildParamsLandingPage(spec types.ServiceSpec, nav string) string { +func buildParamsLandingPage(spec types.ServiceSpec) string { var b strings.Builder - b.WriteString(buildHeader(spec, nav)) + b.WriteString(buildHeader(spec)) b.WriteString("## Parameters\n\n") b.WriteString(fmt.Sprintf("- [Create params](%s_params_create.md)\n", spec.Name)) b.WriteString(fmt.Sprintf("- [Modify params](%s_params_modify.md)\n", spec.Name)) return b.String() } -func buildSubresourcePage(spec types.ServiceSpec, srName string, nav string) string { +func buildSubresourcePage(spec types.ServiceSpec, srName string) string { var b strings.Builder srResourceName := fmt.Sprintf("nubes_%s_%s", spec.Name, Slug(srName)) b.WriteString(fmt.Sprintf("# Resource %s\n\n", srResourceName)) b.WriteString(fmt.Sprintf("Service: `nubes_%s` (ID: %d)\n\n", spec.Name, spec.ServiceID)) - b.WriteString(nav + "\n\n") createParams := FindSubresourceParams(spec.Operations, srName, "create") b.WriteString("## Create params\n\n") @@ -501,12 +491,11 @@ func buildSubresourcePage(spec types.ServiceSpec, srName string, nav string) str return b.String() } -func buildSubresourceExamplePage(spec types.ServiceSpec, srName string, nav string, version string, apiEndpoint string, providerSource string) string { +func buildSubresourceExamplePage(spec types.ServiceSpec, srName string, version string, apiEndpoint string, providerSource string) string { var b strings.Builder srResourceName := fmt.Sprintf("nubes_%s_%s", spec.Name, Slug(srName)) b.WriteString(fmt.Sprintf("# Resource %s — Example\n\n", srResourceName)) b.WriteString(fmt.Sprintf("Service: `nubes_%s` (ID: %d)\n\n", spec.Name, spec.ServiceID)) - b.WriteString(nav + "\n\n") b.WriteString(fmt.Sprintf("## Copy-ready manifest (`%s_%s_main.tf`)\n\n", spec.Name, Slug(srName))) b.WriteString("```hcl\n") @@ -1057,7 +1046,7 @@ func serviceCategory(name string) string { "s3": "Хранилище", "s3bucket": "Хранилище", "nextcloud": "Хранилище", "k8s_velero": "K8s", "k8s_sthutrval_cluster": "K8s", "k8s_openbao": "K8s", "vc_mgmt_sthutrval_cluster": "K8s", - "vc_org": "VMware", "vc_vdc": "VMware", "vc_nsxt": "VMware", + "vc_org": "VMware", "vc_vdc": "VMware", "vc_nsxt": "VMware", "vcexternalip": "VMware", "vapp": "VMware", "vc_vm_v2": "VMware", "vc_vm_v3": "VMware", "vc_vdc_group": "VMware", "flask": "Приложения", "nodejs": "Приложения", "lucee": "Приложения", @@ -1065,7 +1054,7 @@ func serviceCategory(name string) string { "pgadmin": "Приложения", "harbor": "Приложения", "akhq": "Приложения", "llm_ai": "Приложения", "template": "Приложения", "dummy": "Приложения", "valo_tenant": "Приложения", - "zones_v2": "Сеть", "dnsrecord": "Сеть", + "zones_v2": "Сеть", "dnsrecord": "Сеть", } if cat, ok := cats[name]; ok { return cat