Skip to content

Latest commit

 

History

History

README.md

Requirements

Name Version
terraform >= 1.10
stackit 0.98.0
time 0.14.0
vault 5.9.0

Providers

No providers.

Modules

Name Source Version
connectivity ./modules/connectivity n/a
devops ./modules/devops n/a
governance ./modules/governance n/a
landing_zone ./modules/landing-zone n/a
management ./modules/management n/a
sandboxes ./modules/sandboxes n/a

Resources

No resources.

Inputs

Name Description Type Default Required
company_code Company code used in resource naming conventions. string n/a yes
company_name Name of the company. string n/a yes
connectivity Connectivity configuration including DNS zones, network area, and firewall. Set firewall/network_area to null to skip deployment.
object({
dns_zones = optional(map(object({
dns_name = string
name = optional(string, null)
contact_email = optional(string, null)
type = optional(string, "primary")
acl = optional(string, null)
description = optional(string, null)
default_ttl = optional(number, 3600)
})), {})
network_area = optional(object({
ranges = list(string)
transfer_network = string
min_prefix_length = optional(number, 24)
max_prefix_length = optional(number, 28)
default_prefix_length = optional(number, 28)
}), null)
firewall = optional(object({
zone = string
flavor = string
name = string
volume_performance_class = optional(string, "storage_premium_perf4")
volume_size = optional(number, 16)
lan_network_range = string
wan_network_range = string
lan_ip = optional(string, null)
wan_ip = optional(string, null)
}), null)
})
null no
devops DevOps module configuration. Set to null to skip deployment.
object({
git_flavor = optional(string, null)
allowed_network_ranges = optional(list(string), ["0.0.0.0/0"])
})
null no
federated_identity_providers List of federated identity providers to configure for the management service account.
list(object({
name = string
issuer = string
assertions = list(object({
item = string
operator = string
value = string
}))
}))
[] no
labels Additional labels to apply to all resources. map(string) {} no
landing_zones Map of landing zones to create. Set corporate = true for network area connectivity, false for public.
map(object({
project_name = string
project_code = string
owner_email = string
# Set to true for corporate landing zones (connected to network area), false for public
corporate = optional(bool, true)
env = optional(string, "dev")
role_assignments = optional(list(object({
role = string
subject = string
})), [])
network_prefix_length = optional(number, null)
custom_roles = optional(list(object({
name = string
description = string
permissions = list(string)
})), [])
}))
{} no
observability Observability instance configuration for the management module. Set to null to skip observability deployment.
object({
plan_name = optional(string, "Observability-Starter-EU01")
acl = optional(list(string), [])
logs_retention_days = optional(number, 30)
traces_retention_days = optional(number, 30)
metrics_retention_days = optional(number, 90)
metrics_retention_days_5m_downsampling = optional(number, 90)
metrics_retention_days_1h_downsampling = optional(number, 90)
})
null no
organization_auditors List of organization auditors. list(string) [] no
organization_id Container ID of the root organization. string n/a yes
organization_owners List of organization owners. list(string) [] no
owner_email Email address of the owner. Required for STACKIT resource manager. string n/a yes
region STACKIT region for regional resources. string "eu01" no
rm_folder_parent_id ID of the parent folder under which the resource manager folders will be created. If not provided, the resource manager folders will be created under the organization. string null no
rm_folders Map of resource manager folders to create under the root organization.
map(object({
name = string
description = optional(string, null)
owner_emails = list(string)
reader_emails = list(string)
}))
{
"landing_zones_corporate": {
"name": "Landing Zones - Corporate",
"owner_emails": [],
"reader_emails": []
},
"landing_zones_public": {
"name": "Landing Zones - Public",
"owner_emails": [],
"reader_emails": []
},
"platform": {
"name": "Platform",
"owner_emails": [],
"reader_emails": []
},
"sandboxes": {
"name": "Sandboxes",
"owner_emails": [],
"reader_emails": []
}
}
no
sandboxes List of sandboxes to create.
list(object({
project_name = string
owner_emails = optional(list(string))
project_owner_email = string
}))
[] no

Outputs

Name Description
connectivity_firewall_public_ip The public IP of the firewall.
connectivity_network_area_id The network area ID created by the regional module.
connectivity_project_id The project ID of the connectivity project.
devops_project_id The project ID of the DevOps project.
governance_folder_ids Map of governance folder names to their container IDs.
landing_zone_projects Map of landing zone project IDs.
management_bucket_name_tfstate The name of the Management tfstate object storage bucket.
management_project_id The project ID of the Management project.
sandbox_projects The created sandbox projects.