Skip to content

outscale/terraform-provider-outscale

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

4,354 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

3DS OUTSCALE Terraform Provider

Project Graduated

Terraform

🌐 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.4.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

With Terraform

terraform {
  required_providers {
    outscale = {
      source  = "outscale/outscale"
      version = "1.4.0"
    }
  }
}

provider "outscale" {
  # Configuration options
}
terraform init
terraform plan

With OpenTofu

terraform {
  required_providers {
    outscale = {
      source  = "outscale/outscale"
      version = "1.4.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.4.0 https://github.com/outscale/terraform-provider-outscale
cd terraform-provider-outscale
go build -o terraform-provider-outscale_v1.4.0

πŸ“¦ Using the Built Provider

After building the provider manually, install it locally depending on your platform and tooling:

For Terraform

On Linux 1. Download and install [Terraform](https://www.terraform.io/downloads.html).
  1. Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.terraform.io/outscale/outscale/1.4.0/linux_amd64
mv terraform-provider-outscale_v1.4.0 terraform.d/plugins/registry.terraform.io/outscale/outscale/1.4.0/linux_amd64/
  1. Initialize Terraform:
terraform init
  1. Plan your Terraform configuration:
terraform plan
On macOS 1. Download and install [Terraform](https://www.terraform.io/downloads.html).
  1. Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.terraform.io/outscale/outscale/1.4.0/darwin_arm64
mv terraform-provider-outscale_v1.4.0 terraform.d/plugins/registry.terraform.io/outscale/outscale/1.4.0/darwin_arm64/
  1. Initialize Terraform:
terraform init
  1. Plan your Terraform configuration:
terraform plan

For OpenTofu

On Linux 1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/deb/).
  1. Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.4.0/linux_amd64
mv terraform-provider-outscale_v1.4.0 terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.4.0/linux_amd64/
  1. Initialize OpenTofu:
tofu init
  1. Plan your configuration:
tofu plan
On macOS 1. Download and install [OpenTofu](https://opentofu.org/docs/intro/install/homebrew/).
  1. Move the plugin to the repository:
mkdir -p terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.4.0/darwin_arm64
mv terraform-provider-outscale_v1.4.0 terraform.d/plugins/registry.opentofu.org/outscale/outscale/1.4.0/darwin_arm64/
  1. Initialize OpenTofu:
tofu init
  1. Plan your configuration:
tofu plan

🀝 Contributing

See CONTRIBUTING.md.


πŸ“ Building the Documentation

Requirements:

  • make
  • python3
  • python-venv
make doc

About

Terraform provider for managing OUTSCALE resources.

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Contributors