{"id":18764244,"url":"https://github.com/ednz-cloud/terraform-openstack-landing-zone","last_synced_at":"2025-12-07T05:30:30.645Z","repository":{"id":233180489,"uuid":"784320283","full_name":"ednz-cloud/terraform-openstack-landing-zone","owner":"ednz-cloud","description":"Terraform module to deploy a completely customizable OpenStack network architecture in a given project. Mirror from https://git.ednz.fr/terraform-registry/terraform-openstack-landing-zone.","archived":false,"fork":false,"pushed_at":"2024-09-30T18:19:22.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-05-20T20:19:43.009Z","etag":null,"topics":["landing-zone","openstack","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"https://ednz.fr","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ednz-cloud.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-04-09T16:07:49.000Z","updated_at":"2024-09-30T18:19:25.000Z","dependencies_parsed_at":"2024-09-08T13:09:40.859Z","dependency_job_id":"146668ae-d5b8-4402-9815-49fa914f3df2","html_url":"https://github.com/ednz-cloud/terraform-openstack-landing-zone","commit_stats":null,"previous_names":["ednz-cloud/terraform-openstack-lz","ednz-cloud/terraform-openstack-landing-zone"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/ednz-cloud/terraform-openstack-landing-zone","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednz-cloud%2Fterraform-openstack-landing-zone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednz-cloud%2Fterraform-openstack-landing-zone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednz-cloud%2Fterraform-openstack-landing-zone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednz-cloud%2Fterraform-openstack-landing-zone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ednz-cloud","download_url":"https://codeload.github.com/ednz-cloud/terraform-openstack-landing-zone/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ednz-cloud%2Fterraform-openstack-landing-zone/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":27561664,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-12-07T02:00:07.896Z","response_time":53,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["landing-zone","openstack","terraform","terraform-module"],"created_at":"2024-11-07T18:29:14.723Z","updated_at":"2025-12-07T05:30:30.326Z","avatar_url":"https://github.com/ednz-cloud.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# terraform-openstack-landing-zone\n\nTerraform/OpenTofu module to deploy a completely customizable OpenStack network architecture.\n\n![Terraform Badge](https://img.shields.io/badge/Terraform-844FBA?logo=terraform\u0026logoColor=fff\u0026style=for-the-badge)\n![OpenTofu Badge](https://img.shields.io/badge/OpenTofu-FFDA18?logo=opentofu\u0026logoColor=000\u0026style=for-the-badge)\n![OpenStack Badge](https://img.shields.io/badge/OpenStack-ED1944?logo=openstack\u0026logoColor=fff\u0026style=for-the-badge)\n\n\n\u003c!-- BEGIN_TF_DOCS --\u003e\n### Requirements\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"requirement_terraform\"\u003e\u003c/a\u003e [terraform](#requirement_terraform) | \u003e= 1.0.0 |\n| \u003ca name=\"requirement_openstack\"\u003e\u003c/a\u003e [openstack](#requirement_openstack) | \u003e= 1.54 |\n\n### Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_openstack\"\u003e\u003c/a\u003e [openstack](#provider_openstack) | \u003e= 1.54 |\n\n### Modules\n\nNo modules.\n\n### Resources\n\n| Name | Type |\n|------|------|\n| [openstack_networking_network_v2.backend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_network_v2) | resource |\n| [openstack_networking_network_v2.database](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_network_v2) | resource |\n| [openstack_networking_network_v2.frontend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_network_v2) | resource |\n| [openstack_networking_router_interface_v2.backend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource |\n| [openstack_networking_router_interface_v2.database](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource |\n| [openstack_networking_router_interface_v2.frontend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_interface_v2) | resource |\n| [openstack_networking_router_v2.this](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_router_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.backend_egress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.backend_ingress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.database_egress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.database_ingress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.frontend_egress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_rule_v2.frontend_ingress](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_rule_v2) | resource |\n| [openstack_networking_secgroup_v2.backend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_v2) | resource |\n| [openstack_networking_secgroup_v2.database](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_v2) | resource |\n| [openstack_networking_secgroup_v2.frontend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_secgroup_v2) | resource |\n| [openstack_networking_subnet_v2.backend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnet_v2) | resource |\n| [openstack_networking_subnet_v2.database](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnet_v2) | resource |\n| [openstack_networking_subnet_v2.frontend](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnet_v2) | resource |\n| [openstack_networking_subnetpool_v2.apps](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnetpool_v2) | resource |\n| [openstack_networking_subnetpool_v2.database](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/resources/networking_subnetpool_v2) | resource |\n| [openstack_identity_project_v3.this](https://registry.terraform.io/providers/terraform-provider-openstack/openstack/latest/docs/data-sources/identity_project_v3) | data source |\n\n### Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_application_subnetpool_cidr_blocks\"\u003e\u003c/a\u003e [application_subnetpool_cidr_blocks](#input_application_subnetpool_cidr_blocks) | The CIDR blocks for the application subnet pool | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"192.168.0.0/21\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_application_subnetpool_id\"\u003e\u003c/a\u003e [application_subnetpool_id](#input_application_subnetpool_id) | The id of the subnetpool to create the public (first 2 tier) networks from.\u003cbr\u003eSince this module can route private subnets to the backbone, it needs to make sure it's not creating overlapping subnets. | `string` | `null` | no |\n| \u003ca name=\"input_architecture_tiers\"\u003e\u003c/a\u003e [architecture_tiers](#input_architecture_tiers) | The type of architecture.\u003cbr\u003eCan be either 0, 1, 2 or 3.\u003cbr\u003eTier 0 will not create any subnets or networks.\u003cbr\u003eTier 1 will only create a single frontend subnet.\u003cbr\u003eTier 2 will create a frontend and backend subnet.\u003cbr\u003eTier 3 will create a frontend, backend and database subnet. | `number` | `1` | no |\n| \u003ca name=\"input_attach_to_external\"\u003e\u003c/a\u003e [attach_to_external](#input_attach_to_external) | Whether to attach the router to an external network.\u003cbr\u003eThis will add a gateway interface to the router, and possibly consume a public IP address which might be billed by your cloud provider. | `bool` | `false` | no |\n| \u003ca name=\"input_backend_subnet_prefix_len\"\u003e\u003c/a\u003e [backend_subnet_prefix_len](#input_backend_subnet_prefix_len) | The prefix length of the backend subnet. Must be between 20 and 32. | `number` | `24` | no |\n| \u003ca name=\"input_create_application_subnetpool\"\u003e\u003c/a\u003e [create_application_subnetpool](#input_create_application_subnetpool) | Whether the module should create an application subnet pool for this project, or use an existing one. | `bool` | `true` | no |\n| \u003ca name=\"input_create_database_subnetpool\"\u003e\u003c/a\u003e [create_database_subnetpool](#input_create_database_subnetpool) | Whether the module should create a database subnet pool for this project, or use an existing one. | `bool` | `true` | no |\n| \u003ca name=\"input_create_default_secgroups\"\u003e\u003c/a\u003e [create_default_secgroups](#input_create_default_secgroups) | Whether to create default security groups or not.\u003cbr\u003eDepending on your choice of architecture tiering, will create security groups so that each tier can connect to the one below.\u003cbr\u003eSecurity groups for the database tier will be created for mariadb, postgresql and redis.\u003cbr\u003eA default security group allowing ssh connection will also be created. | `bool` | `false` | no |\n| \u003ca name=\"input_database_secgroup_strict\"\u003e\u003c/a\u003e [database_secgroup_strict](#input_database_secgroup_strict) | Defines whether the security groups for the database network should be strict.\u003cbr\u003eIn strict mode, egress is only allowed to the backend network. | `bool` | `false` | no |\n| \u003ca name=\"input_database_subnet_prefix_len\"\u003e\u003c/a\u003e [database_subnet_prefix_len](#input_database_subnet_prefix_len) | The prefix length of the database subnet. Must be between 24 and 32. | `number` | `24` | no |\n| \u003ca name=\"input_database_subnetpool_cidr_blocks\"\u003e\u003c/a\u003e [database_subnetpool_cidr_blocks](#input_database_subnetpool_cidr_blocks) | The CIDR blocks for the database subnet pool | `list(string)` | \u003cpre\u003e[\u003cbr\u003e  \"192.168.8.0/23\"\u003cbr\u003e]\u003c/pre\u003e | no |\n| \u003ca name=\"input_database_subnetpool_id\"\u003e\u003c/a\u003e [database_subnetpool_id](#input_database_subnetpool_id) | The id of the subnetpool to create the databse network from.\u003cbr\u003eSince this module can route private subnets to the backbone, it needs to make sure it's not creating overlapping subnets. | `string` | `null` | no |\n| \u003ca name=\"input_external_network_id\"\u003e\u003c/a\u003e [external_network_id](#input_external_network_id) | The id of the external network to connect the frontend router to. | `string` | `null` | no |\n| \u003ca name=\"input_frontend_subnet_prefix_len\"\u003e\u003c/a\u003e [frontend_subnet_prefix_len](#input_frontend_subnet_prefix_len) | The prefix length of the frontend subnet. Must be between 20 and 32. | `number` | `24` | no |\n| \u003ca name=\"input_network_internal_domain_name\"\u003e\u003c/a\u003e [network_internal_domain_name](#input_network_internal_domain_name) | The domain name to use for dns resolution inside the private networks | `string` | `null` | no |\n| \u003ca name=\"input_project_domain\"\u003e\u003c/a\u003e [project_domain](#input_project_domain) | The domain where this project will be created | `string` | `\"default\"` | no |\n| \u003ca name=\"input_project_name\"\u003e\u003c/a\u003e [project_name](#input_project_name) | The name of the project | `string` | n/a | yes |\n| \u003ca name=\"input_project_tags\"\u003e\u003c/a\u003e [project_tags](#input_project_tags) | The tags to append to this project | `list(string)` | `[]` | no |\n| \u003ca name=\"input_public_nameservers\"\u003e\u003c/a\u003e [public_nameservers](#input_public_nameservers) | A list of public DNS servers to upstreams requests to in your subnets.\u003cbr\u003eThis is not necessary if your openstack deployment already has configured default upstreams for neutron. | `list(string)` | `[]` | no |\n\n### Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_apps_subnetpool\"\u003e\u003c/a\u003e [apps_subnetpool](#output_apps_subnetpool) | The application subnetpool object (as a list), if created |\n| \u003ca name=\"output_backend_network\"\u003e\u003c/a\u003e [backend_network](#output_backend_network) | The backend network object (as a list), if created |\n| \u003ca name=\"output_backend_secgroups\"\u003e\u003c/a\u003e [backend_secgroups](#output_backend_secgroups) | The backend security group objects (as a list), if created |\n| \u003ca name=\"output_backend_subnet\"\u003e\u003c/a\u003e [backend_subnet](#output_backend_subnet) | The backend subnet object (as a list), if created |\n| \u003ca name=\"output_database_network\"\u003e\u003c/a\u003e [database_network](#output_database_network) | The database network object (as a list), if created |\n| \u003ca name=\"output_database_secgroups\"\u003e\u003c/a\u003e [database_secgroups](#output_database_secgroups) | The database security group objects (as a list), if created |\n| \u003ca name=\"output_database_subnet\"\u003e\u003c/a\u003e [database_subnet](#output_database_subnet) | The database subnet object (as a list), if created |\n| \u003ca name=\"output_database_subnetpool\"\u003e\u003c/a\u003e [database_subnetpool](#output_database_subnetpool) | The database subnetpool object (as a list), if created |\n| \u003ca name=\"output_frontend_network\"\u003e\u003c/a\u003e [frontend_network](#output_frontend_network) | The frontend network object (as a list), if created |\n| \u003ca name=\"output_frontend_secgroups\"\u003e\u003c/a\u003e [frontend_secgroups](#output_frontend_secgroups) | The frontend security group objects (as a list), if created |\n| \u003ca name=\"output_frontend_subnet\"\u003e\u003c/a\u003e [frontend_subnet](#output_frontend_subnet) | The frontend subnet object (as a list), if created |\n| \u003ca name=\"output_router\"\u003e\u003c/a\u003e [router](#output_router) | The entire router object (as a list), if created |\n\u003c!-- END_TF_DOCS --\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fednz-cloud%2Fterraform-openstack-landing-zone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fednz-cloud%2Fterraform-openstack-landing-zone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fednz-cloud%2Fterraform-openstack-landing-zone/lists"}