A Terraform provider for managing Tetrate Service Bridge (TSB) resources — workspaces, gateways, Istio configuration, and more — via the TSB v2 gRPC API.
terraform {
required_providers {
tsb = {
source = "tetratelabs/tsb"
}
}
}
provider "tsb" {
endpoint = "tsb.example.com:443"
organization = "tetrate"
token = var.tsb_token
}All provider settings can also be supplied via environment variables (TSB_ENDPOINT, TSB_TOKEN, TSB_USERNAME, TSB_PASSWORD, TSB_ORG, TSB_CA_FILE, TSB_TLS_INSECURE, TSB_TLS_DISABLED). See examples/provider.tf and docs/index.md for the full set of options.
Resource documentation lives in docs/resources/, with runnable examples under examples/resources/ and end-to-end scenarios under examples/ (e.g. cluster-onboarding, install-gateway, istio-direct).
- Terraform >= 1.0
- Go (see
go.modfor the required version) — only needed to build the provider yourself
make build # compile the plugin into a Terraform filesystem-mirror layout
make test # go test ./...
make generate # regenerate internal/provider/*_gen.go from the TSB v2 API descriptors
make docs # regenerate docs/ from schemas + examples/
make format # gosimports + gofmt + license-header apply
make check # generate + docs + format, then fails if that produced any git diff
make all # generate format build testAfter make build, point a Terraform config's filesystem mirror at the provider/ output directory and run terraform init -upgrade.
Most of internal/provider/ is machine-generated from the TSB v2 API's proto descriptors by cmd/gen-provider — never hand-edit a *_gen.go file; change the generator and re-run make generate instead. See CLAUDE.md for a detailed walkthrough of the generation pipeline and provider architecture.