Ian Fijolek
88e91e5e5d
Backed by lldap and mysql and deployed on whoami for now as a forward proxy example Would be good to add oidc for Nomad as well as make policies configurable via Nomad variables.
183 lines
3.6 KiB
HCL
183 lines
3.6 KiB
HCL
variable "name" {
|
|
type = string
|
|
description = "Name of the service"
|
|
}
|
|
|
|
variable "priority" {
|
|
type = number
|
|
default = 50
|
|
description = "Scheduler priority of the service"
|
|
}
|
|
|
|
|
|
variable "image" {
|
|
type = string
|
|
description = "Image that should be run"
|
|
}
|
|
|
|
variable "image_pull_timeout" {
|
|
type = string
|
|
default = null
|
|
description = "A time duration that controls how long Nomad will wait before cancelling an in-progress pull of the Docker image"
|
|
}
|
|
|
|
variable "meta" {
|
|
type = map(string)
|
|
default = {}
|
|
description = "Meta attributes to attach to the task"
|
|
}
|
|
|
|
variable "group_meta" {
|
|
type = map(string)
|
|
default = {}
|
|
description = "Meta attributes to attach to the group"
|
|
}
|
|
|
|
variable "service_port" {
|
|
type = number
|
|
default = null
|
|
description = "Port number used by the service"
|
|
}
|
|
|
|
variable "prometheus" {
|
|
type = bool
|
|
default = false
|
|
description = "Should metrics be scraped by prometheus"
|
|
}
|
|
|
|
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 "use_mysql" {
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "use_redis" {
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "use_ldap" {
|
|
type = bool
|
|
default = false
|
|
}
|
|
|
|
variable "mysql_bootstrap" {
|
|
type = object({
|
|
enabled = optional(bool, true)
|
|
db_name_key = optional(string, "db_name")
|
|
db_user_key = optional(string, "db_user")
|
|
db_pass_key = optional(string, "db_pass")
|
|
add_ro = optional(bool, false)
|
|
})
|
|
default = null
|
|
}
|
|
|
|
variable "constraints" {
|
|
type = list(object({
|
|
attribute = optional(string, "")
|
|
operator = optional(string, "=")
|
|
value = optional(string, "")
|
|
}))
|
|
default = []
|
|
}
|
|
|
|
variable "docker_devices" {
|
|
type = list(object({
|
|
host_path = string
|
|
container_path = string
|
|
}))
|
|
|
|
default = []
|
|
}
|