64 lines
1.6 KiB
HCL
64 lines
1.6 KiB
HCL
variable "container_name" {
|
|
description = "The name of the Caddy container"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "image_tag" {
|
|
description = "The tag of the Caddy Docker image to use"
|
|
type = string
|
|
default = "latest"
|
|
}
|
|
|
|
variable "volume_path" {
|
|
description = "Base directory for volumes"
|
|
type = string
|
|
}
|
|
|
|
variable "domain" {
|
|
description = "The domain name to use for services"
|
|
type = string
|
|
}
|
|
|
|
variable "tls_email" {
|
|
description = "Email address to use for TLS certificate generation with Let's Encrypt"
|
|
type = string
|
|
}
|
|
|
|
variable "service_definitions" {
|
|
description = "List of service definitions to evaluate for exposure through Caddy"
|
|
type = list(object({
|
|
name = string
|
|
endpoint = string
|
|
subdomains = optional(list(string), [])
|
|
publish_via = optional(string)
|
|
caddy_config = optional(string, "")
|
|
caddy_options = optional(map(string), {})
|
|
proxied = optional(bool, true) # Controls whether the DNS record is proxied through Cloudflare
|
|
}))
|
|
}
|
|
|
|
variable "networks" {
|
|
description = "List of Docker networks to connect the Caddy container to"
|
|
type = list(string)
|
|
default = []
|
|
}
|
|
|
|
variable "monitoring" {
|
|
description = "Whether to enable monitoring for the Caddy container"
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "cloudflare_zone_id" {
|
|
description = "Cloudflare Zone ID for creating DNS records"
|
|
type = string
|
|
default = ""
|
|
}
|
|
|
|
variable "external_ip" {
|
|
description = "External IP address for A records when using create_dns_records"
|
|
type = string
|
|
default = ""
|
|
}
|