terraform-modules/example/variables.tf

139 lines
3.4 KiB
HCL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

variable "region" {
description = "Region for the STACKIT Cloud"
type = string
default = "eu01"
}
variable "project_id" {
description = "STACKIT Cloud project ID"
type = string
}
variable "service_account_token" {
description = "Service account token for authentication"
sensitive = true
type = string
}
variable "service_account_key_path" {
type = string
default = ""
}
variable "organization_id" {
description = "Organization ID"
type = string
}
variable "owner_email" {
description = "Email of the project owner"
type = string
default = null
}
variable "security_groups" {
type = map(object({
name = optional(string)
description = optional(string)
rules = list(object({
direction = string
description = optional(string)
ether_type = optional(string)
icmp_parameters = optional(object({
type = optional(number)
code = optional(number)
}))
ip_range = optional(string)
port_range = optional(object({
min = number
max = number
}))
protocol = optional(object({
name = optional(string)
number = optional(number)
}))
remote_security_group_id = optional(string)
}))
}))
}
# variable "postgres_instances" {
# type = map(object({
# name = string
# version = number
# flavor = object({ cpu = number, ram = number })
# storage = object({ class = string, size = number })
# replicas = number
# acl = list(string)
# backup_schedule = string
# users = list(object({
# username = string
# roles = set(string)
# }))
# databases = list(object({
# name = string
# owner = string
# }))
# }))
# }
# Network definition map
variable "networks" {
type = map(object({
name = string
# IPv4 settings
ipv4_gateway = optional(string)
ipv4_nameservers = optional(list(string))
ipv4_prefix = optional(string)
ipv4_prefix_length = optional(number)
# IPv6 settings
ipv6_gateway = optional(string)
ipv6_nameservers = optional(list(string))
ipv6_prefix = optional(string)
ipv6_prefix_length = optional(number)
# Flags & labels
labels = optional(map(string))
no_ipv4_gateway = optional(bool)
no_ipv6_gateway = optional(bool)
routed = optional(bool)
# NICspecific options
nics = optional(map(object({
nic_ipv4 = optional(string)
nic_name = string
nic_allowed_addresses = optional(list(string))
nic_labels = optional(map(string))
nic_security = optional(bool)
nic_security_group_ids = optional(list(string))
nic_security_group_names = optional(list(string))
})))
}))
default = {}
}
# variable "ske_clusters" {
# type = map(object({
# name = string
# kubernetes_version_min = string
# node_pools = list(object({
# name = string
# machine_type = string
# availability_zones = list(string)
# volume_size = number
# minimum = number
# maximum = number
# }))
# }))
# }
# variable "observability_instances" {
# type = map(object({
# name = string
# plan_name = string
# }))
# }