Newer
Older
job "device-servers" {
datacenters = ["stat"]
type = "service"
reschedule {
unlimited = true
delay = "30s"
delay_function = "constant"
}
group "sync-IERS" {
count = 1
network {
mode = "bridge"
port "metrics" {
to = 8081
}
}
service {
tags = ["scrape"]
port = "metrics"
}
volume "IERS" {
type = "host"
read_only = false
source = "IERS"
}
task "sync-IERS" {
driver = "docker"
volume_mount {
volume = "IERS"
destination = "/opt/IERS"
read_only = false
}
config {
image = "minio/mc:latest"
args = ["-c", "mc alias set object-storage http://s3.service.consul:9000 [[.object_storage.user.name]] [[.object_storage.user.pass]] && mc mirror --preserve --watch object-storage/iers/ /opt/IERS/ --monitoring-address 0.0.0.0:8081" ]
}
resources {
cpu = 10
memory = 128
}
}
}
[[ range $class := $.devices ]]
[[ $name := $class | toLower ]]
group "device-[[ $name ]]" {
count = 1
network {
mode = "cni/station"
volume "IERS" {
type = "host"
read_only = true
source = "IERS"
}
service {
tags = ["scrape"]
name = "device-[[ $name ]]"
port = "9999"
address_mode = "alloc"
metrics_address = "device-[[ $name ]].service.consul:8000"
metrics_path = "/"
}
type = "tcp"
timeout = "5s"
port= "9999"
address_mode="alloc"
}
task "device-[[ $name ]]" {
driver = "docker"
volume_mount {
volume = "IERS"
destination = "/opt/IERS"
read_only = true
}
image = "[[ $.registry.astron.url ]]/lofar-device-base:[[ $.image_tag ]]"
entrypoint = [""]
command = "/bin/bash"
# The address we listen on (ORBendPoint) is also published for others to connect to for ZMQ
# event subscriptions. As such, we should not advertise "0" or anything that for other containers
# will resolve to their local host.
args = ["-c", "l2ss-ds [[ $class ]] STAT -v -ORBendPoint giop:tcp:$HOSTNAME:9999 -ORBendPointPublish giop:tcp:device-[[ $name ]].service.consul:9999"]
}
env {
TANGO_HOST = "tango.service.consul:10000"
TANGO_ZMQ_EVENT_PORT = "4505"
TANGO_ZMQ_HEARTBEAT_PORT = "4506"
MINIO_ROOT_USER = "minioadmin"
MINIO_ROOT_PASSWORD = "minioadmin"
}
}
}
[[ end ]]
}