homelab/nomad-job/nomad.sample
2024-04-28 16:11:37 +02:00

76 lines
1.5 KiB
Plaintext

job "sample" {
datacenters = ["homelab"]
priority = 50
type = "service"
meta {
forcedeploy = "0"
}
constraint {
attribute = "${attr.cpu.arch}"
value = "amd64"
}
group "sample"{
network {
mode = "host"
port "http" {
to = 0000
}
}
volume "sample-data" {
type = "csi"
source = "sapmle-data"
access_mode = "multi-node-multi-writer"
attachment_mode = "file-system"
}
vault{
policies= ["policy_name"]
}
task "server" {
driver = "docker"
service {
name = "sample"
port = "http"
tags = [
"traefik.enable=true",
"traefik.http.routers.${NOMAD_JOB_NAME}.rule=Host(`${NOMAD_JOB_NAME}.ducamps.win`)",
"traefik.http.routers.${NOMAD_JOB_NAME}.tls.domains[0].sans=${NOMAD_JOB_NAME}.ducamps.win",
"traefik.http.routers.${NOMAD_JOB_NAME}.tls.certresolver=myresolver",
"traefik.http.routers.${NOMAD_JOB_NAME}.entrypoints=web,websecure",
]
}
volume_mount {
volume = "sample-data"
destination = "/app/data"
}
config {
image = "sample"
ports = ["http"]
volumes = [
"/local/sample:/media"
]
}
env {
}
template {
data= <<EOH
{{ with secret "secrets/data/sample"}}
{{end}}
EOH
destination = "secrets/sample.env"
env = true
}
resources {
memory = 300
}
}
}
}