Migrating from Terraform Cloud
Introduction
If you are currently using Terraform Cloud and looking into alternatives, the information below will give you the full picture of how Scalr compares to Terraform Cloud in terms of features and pricing. The guide also covers migration methods ranging from fully automated to a manual process depending on your needs.
Terraform Cloud Feature Comparison
Pipeline
Feature | Scalr | TFC/HCP |
---|---|---|
IaC Tooling | Terraform, OpenTofu, Terragrunt | Terraform |
Workspace Types | Native Terraform CLI, VCS based (GitOps), No Code, API-Driven | Native Terraform CLI, VCS based (GitOps), No Code, API-Driven |
Support for Atlantis Style Workflows | Yes | No |
Remote Backend Options | Scalr, All supported backend types | TFC Only |
Drift Detection | Yes | Yes |
Run Triggers | Yes | Yes |
Ephemeral Workspaces | Yes | Yes |
Comments Posted to PR | Yes | No |
Run Tasks | Yes, see list here | Yes, see list here |
Security
Feature | Scalr | TFC/HCP |
---|---|---|
State Storage | Scalr, GCP Bucket, S3 Bucket | TFC Only |
Audit Logs | Yes | Yes |
OIDC Authentication to cloud providers (Dynamic Credentials) | Yes | Yes |
RBAC | System + Granular User Defined Roles | System Only |
SAML 2.0 Support | Yes | Yes |
SCIM Protocol Support | Yes | No |
Policy as Code | OPA & Checkov | OPA & Sentinel |
Self-Hosted Agents | Yes, for runs and VCS connections | Runs only |
Integrations
Feature | Scalr | TFC/HCP |
---|---|---|
All Major VCS Providers | Yes | Yes |
Slack | Yes - Notifications & Approvals | |
Teams | Yes - Notifications & Approvals | |
Datadog | Yes - Audit Logs, Events, & Metrics | |
Splunk | No | Yes |
AWS EventBridge | Yes - Audit Logs, Events, & Metrics | |
Checkov | Yes | |
OPA | Yes | Yes |
Infracost | Yes | Yes |
OpenMetrics | Yes | |
Terragrunt | Yes | No |
Registries
Feature | Scalr | TFC/HCP |
---|---|---|
Module Registry | Yes | Yes |
Provider Registry | No - Coming Soon | Yes |
Reporting
Feature | Scalr | TFC/HCP |
---|---|---|
Reporting | Yes | Yes |
Cross Account Workspace Dashboard | Yes | No |
Cross Account Runs Dashboard | Yes | No |
Pricing Comparison
Component | Scalr | TFC |
---|---|---|
Concurrency | Starts at 5, increased free of charge as customers grow | Standard Tier: 3, Plus Tier: 10 |
Pricing Unit | Per Run - No other factors in price | Per Resource Under Management |
Support | Included in price (24x7x365) | Tiered Options |
Feature Gating | All features included on the paid and free plan | Different feature sets per tier |
Scalr Cost Estimation
Interested in migrating to Scalr, but not sure what it will cost you? This script can be used to call the TFC API to get the total number of runs that have ever been executed in your TFC account. Unfortunately, the API doesn't allow for date filters so you will still nee to estimate the per month or year usage.
Scalr does not charge for all runs, see the following as a guideline to understand what runs you will not be charged for:
- Runs executed based on the drift detector schedule.
- Runs that use local execution mode in the workspace.
- Runs that are stopped by an OPA policy in the pre-plan phase.
- Runs that Checkov stops due to security violations in the pre-plan phase.
- All runs that fail during the Terraform init due to. A couple examples of this, but not limited to are:
- Missing folder or var file
- Terraform code parsing errors
- Connectivity errors (registries, docker, etc)
- Broken provider configs errors
- Runs that fail during the cost-estimate phase.
- Runs failed due to an internal Scalr error.
Migration Guide
Before you migrate from TFC to Scalr, it's important to understand the terminology of both products so it's easier to understand what a migration would look like:
TFC Term | Scalr Term |
---|---|
Organization | Equivalent to a Scalr environment. Environments are logical groupings of workspaces, teams, users, provider configurations, policies, and more. |
Workspaces | Equivalent to a Scalr workspace. This is where end users mainly operate by executing, storing state, and more. |
Terraform & Environment Variables | Equivalent to Terraform and shell variables. |
State Files | Same as a Scalr state file. |
Before Migrating
Regardless of the method that is use, the following steps should be taken before starting the migration:
- Stop any runs or processes that might start runs in TFC to avoid runs executing in two places.
- Add or amend the remote backend settings in the Terraform configuration files if the Terraform/Tofu CLI will be needed:
terraform {
backend "remote" {
hostname = "<account-name>.scalr.io"
organization = "<scalr-environment-name>"
workspaces {
name = "<workspace-name>"
}
}
}
Terraform Cloud Migration Module
If you are currently using Terraform Cloud or Enterprise and planning to migrate to Scalr, the quickest way to do this is by using our TFC migration module here. The module will migrate the following objects:
- Organizations - Will be migrated into Scalr environments.
- Workspaces - Will be migrated into Scalr workspaces. Only VCS-based workspaces will be migrated. CLI-driven workspaces have to be migrated manually.
- Workspace variables - Terraform and non-sensitive environment variables will be created as Terraform and shell variables in Scalr.
- State files - The current workspace state file will be migrated.
See the full description and instructions in the module readme.
Video Tutorial: Migrating from Terraform Cloud
Watch our comprehensive migration guide: Migrating from Terraform Cloud
Migrating with the Terraform CLI
If you would prefer to migrate workspaces one by one, this can be done with the Terraform CLI:
First, pull down the state from Terraform Cloud:
terraform state pull > terraform.state
Next, get the API token from Scalr:
terraform login <account-name>.scalr.io
Update your Terraform code and add Scalr as the new cloud backend. You will need to add the hostname field:
terraform {
cloud {
hostname = "<account-name>.scalr.io"
organization = "<environment-id>"
workspaces {
name = "<workspace-name>"
}
}
}
To initialize Scalr as the backend by running:
terraform init
Run the following to push the state into Scalr:
terraform state push terraform.state
Free Migration Period
Scalr offers free migration periods to avoid being charged for two products simultaneously. If interested in applying for the migration period, please open a support ticket with the title "Free migration period" and supply the following:
- TFC renewal date
- Total number of workspaces