Terraform

Securely and efficiently provision and manage Infrastructure as Code with Terraform.

Automate your deployment pipeline

A CI/CD pipeline is often triggered by a change in code, eg. a post-commit hook in git. It makes the merge process easier by offering testing, approval and deployment stages. Take this further by integrating Terraform into your workflow to provision your infrastructure, and use complementary tools like Chef, Puppet or Ansible to configure your applications.

Consistency across environments

You can easily reuse the same templates with slightly different variables. The code can automatically serve as a clear description of the desired state of the infrastructure. As a result, it makes it easier onboard new engineers on the projects.

Keep track of any changes

Development and operational teams are using the same source repository. As a result both teams can review and apply changes to them. This lowers the risk of misunderstanding between teams because they all share the same context and see the same files.

Automate your infrastructure deployment with Terraform

Tightly manage infrastructure

Authentication

To create new key pairs, navigate to the section “API Tokens” under the credentials tab in your Scaleway console. Scaleway offers 3 ways of providing credentials: static credentials, environment variables and shared configuration file.

Go to console

Execution Plans

Terraform has a “planning” phase, where an execution plan is generated. This execution plan will show what Terraform will do when you call the “apply” command. This step can avoid any surprises when Terraform manipulates infrastructure.

Open source

Scaleway Terraform Provider’s plugin is also open source, hosted on Github and maintained by both our DevOps and the community. This plugin is written in Go, feel free to contribute or to request the development of a new feature.

Resource Graph

Terraform builds a graph of all your resources, and parallelizes the creation and modification of any non-dependent resources. As a result, Terraform builds infrastructure as efficiently as possible so you can get insight into dependencies in your infrastructure.

Change Automation

Complex changesets may be applied to your infrastructure with minimal human interaction. With the above execution plan and resource graph, you know exactly what Terraform will change and in what order, avoiding many possible human errors.

Standards compatibility

Scaleway object storage can be used to store your Terraform state. To do so, configure your backend as a S3-backend. Beware that no locking mechanism is yet supported when storing your tfstate file with a AWS S3-compatible bucket. If you need a locking mechanism, you can also use Scaleway Managed Database.

Infrastructure versioning

Your infrastructure is now explicitly defined as a configuration file and, like any other piece of code, you can version your Terraform repository. Adding a versioning strategy will transform your infrastructure management process and every stake holder will be able to commit and review your code.

Syntax

HCL (HashiCorp Configuration Language) is a configuration language built by HashiCorp. The goal of HCL is to build a structured configuration language that is both human and machine friendly for use with command-line tools, but specifically targeted towards DevOps tools, servers, etc.