Terraform module to deploy a completely customizable OpenStack network architecture in a given project. https://ednz.fr
Go to file
2024-04-07 17:41:27 +02:00
.pre-commit-config.yaml feat(initial): add initial version of the openstack lz module 2024-04-07 17:16:00 +02:00
main.tf fix: do not make subnetpool default to avoid permission issues on public cloud 2024-04-07 17:34:22 +02:00
outputs.tf feat(outputs): add conditions to output in case resources aren't being created 2024-04-07 17:41:27 +02:00
README.md feat(initial): add openstack provider version constraint 2024-04-07 17:17:20 +02:00
variables.tf feat(initial): add initial version of the openstack lz module 2024-04-07 17:16:00 +02:00

terraform-openstack-lz

Terraform module to deploy a completely customizable OpenStack

Requirements

Name Version
terraform >= 1.0.0
openstack ~> 1.54

Providers

Name Version
openstack ~> 1.54

Modules

No modules.

Resources

Name Type
openstack_networking_network_v2.backend resource
openstack_networking_network_v2.database resource
openstack_networking_network_v2.frontend resource
openstack_networking_router_interface_v2.backend resource
openstack_networking_router_interface_v2.database resource
openstack_networking_router_interface_v2.frontend resource
openstack_networking_router_v2.this resource
openstack_networking_secgroup_rule_v2.backend_egress resource
openstack_networking_secgroup_rule_v2.backend_ingress resource
openstack_networking_secgroup_rule_v2.database_egress resource
openstack_networking_secgroup_rule_v2.database_ingress resource
openstack_networking_secgroup_rule_v2.frontend_egress resource
openstack_networking_secgroup_rule_v2.frontend_ingress resource
openstack_networking_secgroup_v2.backend resource
openstack_networking_secgroup_v2.database resource
openstack_networking_secgroup_v2.frontend resource
openstack_networking_subnet_v2.backend resource
openstack_networking_subnet_v2.database resource
openstack_networking_subnet_v2.frontend resource
openstack_networking_subnetpool_v2.this resource
openstack_identity_project_v3.this data source

Inputs

Name Description Type Default Required
architecture_tiers The type of architecture.
Can be either 0, 1, 2 or 3.
Tier 0 will not create any subnets or networks.
Tier 1 will only create a single frontend subnet.
Tier 2 will create a frontend and backend subnet.
Tier 3 will create a frontend, backend and database subnet.
number 1 no
attach_to_external Whether the frontend subnet should be routed or not to the external LAN.
This options implies that you have sufficient permissions to configure static route on the backbone infrastructure.
This will create an static route entry in the route table of the backbone router, in order to make your project available from the outside.
bool false no
backend_subnet_prefix_len The prefix length of the backend subnet. Must be between 20 and 32. number 24 no
create_default_secgroups Whether to create default security groups or not.
Depending on your choice of architecture tiering, will create security groups so that each tier can connect to the one below.
Security groups for the database tier will be created for mariadb, postgresql and redis.
A default security group allowing ssh connection will also be created.
bool false no
create_subnetpool Whether the module should create a subnet pool for this project, or use an existing one. bool true no
database_secgroup_strict Defines whether the security groups for the database network should be strict.
In strict mode, egress is only allowed to the backend network.
bool false no
database_subnet_prefix_len The prefix length of the database subnet. Must be between 24 and 32. number 24 no
database_subnetpool_id The id of the subnetpool to create the databse network from.
Since this module can route private subnets to the backbone, it needs to make sure it's not creating overlapping subnets.
string null no
external_network_id The id of the external network to connect the frontend router to. string null no
external_subnet_id The id of the external subnet to connect the frontend router to. string null no
frontend_subnet_prefix_len The prefix length of the frontend subnet. Must be between 20 and 32. number 24 no
project_domain The domain where this project will be created string "default" no
project_name The name of the project string n/a yes
project_tags The tags to append to this project list(string) [] no
public_subnetpool_id The id of the subnetpool to create the public (first 2 tier) networks from.
Since this module can route private subnets to the backbone, it needs to make sure it's not creating overlapping subnets.
string null no
subnetpool_cidr_blocks The CIDR block for the subnet pool list(string)
[
"192.168.0.0/21"
]
no

Outputs

Name Description
backend_network description
backend_secgroups description
backend_subnet description
database_network description
database_secgroups description
database_subnets description
frontend_network description
frontend_secgroups description
frontend_subnet description