From d8307935f50359e0b7ffab0d8b151050ca35aaed Mon Sep 17 00:00:00 2001 From: Ian Fijolek Date: Fri, 24 Mar 2023 11:24:36 -0700 Subject: [PATCH] Refactor everything for nomad vars --- .secrets-baseline | 20 +-- core/blocky/blocky.nomad | 5 +- core/metrics/exporters.nomad | 34 +----- core/metrics/grafana.nomad | 107 +++++----------- core/metrics/grafana/grafana.ini | 2 +- .../grafana/provisioning/datasources/loki.yml | 4 +- .../provisioning/datasources/mysql.yml | 17 +-- .../provisioning/datasources/prometheus.yml | 4 +- .../grafana/provisioning/notifiers/main.yml | 4 +- .../grafana/provisioning/notifiers/slack.yml | 8 +- core/metrics/metrics.tf | 32 ++--- core/metrics/prometheus.nomad | 43 +++---- core/syslogng.nomad | 22 +--- databases/redis.nomad | 14 --- service.nomad | 21 ++-- services/backups/backup.nomad | 78 +++--------- services/ip-dvr.nomad | 115 +----------------- services/main.tf | 99 ++++++++------- services/media/caddy.nomad | 18 +-- services/nextcloud/nextcloud.nomad | 4 +- services/service/service_template.nomad | 110 +++-------------- services/whoami.nomad | 26 +--- 22 files changed, 208 insertions(+), 579 deletions(-) diff --git a/.secrets-baseline b/.secrets-baseline index af31148..1db1eab 100644 --- a/.secrets-baseline +++ b/.secrets-baseline @@ -193,25 +193,7 @@ "line_number": 252, "is_secret": false } - ], - "core/syslogng.nomad": [ - { - "type": "Base64 High Entropy String", - "filename": "core/syslogng.nomad", - "hashed_secret": "298b5925fe7c7458cb8a12a74621fdedafea5ad6", - "is_verified": false, - "line_number": 165, - "is_secret": false - }, - { - "type": "Base64 High Entropy String", - "filename": "core/syslogng.nomad", - "hashed_secret": "3a1cec2d3c3de7e4da4d99c6731ca696c24b72b4", - "is_verified": false, - "line_number": 165, - "is_secret": false - } ] }, - "generated_at": "2023-01-13T23:47:42Z" + "generated_at": "2023-03-24T18:23:24Z" } diff --git a/core/blocky/blocky.nomad b/core/blocky/blocky.nomad index ecf078f..a22aac2 100644 --- a/core/blocky/blocky.nomad +++ b/core/blocky/blocky.nomad @@ -45,11 +45,8 @@ job "blocky" { provider = "nomad" port = "api" - meta { - metrics_addr = "${NOMAD_ADDR_api}" - } - tags = [ + "prometheus.scrape", "traefik.enable=true", "traefik.http.routers.blocky-api.entryPoints=websecure", ] diff --git a/core/metrics/exporters.nomad b/core/metrics/exporters.nomad index 5f57852..c2cafc2 100644 --- a/core/metrics/exporters.nomad +++ b/core/metrics/exporters.nomad @@ -14,40 +14,16 @@ job "metrics" { service { name = "promtail" + provider = "nomad" port = "promtail" meta { - metrics_addr = "${NOMAD_ADDR_promtail}" nomad_dc = "${NOMAD_DC}" nomad_node_name = "${node.unique.name}" } - connect { - sidecar_service { - proxy { - local_service_port = 9080 - - upstreams { - destination_name = "loki" - local_bind_port = 1000 - } - } - } - - sidecar_task { - resources { - cpu = 50 - memory = 20 - } - } - } - - check { - type = "http" - path = "/metrics" - port = "promtail" - interval = "10s" - timeout = "10s" + tags = [ + "prometheus.scrape", } } @@ -111,7 +87,9 @@ server: http_listen_port: 9080 clients: - - url: http://{{ env "NOMAD_UPSTREAM_ADDR_loki" }}/loki/api/v1/push +{{ range nomadService 1 (env "NOMAD_ALLOC_ID") "loki" -}} + - url: http://{{ .Address }}:{{ .Port }}/loki/api/v1/push +{{- end }} scrape_configs: diff --git a/core/metrics/grafana.nomad b/core/metrics/grafana.nomad index e6619a5..d856827 100644 --- a/core/metrics/grafana.nomad +++ b/core/metrics/grafana.nomad @@ -8,10 +8,11 @@ job "grafana" { mode = "bridge" port "web" { - host_network = "loopback" + host_network = "wgoverlay" to = 3000 } + # TODO: Not sure if this needs to be mapped here since it's within the group port "renderer" { host_network = "loopback" to = 8081 @@ -25,46 +26,9 @@ job "grafana" { service { name = "grafana" + provider = "nomad" port = "web" - connect { - sidecar_service { - proxy { - local_service_port = 3000 - - upstreams { - destination_name = "prometheus" - local_bind_port = 9090 - } - - upstreams { - destination_name = "loki" - local_bind_port = 3100 - } - - upstreams { - destination_name = "mysql-server" - local_bind_port = 6060 - } - } - } - - sidecar_task { - resources { - cpu = 50 - memory = 50 - } - } - } - - check { - type = "http" - path = "/" - port = "web" - interval = "10s" - timeout = "10s" - } - tags = [ "traefik.enable=true", "traefik.http.routers.grafana.entryPoints=websecure", @@ -98,25 +62,27 @@ job "grafana" { template { data = < 0 } @@ -45,74 +40,14 @@ job "${name}" { %{ if service_port != null ~} service { name = "${replace(name, "_", "-")}" + provider = "nomad" port = "main" - %{ if connect } - connect { - sidecar_service { - proxy { - local_service_port = ${service_port} - %{ if use_mysql } - upstreams { - destination_name = "mysql-server" - local_bind_port = 4040 - } - %{ endif ~} - %{ if use_redis } - upstreams { - destination_name = "redis" - local_bind_port = 6379 - } - %{ endif ~} - %{ if use_ldap } - upstreams { - destination_name = "lldap" - local_bind_port = 3890 - } - %{ endif ~} - %{ for upstream in upstreams ~} - upstreams { - destination_name = "${upstream.destination_name}" - local_bind_port = ${upstream.local_bind_port} - } - %{ endfor } - - config { - envoy_prometheus_bind_addr = "0.0.0.0:9123" - } - } - } - - sidecar_task { - resources { - cpu = 50 - memory = 50 - memory_max = 100 - } - } - } - - %{~ endif } - %{ if healthcheck_path != null } - check { - type = "http" - path = "${healthcheck_path}" - port = "main" - interval = "10s" - timeout = "10s" - } - - %{~ endif } - meta { - %{ if metrics_port_name != null } - metrics_addr = "$${NOMAD_ADDR_${metrics_port_name}}" - %{ endif } - %{ if connect } - envoy_metrics_addr = "$${NOMAD_ADDR_envoy_metrics}" - %{~ endif } - } - tags = [ + # TODO: Rename metrics_port_name to something like "prometheus_scrape" + %{ if metrics_port_name != null } + "prometheus.scrape", + %{ endif } %{ if ingress } "traefik.enable=true", "traefik.http.routers.${name}.entryPoints=websecure", @@ -160,15 +95,6 @@ job "${name}" { %{ endif ~} %{ endfor ~} } - %{ if use_vault ~} - - vault { - policies = [ - "access-tables", - "nomad-task", - ] - } - %{ endif ~} %{ if length(env) > 0 ~} env = { @@ -236,11 +162,14 @@ EOF template { data = <