Skip to content

Documentation · Infrastructure runs

The engine that executes your runs

Hosted runs execute OpenTofu, and there is no setting that changes it. What that licensing constraint does and does not mean for your configuration.

Hosted runs execute OpenTofu. It is the only engine, and there is no setting that changes it.

That is a licensing constraint rather than a preference. Terraform 1.6 changed licence to the Business Source Licence, whose Additional Use Grant excludes offering the licensed software on a hosted basis in competition with its paid versions — which is exactly what a platform like this one is. So no hosted run executes a terraform binary, and none will. A run on your own agent executes OpenTofu too.

The minimum version we accept is 1.6.0, OpenTofu's earliest release.

Almost nothing, which is the point.

Your configuration is Terraform configuration. The language, the file format, the state format and the API are not the licensed software — the grant restricts what we may do with their binary, and says nothing about the configuration you write or the tooling you run locally. You keep writing HCL, and terraform on your workstation keeps working against us, because at the API boundary there is no difference to see.

The differences that do exist are OpenTofu's rather than ours, and they are the ones its own compatibility documentation lists. In practice the two that come up are the provider registry a bare init resolves against, and a small number of newer Terraform-only language features.

The constraint is on what we execute. Nothing stops you running genuine Terraform against your own infrastructure under your own grant — including from a CI job on our runners, which is your use of the binary and not ours.

We wrote up what the grant does and does not restrict in Why we run OpenTofu and not Terraform.