job "grafana" {
  datacenters = ["example_datacenter"]

  type = "service"

   constraint {
     attribute = "${attr.kernel.name}"
     value     = "linux"
   }

   constraint {
     attribute = "${attr.cpu.arch}"
#     regexp     = "arm"
   }

   constraint {
     attribute = "${meta.group_names}"
     operator = "regexp"
     value = "hashi_client"
  }
  update {
    max_parallel = 1
    
    min_healthy_time = "10s"
    
    healthy_deadline = "8m"
    
    auto_revert = false
    
    canary = 0
  }

  reschedule {
    delay          = "30s"
    delay_function = "exponential"
    max_delay      = "10m"
    unlimited      = true
  }
  group "grafana" {
    count = 1

    restart {
      attempts = 10
      interval = "5m"

      delay = "25s"

      mode = "delay"
    }



    task "grafana" {
      driver = "docker"

      config {
        image = "grafana/grafana:master"
        force_pull = false
        port_map {
          grafana_http = 3000
        }
        volumes = [ 
	"/mnt/docker_app_data/grafana/varlib:/var/lib/grafana",
        "/mnt/docker_app_data/grafana/conf:/etc/grafana"
	]
      }



      resources {
        cpu    = 1200 # 500 MHz
        memory = 300 # 256MB
        network {
          mbits = 50
          port "grafana_http" {}
        }
      }

      service {
        name = "grafana"
        tags = ["urlprefix-www.example.com/grafana cs=consul-kv-ssl"]
        port = "grafana_http"
        check {
          name     = "alive"
          path     = "/api/health"
          type     = "http"
          interval = "10s"
          timeout  = "2s"
        }
      }




    }
  }
}