NavigationContentFooter
Jump toSuggest an edit

Terraform for Scaleway - Quickstart

Reviewed on 14 May 2024Published 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.

Before you start

To complete the actions presented below, you must have:

  • A Scaleway account logged into the console
  • initialized the Scaleway configuration file
  • Installed Terraform

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>"
    }
    Note

    If you do not specify a Project ID, Terraform will use the default Project specified in the Scaleway configuration file.

  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 described in the configuration file.

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

  • Scaleway provider documentation on the Terraform Registry
  • Scaleway modules on Terraform registry
  • Terraform provider Scaleway repository
API DocsScaleway consoleDedibox consoleScaleway LearningScaleway.comPricingBlogCareers
© 2023-2024 – Scaleway