Terraform As A Service(TAS)

Terraform allows to build, version and manage your infrastructure within the Infrastructure as a Code approach. The infrastructure it is able to manage can include both low-level and high-level components. This provides a wide range of opportunities for EPAM Cloud users.

You can find more details on Terraform product on the Terraform official page.

In EPAM Cloud, there are two Terraform usage options:

  • 1. Uisng EPAM Cloud Provider for Terraform which allowed users to perform basic infrastructure management operations in all clouds, supported by Orchestrator (both private and public). You can find more details on the solution here.
  • 2. Using Terraform as a Service which enables full-scale Terraform functionality via EPAM Orchestrator UI and CLI, for public clouds only. All the details are given further on this page.

Have a Question?

The current page gives the general information on the service and the main workflows. However, while working with the services, our users encounter new questions they need assistance with. The most frequently asked questions on EPAM Cloud Services are gathered on the Cloud Services FAQ page.
Visit the page to check whether we have a ready answer for your question.

Related CLI Commands

The table below provides the list of service-related commands and their descriptions:

Command Short Command Description
or2-manage-service...-s terraform -a or2ms...-s terraform -a Activates the Terraform service in the specified project and region
or2-terraform (or2ter) ...-a action or2ter ...-a action Manages and applies Terraform templates

Service Activation

To start the Terraform service, run the or2-manage-service (or2ms) Maestro CLI command with the --action activate, indicating the -p project and the -r region where you want to activate it.

or2ms -s terraform -p project -r region -a activate

Once the command is invoked, Orchestrator configures your project account in the selected cloud so that the Terraform could be used properly.

Service Manipulations

EPAM Orchestrator supports the following commands for Terraform manipulations:

  • To upload and validate a terraform template, use the or2ter command with the --action upload parameter::
or2ter -a upload -p project -n template_name -f file_path -r region -d description

The template is stored in EPAM Orchestrator's S3 bucket in AWS.

If you do not need the template to be validated, add the -v/--skip-validation flag to the command.

If you want to change anything in the infrastructure created with a Terraform template, you have to change the template. After that, upload the template file again with the -o/--override-existing-template flag and repeat the applying procedure. Terraform templates for AWS must have virtualization zone specified explicitly.
  • To describe the templates, run the or2-terraform command with the --action describe parameter
or2ter -a describe -p project
  • To plan the template running, run the or2-terraform command with the --action plan parameter:
or2ter -a plan -p project -n template_name
  • To apply the template, run the or2ter command with the --action apply parameter:
or2ter -a apply -p project -n template_name
  • To review the events related to Terraform events, use the or2audit command with the --group TERRAFORM parameter:
or2audit -p project -g terraform
  • To destroy the created infrastructure, run the or2-terraform command with the --action destroy parameter:
or2ter -a destroy -p project -n template_name
  • To delete a template, run the or2-terraform command with the --action delete parameter:
or2ter -a delete -p project -n template_name
  • To deactivate the service, run the or2ms command with the --action deactivate parameter:
or2ms -a deactivate -p project -s terraform

Web UI

The Terraform wizard on the Cloud Dashboard allows performing almost the same set of actions, as the Maestro CLI, except for activating and deactivating the service. You can upload and and manage templates as well as plan, apply them, and destroy the environment created by Terraform.

After the infrastructure has been deployed, you can browse the instances on the Management page, clicking Find by and choosing Terraform template. Here, you can specify the full template name or its part.

The Audit page allows to see all events in your infrastructure. You can use the TERRAFORM group in the Find By filter to retrieve Terraform-related events.

Pricing

The service is provided for free. Project costs are only affected by the changes in resources managed with the help of Terraform.

References

More information on the Terraform as a Service can be found in the EPAM Cloud Services Guide. For detailed description of the Maestro CLI commands used to manage the Terraform Service, refer to the Maestro CLI User Guide.