Skip to navigationSkip to main contentSkip to footerScaleway Docs

Terraform/OpenTofu for Scaleway - Quickstart

Terraform or OpenTofu 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 or OpenTofu registry documentation for more information.

Before you start

To complete the actions presented below, you must have:

Creating and Deploying Scaleway resources using Terraform/OpenTofu

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

Creating the Terraform/OpenTofu 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/OpenTofu 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 or OpenTofu 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/OpenTofu

  1. Open a terminal, access the folder you just created, and run the following command to initialize Terraform/OpenTofu in this folder:
    terraform init
  2. Run the following command to display the actions that Terraform/OpenTofu 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/OpenTofu

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

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

    terraform destroy
    Important

    You can only delete resources created with Terraform/OpenTofu and described in the configuration file.

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

Still need help?

Create a support ticket
No Results