Skip to content

outscale/terraform-outscale-nets

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

12 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

terraform-outscale-nets

Project Stage


πŸ“„ Table of Contents


🧭 Overview

terraform-outscale-nets is a Terraform/OpenTofu module for deploying a vpc and the necessary components (subnets, internet gateway, ...).

Key features:

  • public/private/storage subnets
  • internet service
  • nat service (one per private subnet or not)
  • kubernetes tags if you want use the Cloud provider OSC

βœ… Requirements

  • Go

πŸš€ Usage

module "terraform-outscale-nets" {
  source = "git@github.com:outscale/terraform-outscale-nets.git" // you can use a specific version

  --- vars ---
}

πŸ›  Configuration

You need to specify the Access Key Id and Secret Key Id in the variables or use the environment variables


πŸ’‘ Examples

See example folder


πŸ“œ License

terraform-outscale-nets is released under the < License Name > license. Β© 2025 Outscale SAS See LICENSE for full details.


🀝 Contributing

We welcome contributions!

Please read our Contributing Guidelines and Code of Conduct before submitting a pull request.


Requirements

Name Version
terraform >= 1.3.0
outscale 1.2.0

Providers

Name Version
outscale 1.2.0

Modules

No modules.

Resources

Name Type
outscale_internet_service.internet_service resource
outscale_internet_service_link.internet_service_link resource
outscale_nat_service.private_nat_service resource
outscale_nat_service.storage_nat_service resource
outscale_net.net resource
outscale_public_ip.nat_service_private_subnet_public_ip resource
outscale_public_ip.nat_service_storage_subnet_public_ip resource
outscale_route.private_route_to_nat_service resource
outscale_route.route_to_internet_service resource
outscale_route.storage_route_to_nat_service resource
outscale_route_table.private_route_table resource
outscale_route_table.public_route_table resource
outscale_route_table.storage_route_table resource
outscale_route_table_link.private_route_table_link resource
outscale_route_table_link.public_route_table_link resource
outscale_route_table_link.storage_route_table_link resource
outscale_subnet.private_subnet resource
outscale_subnet.public_subnet resource
outscale_subnet.storage_subnet resource

Inputs

Name Description Type Default Required
cidr The CIDR block for the net. string "10.0.0.0/16" no
enable_internet_service Whether to create an internet service. bool true no
enable_private_subnets_nat_service Whether to enable NAT service for private subnets. bool true no
enable_storage_subnets_nat_service Whether to enable NAT service for storage subnets. bool false no
internet_service_tags A map of tags to assign to the internet service.
list(object({
key = string
value = string
}))
[] no
kubernetes_cluster_name The name of the Kubernetes cluster. string "" no
kubernetes_support Whether to enable Kubernetes support. bool false no
name The name of the net. string "" no
nat_service_per_private_subnet Whether to create a NAT service in each subregion. bool false no
nat_service_per_storage_subnet Whether to create a NAT service in each subregion for storage subnets. bool false no
net_tags A map of tags to assign to the net.
list(object({
key = string
value = string
}))
[] no
osc_access_key The Outscale access key. string "" no
osc_region The Outscale region to use. string "eu-west-2" no
osc_secret_key The Outscale secret key. string "" no
private_nat_gateway_tags A map of tags to assign to the private NAT gateways.
list(object({
key = string
value = string
}))
[] no
private_route_table_tags A map of tags to assign to the private route tables.
list(object({
key = string
value = string
}))
[] no
private_subnet_tags A map of tags to assign to the private subnets.
list(object({
key = string
value = string
}))
[] no
private_subnets A list of private subnet CIDR blocks.
list(object({
cidr = string
az = string
}))
[
{
"az": "a",
"cidr": "10.0.0.0/24"
},
{
"az": "b",
"cidr": "10.0.1.0/24"
},
{
"az": "c",
"cidr": "10.0.2.0/24"
}
]
no
public_route_table_tags A map of tags to assign to the public route tables.
list(object({
key = string
value = string
}))
[] no
public_subnet_tags A map of tags to assign to the public subnets.
list(object({
key = string
value = string
}))
[] no
public_subnets A list of public subnet CIDR blocks.
list(object({
cidr = string
az = string
}))
[
{
"az": "a",
"cidr": "10.0.100.0/24"
},
{
"az": "b",
"cidr": "10.0.101.0/24"
},
{
"az": "c",
"cidr": "10.0.102.0/24"
}
]
no
storage_nat_gateway_tags A map of tags to assign to the storage NAT gateways.
list(object({
key = string
value = string
}))
[] no
storage_route_table_tags A map of tags to assign to the storage route tables.
list(object({
key = string
value = string
}))
[] no
storage_subnet_tags A map of tags to assign to the storage subnets.
list(object({
key = string
value = string
}))
[] no
storage_subnets A list of storage subnet CIDR blocks.
list(object({
cidr = string
az = string
}))
[] no
tags A map of tags to assign to the net and its resources.
list(object({
key = string
value = string
}))
[] no
tenancy The tenancy of the net. Can be 'default' or 'dedicated'. string "default" no

Outputs

Name Description
net_cidr_block The CIDR block of the Outscale Net.
net_id The ID of the Outscale Net.
private_subnets List of private subnet IDs.
public_ip_for_private_nat_service List of public IPs for NAT service in private subnets.
public_ip_for_storage_nat_service List of public IPs for NAT service in storage subnets.
public_subnets List of public subnet IDs.
storage_subnets List of storage subnet IDs.

About

Terraform module to create OUTSCALE nets resources

Topics

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Contributors 2

  •  
  •