TOOLS: - yaml-generator: types (API↔YAML), client (proxy/REST + retry) - resource-generator: types (3 resource kinds), loader (pipeline), writers (generated files), params (merge/CreateOnly/ForceNew) - docs-generator, ops-generator — already documented provider: - main.go: entrypoint + build instructions - core: API client (GetInstance, RunOperation, GetInstanceState) - provider: provider registration (New, Resources, Schema) - resources_core: shared CRUD, state refresh, params, validation
33 lines
782 B
Go
33 lines
782 B
Go
// Terraform-провайдер Nubes Cloud.
|
|
//
|
|
// Регистрирует провайдер в hashicorp/terraform-plugin-framework.
|
|
// Все ресурсы подключаются через resources_gen.AllResources().
|
|
//
|
|
// Сборка: go build -o terraform-provider-nubes .
|
|
// Версия задаётся через ldflags: -ldflags "-X main.version=X.Y.Z"
|
|
package main
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"terraform-provider-nubes/internal/provider"
|
|
|
|
"github.com/hashicorp/terraform-plugin-framework/providerserver"
|
|
)
|
|
|
|
var (
|
|
version string = "5.0.75"
|
|
)
|
|
|
|
func main() {
|
|
opts := providerserver.ServeOpts{
|
|
Address: "terra.k8c.ru/nubes-test/nubes",
|
|
}
|
|
|
|
err := providerserver.Serve(context.Background(), provider.New(version), opts)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|