Provisioning · OpenTofu · an agent in your network
Approved changes. Your infrastructure.
Choose a template, get team approval and run the approved version through your own agent. Credentials and infrastructure state stay in your environment.
- Template
- web-tier v3 · git 4e1a9c2
- Account
- 000000000001 · eu-west-1
- Provenance
- panorama:request_id = 8f3c1d2e-…
- Resources
- 12 aws/ec2/instance
- 10:14Submitted by m.kowalski
- 10:31Approved by j.ortiz, team payments
- 10:39Applied by agent-prod-eu · OpenTofu 1.12.9, pinned in the image
The catalog
Approved templates, ready to request.
Browse by category and resource type, then see which accounts can run a template.
- A built-in library covers AWS, Google Cloud and Azure. Enable templates or clone them to customise.
- Your Git templates provide versioned code and typed request forms.
- Team approvals bind to the exact version. Requesters cannot approve their own work.
- step 1Network in 000000000001 · request succeeded
- step 2Database, given the network's subnets · request succeeded
- step 3Service, given the database's address · request succeeded
Blueprints
Request several templates together.
Blueprints connect one template’s outputs to another’s inputs, across the accounts you choose.
- One approval covers the connected steps.
- Each step keeps its own logs and resource provenance.
- Recovery resumes from a failed step. Destruction runs in reverse order.
Import
Record resources built by hand.
Link an existing resource to a template version and team. Keep its import record, owner and history without changing the cloud resource.
- Recorded imports have no drift checks. Drift applies only once a resource is fully managed.
- Full management takes an import-only apply, then a separately approved retag.
- No template for the type? On AWS and Google Cloud the agent generates one for the resource.
- Imported by
- m.kowalski, 2 Oct
- Template
- S3 bucket, logging v2
- Owner
- team platform
- In inventory
- present at the last read
The agent
Your network, credentials and state.
The agent connects outbound to collect approved work. A separate worker runs OpenTofu without access to the platform token.
- AWS, Google Cloud and Azure agents use your credentials and keep state in your S3 bucket, Cloud Storage bucket or Azure storage container.
- AWS roles per template can restrict each request to its documented policy.
- Partial applies stop for review. State is preserved for recovery.
Provisioning capabilities
Approvals and resource records
- Versioned templates, typed inputs, approvals, provenance tags, drift detection and scrubbed execution logs
- Record existing resources with a template, owner and history; no cloud writes or drift checks until fully managed
- Bring an import under full management: import-only apply, approved retag, release from state
- Generated templates for imports on AWS and Google Cloud
- Stop an EC2 instance through an approved request
Your agent and cloud access
- Customer-run agent with a token broker and a separate OpenTofu worker
- Provisioning and destruction through the agent on AWS
- Optional least-privilege AWS roles per template; missing roles fail the request
- Google Cloud agents with provenance labels and Cloud Storage state
- Optional Google Cloud service accounts per template
- Runners for your own templates on AWS, Google Cloud and Azure
- AWS agent installation through a CloudFormation quick-create link
Templates and Blueprints
- Built-in versioned OpenTofu templates; enable or clone to customise
- Library release verification through a network, database and service Blueprint
- Template catalog by category and type, showing eligible accounts
- Connected templates across accounts under one approval; resume failures and destroy in reverse
- Google Cloud templates for storage, messaging, networks, identity, compute and databases
- Azure templates for storage, networks, virtual machines, function apps, databases and AKS
- Library Blueprints for network, database and service, and Kubernetes with Istio
What Provisioning does today.
The rows of the capability matrix for Provisioning, with the same three words the documentation uses.
Provisioning
- Versioned templates, typed inputs, approvals, provenance tags, drift detection and scrubbed execution logs available now
- The customer-run agent: a broker that holds the token and a worker that runs OpenTofu under another user available now
- An OpenTofu apply against a live AWS account: the test estate brought up and torn down through the product's own templates available now
- The library: built-in OpenTofu templates for the AWS types the inventory reads, checked by hash in the agent, enabled for the organisation, cloned to edit, with a notice when a newer release arrives available now
- Each library release runs the small Blueprint — a network, a database and a service — live in a test account, from request to destroy available now
- A role per template on AWS: with the setting on, each request runs as its template's own role, granted only that template's documented policy and the state bucket; a missing role fails the request, never falling back to the agent's identity available now
- The catalog: category, then type, then template, with the accounts whose agent can run each available now
- Blueprints: several templates requested as one run across slots of accounts, one approval bound to the run's expressions, each step a request, resume after a failure and destroy in reverse available now
- Import: a live resource recorded under a template version that declares its type and a team, with its provenance, its owner and its history; nothing is written to the cloud, and drift is not computed until it is fully managed available now
- The agent on Google Cloud: an agent token for a project, Google provenance labels and state in a Cloud Storage bucket available now
- An agent installed in one step for an AWS account the platform already reads, through a CloudFormation quick-create link available now
- Making an import fully managed: an import-only apply into the agent's state, then a separately approved retag, and release from state available now
- Import of a resource no template in the catalog declares, on AWS and Google Cloud: the account's agent generates its template, kept as a private version outside the catalog, and runs it as that resource type's own runner available now
- Google Cloud templates in the library: storage, messaging, networking, identity, compute and clusters, serverless and databases available now
- Azure templates in the library — a private storage account and one for archives, a virtual network with private subnets and one behind a NAT gateway, a private Linux virtual machine and a Spot one, a function app for background work and one for HTTPS callers in named address ranges, a PostgreSQL flexible server for development and a highly available one, a serverless SQL database for development and a zone-redundant one, a private AKS cluster and one answering named networks — each in an existing resource group, each run as its own managed identity with a token of its own, holding only its template's actions, in the subscription the request is for, with OpenTofu state in a storage container of the customer's; each run live through the product on a test subscription available now
- Import's generated template for every Azure type Estate collects in development
- Azure templates of your own, from git or inline, and Blueprints with Azure slots: a request runs on an agent whose runners are scoped to resource groups, and waits, naming the setting, until the account's agent is; an inline source is checked at publish for what the agent refuses — its own sign-in, a renamed provider, provider registration, a resource group made, OpenTofu state read in development
- Blueprints in the library: a network, a database and a service; Kubernetes with an Istio mesh across clusters available now
- A service account per template on Google Cloud, impersonated by the agent, its custom role only the template's documented policy and its own part of the state bucket available now
- Runners for templates of your own: the AWS, Google Cloud and Azure runners modules make one per template, scoped as the library's are, and a template of yours never runs as a library runner available now
- Stopping an EC2 instance through an approved request, from its resource page, verified by the next complete collection available now
- An expiry on a request that opens its destroy request planned
- In-place updates of a provisioned stack not in v1
Evaluate it with your team.
Tell us which clouds you use and what you want to evaluate. Start with a guided demo and discuss access for your team.