github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/production/nomad/loki-simple/job.nomad.hcl (about) 1 variable "version" { 2 type = string 3 description = "Loki version" 4 default = "2.6.1" 5 } 6 7 job "loki" { 8 datacenters = ["dc1"] 9 10 group "read" { 11 count = 1 12 13 ephemeral_disk { 14 size = 1000 15 sticky = true 16 } 17 18 network { 19 port "http" {} 20 port "grpc" {} 21 } 22 23 task "read" { 24 driver = "docker" 25 user = "nobody" 26 27 config { 28 image = "grafana/loki:${var.version}" 29 30 ports = [ 31 "http", 32 "grpc", 33 ] 34 35 args = [ 36 "-target=read", 37 "-config.file=/local/config.yml", 38 "-config.expand-env=true", 39 ] 40 } 41 42 template { 43 data = file("config.yml") 44 destination = "local/config.yml" 45 } 46 47 template { 48 data = <<-EOH 49 S3_ACCESS_KEY_ID=<access_key> 50 S3_SECRET_ACCESS_KEY=<secret_access_key> 51 EOH 52 53 destination = "secrets/s3.env" 54 env = true 55 } 56 57 service { 58 name = "loki-read" 59 port = "http" 60 61 tags = [ 62 "traefik.enable=true", 63 "traefik.http.routers.loki-read.entrypoints=https", 64 "traefik.http.routers.loki-read.rule=Host(`loki-read.service.consul`)", 65 ] 66 67 check { 68 name = "Loki read" 69 port = "http" 70 type = "http" 71 path = "/ready" 72 interval = "20s" 73 timeout = "1s" 74 75 initial_status = "passing" 76 } 77 } 78 79 resources { 80 cpu = 500 81 memory = 256 82 } 83 } 84 } 85 86 group "write" { 87 count = 2 88 89 ephemeral_disk { 90 size = 1000 91 sticky = true 92 } 93 94 network { 95 port "http" {} 96 port "grpc" {} 97 } 98 99 task "write" { 100 driver = "docker" 101 user = "nobody" 102 103 config { 104 image = "grafana/loki:${var.version}" 105 106 ports = [ 107 "http", 108 "grpc", 109 ] 110 111 args = [ 112 "-target=write", 113 "-config.file=/local/config.yml", 114 "-config.expand-env=true", 115 ] 116 } 117 118 template { 119 data = file("config.yml") 120 destination = "local/config.yml" 121 } 122 123 template { 124 data = <<-EOH 125 S3_ACCESS_KEY_ID=<access_key> 126 S3_SECRET_ACCESS_KEY=<secret_access_key> 127 EOH 128 129 destination = "secrets/s3.env" 130 env = true 131 } 132 133 service { 134 name = "loki-write" 135 port = "http" 136 137 tags = [ 138 "traefik.enable=true", 139 "traefik.http.routers.loki-write.entrypoints=https", 140 "traefik.http.routers.loki-write.rule=Host(`loki-write.service.consul`)", 141 ] 142 143 check { 144 name = "Loki write" 145 port = "http" 146 type = "http" 147 path = "/ready" 148 interval = "20s" 149 timeout = "1s" 150 151 initial_status = "passing" 152 } 153 } 154 155 resources { 156 cpu = 500 157 memory = 256 158 } 159 } 160 } 161 }