This commit is contained in:
Daniel Berteaud 2024-01-21 23:10:41 +01:00
parent 882bcf41ae
commit d660f4ad6b
5 changed files with 64 additions and 41 deletions

View File

@ -1,14 +1,14 @@
[[ $c := merge .democratic_csi.controller . -]]
job "[[ .instance ]]-controller" {
[[ $c := merge .democratic_csi.controller .democratic_csi . -]]
[[- template "common/job_start" $c ]]
[[- range $proto := slice "iscsi" "nfs" ]]
[[- range $proto := coll.Slice "iscsi" "nfs" ]]
group "[[ $proto ]]-controller" {
count = [[ $.democratic_csi.controller.count ]]
count = [[ $c.count ]]
restart {
interval = "5m"
@ -19,7 +19,7 @@ job "[[ .instance ]]-controller" {
task "[[ $proto ]]-controller" {
driver = [[ $c.nomad.driver | toJSON ]]
driver = "[[ $c.nomad.driver ]]"
env {
NODE_EXTRA_CA_CERTS = "/local/ca.crt"
@ -31,7 +31,7 @@ job "[[ .instance ]]-controller" {
}
config {
image = [[ $.democratic_csi.image | toJSON ]]
image = "[[ $.democratic_csi.image ]]"
args = [
"--csi-version=1.5.0",
@ -49,7 +49,7 @@ job "[[ .instance ]]-controller" {
template {
data =<<_EOF
[[ tmpl.Exec (printf "democratic_csi/%s/controller.yml.tpl" $proto) $ ]]
[[ tmpl.Exec (printf "democratic_csi/%s/controller.yml.tpl" $proto) $c ]]
_EOF
destination = "secrets/config.yml"
}
@ -57,7 +57,7 @@ _EOF
# Load vault root CA into the trust store
template {
data = <<-EOF
{{ with secret "[[ $c.consul.suffix ]]pki/root/cert/ca" }}{{ .Data.certificate }}{{ end }}
{{ with secret "[[ $.consul.suffix ]]pki/root/cert/ca" }}{{ .Data.certificate }}{{ end }}
EOF
destination = "local/ca.crt"
}
@ -68,7 +68,7 @@ _EOF
mount_dir = "/csi"
}
[[ template "common/resources" $.democratic_csi.controller.resources ]]
[[ template "common/resources" $c ]]
}
}
[[- end ]]

View File

@ -1,5 +1,8 @@
job "democratic-csi-controller" {
datacenters = ["dc1"]
priority = 90
group "iscsi-controller" {

View File

@ -1,7 +1,8 @@
job "democratic-csi-node" {
type = "system"
datacenters = ["dc1"]
priority = 100
priority = 90
group "iscsi-node" {
@ -27,14 +28,6 @@ job "democratic-csi-node" {
driver = "docker"
env {
CSI_NODE_ID = "${attr.unique.hostname}"
LANG = "fr_FR.utf8"
TZ = "Europe/Paris"
}
config {
image = "danielberteaud/democratic-csi:1.8.4-1"
@ -56,6 +49,22 @@ job "democratic-csi-node" {
network_mode = "host"
}
env {
CSI_NODE_ID = "${attr.unique.hostname}"
}
# Use a template block instead of env {} so we can fetch values from vault
template {
data = <<_EOT
LANG=fr_FR.utf8
TZ=Europe/Paris
_EOT
destination = "secrets/.env"
perms = 400
env = true
}
template {
data = <<_EOF
---
@ -106,14 +115,6 @@ _EOF
driver = "docker"
env {
CSI_NODE_ID = "${attr.unique.hostname}"
LANG = "fr_FR.utf8"
TZ = "Europe/Paris"
}
config {
image = "danielberteaud/democratic-csi:1.8.4-1"
@ -135,6 +136,22 @@ _EOF
network_mode = "host"
}
env {
CSI_NODE_ID = "${attr.unique.hostname}"
}
# Use a template block instead of env {} so we can fetch values from vault
template {
data = <<_EOT
LANG=fr_FR.utf8
TZ=Europe/Paris
_EOT
destination = "secrets/.env"
perms = 400
env = true
}
template {
data = <<_EOF
---

View File

@ -1,11 +1,12 @@
[[ $c := merge .democratic_csi.node . -]]
job "[[ .instance ]]-node" {
[[ $c := merge .democratic_csi.node .democratic_csi . -]]
type = "system"
[[- template "common/job_start" $c ]]
[[- range $proto := slice "iscsi" "nfs" ]]
[[- range $proto := coll.Slice "iscsi" "nfs" ]]
group "[[ $proto ]]-node" {
@ -22,15 +23,10 @@ job "[[ .instance ]]-node" {
task "[[ $proto ]]-node" {
driver = [[ $c.nomad.driver | toJSON ]]
env {
CSI_NODE_ID = "${attr.unique.hostname}"
[[ template "common/env" $c.env ]]
}
driver = "[[ $c.nomad.driver ]]"
config {
image = [[ $.democratic_csi.image | toJSON ]]
image = "[[ $c.image ]]"
args = [
"--csi-version=1.5.0",
@ -50,9 +46,15 @@ job "[[ .instance ]]-node" {
network_mode = "host"
}
env {
CSI_NODE_ID = "${attr.unique.hostname}"
}
[[ template "common/file_env" $c ]]
template {
data =<<_EOF
[[ tmpl.Exec (printf "democratic_csi/%s/node.yml.tpl" $proto) $ ]]
[[ tmpl.Exec (printf "democratic_csi/%s/node.yml.tpl" $proto) $c ]]
_EOF
destination = "secrets/config.yml"
}
@ -77,7 +79,7 @@ _EOF
}
[[- end ]]
[[ template "common/resources" $.democratic_csi.node.resources ]]
[[ template "common/resources" $c ]]
}
}
[[- end ]]

View File

@ -11,6 +11,10 @@ democratic_csi:
# Eg org.democratic-csi.iscsi and org.democratic-csi.nfs
plugin_id: org.[[ .instance ]]
# Set a high priority as CSI controllers and nodes are required for a lot of jobs
nomad:
priority: 90
# Settings for controllers
controller:
# Number of controler instances
@ -70,9 +74,6 @@ democratic_csi:
memory: 128
memory_max: 192
nomad:
priority: 100
# Custom env var to pass to controllers
env: {}