Jump toUpdate content

Terraform for Scaleway - Quickstart

Reviewed on 24 October 2023Published on 24 October 2023

Terraform is an Infrastructure as Code (IAC) software environment tool that allows you to easily build and maintain your cloud resources. You can use it to safely and efficiently deploy Scaleway resources in a declarative way.

Check out the Scaleway Terraform registry documentation for more information.

Requirements:

Creating and Deploying Scaleway resources using Terraform

For the sake of this example, we are going to create a Kubernetes Kapsule cluster

Creating the Terraform configuration file

  1. Create a new file called main.tf in a new folder.

  2. Open the file in a code editor and paste the following block to define Scaleway as the provider for this deployment:

    terraform {
    required_providers {
    scaleway = {
    source = "scaleway/scaleway"
    }
    }
    required_version = ">= 0.13"
    }
  3. Add the following block and replace the placeholder with the Project ID in which you want to create resources:

    variable "project_id" {
    type = string
    description = "<PROJECT_ID>"
    }
  4. Add the following blocks to create a Private Network, a Kubernetes cluster and its associated pool:

    resource "scaleway_vpc_private_network" "my-pn" {
    name = "my-private-network"
    }
    resource "scaleway_k8s_cluster" "my-cluster" {
    name = "my-cluster"
    type = "kapsule"
    version = "1.28.2"
    cni = "cilium"
    private_network_id = scaleway_vpc_private_network.my-pn.id
    delete_additional_resources = false
    }
    resource "scaleway_k8s_pool" "my-pool" {
    cluster_id = scaleway_k8s_cluster.my-cluster.id
    name = "my-pool"
    node_type = "DEV1-M"
    size = 1
    min_size = 0
    max_size = 1
    autoscaling = true
    autohealing = true
    }
    Note:

    Refer to the Scaleway provider documentation on the Terraform Registry to learn how to deploy other resources.

  5. Save your changes.

Your configuration is now ready to be deployed on Scaleway’s infrastructure.

Deploying your configuration using Terraform

  1. Open a terminal, access the folder you just created and run the following command to initialize Terraform in this folder:
    terraform init
  2. Run the following command to display the actions that Terraform will perform:
    terraform plan
  3. Review the deployment plan to make sure it matches the desired configuration.
  4. Run the following command to deploy your resources:
    terraform apply

Once the deployment is complete, log in to the Scaleway console to see the resources you have just created.

Deleting Scaleway resources using Terraform

  1. Open a terminal and access the folder containing the Terraform configuration you want to delete.

  2. Run the command below to delete the resources stated in the Terraform configuration file:

    terraform destroy
    Important:

    You can only delete resources created with Terraform and that are described in the configuration file.

A Destroy complete! Resources: X destroyed. message appears, your Scaleway resources are now deleted.