homelab-nomad/services/service/vars.tf

157 lines
3.0 KiB
HCL

variable "name" {
type = string
description = "Name of the service"
}
variable "image" {
type = string
description = "Image that should be run"
}
variable "service_port" {
type = number
default = null
description = "Port number used by the service"
}
variable "metrics_port_name" {
type = string
default = null
description = "Name of port that /metrics can be scraped from"
}
variable "ingress" {
type = bool
default = false
}
variable "sticky_disk" {
type = bool
default = false
}
variable "args" {
type = list(string)
default = []
description = "Arguments passed to the Docker container"
}
variable "resources" {
type = object({
cpu = number
memory = number
memory_max = optional(number)
})
default = {
cpu = 50
memory = 100
memory_max = null
}
description = "Resources to be assigned to the main task"
}
variable "env" {
type = map(string)
default = {}
description = "Env variables for the main task"
}
variable "ingress_rule" {
type = string
default = null
description = "Routing rule for ingress"
}
variable "ingress_middlewares" {
type = list(string)
default = []
description = "Traefik middlewares that should be used"
}
variable "service_tags" {
type = list(string)
default = []
description = "Additional tags to be added to the service."
}
variable "ports" {
type = list(object({
name = string
host_network = optional(string)
to = optional(number)
static = optional(number)
}))
default = []
description = "Additional ports (not service_port) to be bound."
}
variable "templates" {
type = list(object({
data = string
dest = string
dest_prefix = optional(string, "$${NOMAD_TASK_DIR}")
change_mode = optional(string)
change_signal = optional(string)
left_delimiter = optional(string)
right_delimiter = optional(string)
mount = optional(bool, true)
env = optional(bool, false)
}))
default = []
description = "Templates to be used"
}
variable "host_volumes" {
type = list(object({
name = string
dest = string
read_only = optional(bool)
}))
default = []
}
variable "healthcheck_path" {
type = string
default = "/"
}
variable "upstreams" {
type = list(object({
destination_name = string
local_bind_port = number
}))
default = []
}
variable "use_mysql" {
type = bool
default = false
}
variable "use_redis" {
type = bool
default = false
}
variable "use_vault" {
type = bool
default = false
}
variable "use_ldap" {
type = bool
default = false
}
variable "mysql_bootstrap" {
type = object({
vault_key = string
db_name_key = optional(string, "db_name")
db_user_key = optional(string, "db_user")
db_pass_key = optional(string, "db_pass")
})
default = null
}