
π Links
π Table of Contents
β
Requirements
π Migration to v1
β οΈ Warning: Always backup your state file before migrating!
See MIGRATION GUIDE for full instructions.
Migration Steps
Step 1: Upgrade provider version
terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "1.5.0"
}
}
}
provider "outscale" {
# Configuration
}
terraform init -upgrade
Step 2: Clean up state & configuration
Linux
sed -i 's/outscale_volumes_link/outscale_volume_link/g' terraform.tfstate
# + Other sed commands
macOS
sed -i='' 's/outscale_volumes_link/outscale_volume_link/g' terraform.tfstate
# + Other sed commands
Step 3: Refresh
terraform refresh
π₯ Breaking Changes
β οΈ Important:
There is a breaking change when creating an access_key without expiration date in versions < v0.9.0.
See Issue #342.
π Using the Provider
terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "1.5.0"
}
}
}
provider "outscale" {
# Configuration options
}
terraform init
terraform plan
With OpenTofu
terraform {
required_providers {
outscale = {
source = "outscale/outscale"
version = "1.5.0"
}
}
}
provider "outscale" {
# Configuration options
}
tofu init
tofu plan
π See OpenTofu migration guide.
βοΈ Provider Configuration
Starting from version 1.4.0, the provider supports per-service configuration using api and oks blocks. This allows you to specify different endpoints, regions, and authentication settings for the Outscale API and OKS API independently.
Basic Configuration
provider "outscale" {
access_key_id = "your-access-key"
secret_key_id = "your-secret-key"
api {
endpoint = "https://api.eu-west-2.outscale.com"
region = "eu-west-2"
x509_cert_path = "/path/to/cert.pem"
x509_key_path = "/path/to/key.pem"
insecure = false
}
oks {
endpoint = "https://api.eu-west-2.oks.outscale.com/api/v2"
region = "eu-west-2"
}
}
Migration from Deprecated Attributes
β οΈ Deprecation: The following top-level attributes are deprecated and will be removed in the next major version. Please migrate to the new per-service configuration blocks.
| Deprecated Attribute |
Replacement |
region |
api { region = "..." } and/or oks { region = "..." } |
endpoints { api = "..." } |
api { endpoint = "..." } |
endpoints { oks = "..." } |
oks { endpoint = "..." } |
x509_cert_path |
api { x509_cert_path = "..." } |
x509_key_path |
api { x509_key_path = "..." } |
insecure |
api { insecure = true } |
π Proxy Configuration
Linux/macOS
export HTTPS_PROXY=http://192.168.1.24:3128
Windows
set HTTPS_PROXY=http://192.168.1.24:3128
π x509 Authentication
β οΈ Deprecation: Top-level x509_cert_path and x509_key_path attributes are deprecated. Use the api block configuration instead.
provider "outscale" {
api {
x509_cert_path = "/myrepository/certificate/client_ca.crt"
x509_key_path = "/myrepository/certificate/client_ca.key"
}
}
Or set environment variables:
export OUTSCALE_X509CERT=/myrepository/certificate/client_ca.crt
export OUTSCALE_X509KEY=/myrepository/certificate/client_ca.key
π Building the Provider
Clone and build:
git clone --branch v1.5.0 https://github.com/outscale/terraform-provider-outscale
cd terraform-provider-outscale
go build -o terraform-provider-outscale_v1.5.0
π¦ Using the Built Provider
After building the provider manually, install it locally depending on your platform and tooling:
On Linux
1. Download and install [Terraform](https://www.terraform.io/downloads.html).
- Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.terraform.io/outscale/outscale/1.5.0/linux_amd64
mv terraform-provider-outscale_v1.5.0 terraform.d/plugins/registry.terraform.io/outscale/outscale/1.5.0/linux_amd64/
- Initialize Terraform:
terraform init
- Plan your Terraform configuration:
terraform plan
On macOS
1. Download and install [Terraform](https://www.terraform.io/downloads.html).
- Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.terraform.io/outscale/outscale/1.5.0/darwin_arm64
mv terraform-provider-outscale_v1.5.0 terraform.d/plugins/registry.terraform.io/outscale/outscale/1.5.0/darwin_arm64/
- Initialize Terraform:
terraform init
- Plan your Terraform configuration:
terraform plan
For OpenTofu
On Linux
1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/deb/).
- Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.5.0/linux_amd64
mv terraform-provider-outscale_v1.5.0 terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.5.0/linux_amd64/
- Initialize OpenTofu:
tofu init
- Plan your configuration:
tofu plan
On macOS
1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/homebrew/).
- Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.5.0/darwin_arm64
mv terraform-provider-outscale_v1.5.0 terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.5.0/darwin_arm64/
- Initialize OpenTofu:
tofu init
- Plan your configuration:
tofu plan
π€ Contributing
See CONTRIBUTING.md.
π Building the Documentation
Requirements:
make doc