job "seaweedfsmaster" { datacenters = ["dc1"] type = "service" constraint { attribute = "${attr.kernel.name}" value = "linux" } constraint { operator = "distinct_hosts" value = "true" } // constraint { // attribute = "${attr.unique.hostname}" // operator = "regexp" // # We need static IPs for master servers // # dc1-n1 - 172.21.100.51 // # dc1-n2 - 172.21.100.52 // # dc1-n3 - 172.21.100.53 // value = "^odroid5.node.dc1.consul|odroid6.node.dc1.consul|odroid7.node.dc1.consul|odroid8.node.dc1.consul$" // } update { stagger = "10s" max_parallel = 1 healthy_deadline = "5m" } group "seaweedfsmaster" { count = 3 restart { attempts = 6 interval = "1m" delay = "10s" mode = "delay" } task "seaweedfsmaster" { driver = "docker" config { image = "chrislusf/seaweedfs" // image = "ghcr.io/sstent/seaweedfs:latest" // command = "" // entrypoint = ["/usr/bin/seaweedfs"] // entrypoint = ["/usr/bin/nslookup","odroid3.node.dc1.consul"] memory_hard_limit = "2048" // dns_servers = ["192.168.1.1"] // hostname = "${attr.unique.hostname}" // hostname = "${attr.unique.network.ip-address}" entrypoint = ["/usr/bin/weed"] args = [ "server", "-ip=${NOMAD_GROUP_NAME}${NOMAD_ALLOC_INDEX}.service.dc1.consul", "-ip.bind=0.0.0.0", "-master.port=9333", "-master.defaultReplication=002", "-master.peers=${NOMAD_GROUP_NAME}0.service.dc1.consul:9333,${NOMAD_GROUP_NAME}1.service.dc1.consul:9333,${NOMAD_GROUP_NAME}2.service.dc1.consul:9333", "-dir=/data", "-filer", "-filer.port=8877", "-filer.port.grpc=18877", "-s3", "-webdav", "-volume=true", "-volume.port=9444", "-volume.port.grpc=19444", "-volume.max=100" ] // "-filer.peers=${NOMAD_GROUP_NAME}0.service.dc1.consul:8877,${NOMAD_GROUP_NAME}1.service.dc1.consul:8877,${NOMAD_GROUP_NAME}2.service.dc1.consul:8877", volumes = [ "/data/seaweedfs/:/data/", ] ports = ["seaweedfs", "seaweedfs_high", "seaweedfs_filer", "seaweed_s3", "seaweed_webdav", "seaweedfs_filer_high","seaweedfs_vol","seaweedfs_vol_high"] } env { seaweedfs_ACCESS_KEY = "seaweedfs" seaweedfs_SECRET_KEY = "seaweedfs123" } service { name = "${NOMAD_GROUP_NAME}${NOMAD_ALLOC_INDEX}" tags = ["global", "seaweedfs"] port = "seaweedfs" } service { name = "seaweedfiler" tags = ["global", "seaweedfs"] port = "seaweedfs_filer" } resources { cpu = 64 # 500 MHz memory = 64 # 128MB } #end resources } #end task network { port "seaweedfs" { static = 9333 to = 9333 } port "seaweedfs_high" { static = 19333 to = 19333 } port "seaweedfs_filer" { static = 8877 to = 8877 } port "seaweedfs_filer_high" { static = 18877 to = 18877 } port "seaweed_s3" { static = 8333 to = 8333 } port "seaweed_webdav" { static = 7333 to = 7333 } port "seaweedfs_vol" { static = "9444" } port "seaweedfs_vol_high" { static = "19444" } // port "s8080" { // static = 8080 // to = 8080 // } // port "s18080" { // static = 18080 // to = 18080 // } // port "seaweed_volume" { // static = 9444 // to = 9444 // } } } # end group } # end job