---
description: |
    The Scaleway Packer builder is able to create new images for use with Scaleway
    BareMetal and Virtual cloud server. The builder takes a source image, runs any
    provisioning necessary on the image after launching it, then snapshots it into
    a reusable image. This reusable image can then be used as the foundation of new
    servers that are launched within Scaleway.
layout: docs
page_title: 'Scaleway - Builders'
sidebar_current: 'docs-builders-scaleway'
---

# Scaleway Builder

Type: `scaleway`

The `scaleway` Packer builder is able to create new images for use with
[Scaleway](https://www.scaleway.com). The builder takes a source image, runs
any provisioning necessary on the image after launching it, then snapshots it
into a reusable image. This reusable image can then be used as the foundation
of new servers that are launched within Scaleway.

The builder does *not* manage snapshots. Once it creates an image, it is up to
you to use it or delete it.

## Configuration Reference

There are many configuration options available for the builder. They are
segmented below into two categories: required and optional parameters. Within
each category, the available configuration keys are alphabetized.

In addition to the options listed here, a
[communicator](/docs/templates/communicator.html) can be configured for this
builder.

### Required:

-   `organization_id` (string) - The organization id to use to identify your
    organization. It can also be specified via environment variable
    `SCALEWAY_ORGANIZATION`. Your organization id is available in the
    ["Account" section](https://cloud.scaleway.com/#/account) of the
    control panel.
    Previously named: `api_access_key` with environment variable: `SCALEWAY_API_ACCESS_KEY`

-   `api_token` (string) - The token to use to authenticate with your account.
    It can also be specified via environment variable `SCALEWAY_API_TOKEN`. You
    can see and generate tokens in the ["Credentials"
    section](https://cloud.scaleway.com/#/credentials) of the control panel.

-   `image` (string) - The UUID of the base image to use. This is the image
    that will be used to launch a new server and provision it. See
    [the images list](https://api-marketplace.scaleway.com/images)
    get the complete list of the accepted image UUID.

-   `region` (string) - The name of the region to launch the server in (`par1`
    or `ams1`). Consequently, this is the region where the snapshot will be
    available.

-   `commercial_type` (string) - The name of the server commercial type:
    `ARM64-128GB`, `ARM64-16GB`, `ARM64-2GB`, `ARM64-32GB`, `ARM64-4GB`,
    `ARM64-64GB`, `ARM64-8GB`, `C1`, `C2L`, `C2M`, `C2S`, `START1-L`,
    `START1-M`, `START1-S`, `START1-XS`, `X64-120GB`, `X64-15GB`, `X64-30GB`,
    `X64-60GB`

### Optional:

-   `server_name` (string) - The name assigned to the server. Default
    `packer-UUID`

-   `image_name` (string) - The name of the resulting image that will appear in
    your account. Default `packer-TIMESTAMP`

-   `snapshot_name` (string) - The name of the resulting snapshot that will
    appear in your account. Default `packer-TIMESTAMP`

-   `boottype` (string) - The type of boot, can be either `local` or
    `bootscript`. Default `bootscript`

-   `bootscript` (string) - The id of an existing bootscript to use when
    booting the server.

-   `remove_volume` (boolean) - Force Packer to delete volume associated with 
    the resulting snapshot after the build. Default `false`.

## Basic Example

Here is a basic example. It is completely valid as soon as you enter your own
access tokens:

```json
{
  "type": "scaleway",
  "organization_id": "YOUR ORGANIZATION ID",
  "api_token": "YOUR TOKEN",
  "image": "UUID OF THE BASE IMAGE",
  "region": "par1",
  "commercial_type": "START1-S",
  "ssh_username": "root",
  "ssh_private_key_file": "~/.ssh/id_rsa"
}
```

When you do not specified the `ssh_private_key_file`, a temporarily SSH keypair
is generated to connect the server. This key will only allow the `root` user to
connect the server.
