Use vars for external services
This commit is contained in:
parent
534bad2a03
commit
95ca3f40d0
@ -188,14 +188,25 @@ job "traefik" {
|
|||||||
service = "nomad"
|
service = "nomad"
|
||||||
rule = "Host(`nomad.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`)"
|
rule = "Host(`nomad.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`)"
|
||||||
|
|
||||||
{{ with nomadVar "nomad/jobs/traefik" }}{{ with .external }}{{ with .Value | parseYAML -}}
|
{{ range nomadVarList "traefik_external" }}{{ with nomadVar .Path }}
|
||||||
{{ range $service, $url := . }}
|
[http.routers.{{ .name }}]
|
||||||
[http.routers.{{ $service }}]
|
|
||||||
entryPoints = ["websecure"]
|
entryPoints = ["websecure"]
|
||||||
service = "{{ $service }}"
|
service = "{{ .name }}"
|
||||||
rule = "Host(`{{ $service }}.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`)"
|
rule = "Host(`{{ .subdomain }}.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`){{ with .path_prefix.Value }}&&PathPrefix(`{{ . }}`){{ end }}"
|
||||||
|
{{ $name := .name -}}
|
||||||
|
{{ with .path_prefix.Value -}}
|
||||||
|
middlewares = ["{{ $name }}@file"]
|
||||||
{{ end }}
|
{{ end }}
|
||||||
{{- end }}{{ end }}{{ end }}
|
{{- end }}{{ end }}
|
||||||
|
|
||||||
|
#[http.middlewares]
|
||||||
|
# {{ range nomadVarList "traefik_external" }}{{ with nomadVar .Path -}}
|
||||||
|
# {{ $name := .name -}}
|
||||||
|
# {{ with .path_prefix.Value -}}
|
||||||
|
# [http.middlewares.{{ $name }}.stripPrefix]
|
||||||
|
# prefixes = ["{{ . }}"]
|
||||||
|
# {{ end }}
|
||||||
|
# {{- end }}{{ end }}
|
||||||
|
|
||||||
[http.services]
|
[http.services]
|
||||||
[http.services.nomad]
|
[http.services.nomad]
|
||||||
@ -203,14 +214,12 @@ job "traefik" {
|
|||||||
[[http.services.nomad.loadBalancer.servers]]
|
[[http.services.nomad.loadBalancer.servers]]
|
||||||
url = "http://127.0.0.1:4646"
|
url = "http://127.0.0.1:4646"
|
||||||
|
|
||||||
{{ with nomadVar "nomad/jobs/traefik" }}{{ with .external }}{{ with .Value | parseYAML -}}
|
{{ range nomadVarList "traefik_external" }}{{ with nomadVar .Path }}
|
||||||
{{ range $service, $url := . }}
|
[http.services.{{ .name }}]
|
||||||
[http.services.{{ $service }}]
|
[http.services.{{ .name }}.loadBalancer]
|
||||||
[http.services.{{ $service }}.loadBalancer]
|
[[http.services.{{ .name }}.loadBalancer.servers]]
|
||||||
[[http.services.{{ $service }}.loadBalancer.servers]]
|
url = "{{ .url }}"
|
||||||
url = "{{ $url }}"
|
{{- end }}{{ end }}
|
||||||
{{ end }}
|
|
||||||
{{- end }}{{ end }}{{ end }}
|
|
||||||
EOH
|
EOH
|
||||||
destination = "${NOMAD_TASK_DIR}/config/conf/route-hashi.toml"
|
destination = "${NOMAD_TASK_DIR}/config/conf/route-hashi.toml"
|
||||||
change_mode = "noop"
|
change_mode = "noop"
|
||||||
|
@ -34,3 +34,48 @@ EOH
|
|||||||
job_id = resource.nomad_job.traefik.id
|
job_id = resource.nomad_job.traefik.id
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
resource "nomad_acl_policy" "treafik_external" {
|
||||||
|
name = "traefik-exernal"
|
||||||
|
description = "Read external services"
|
||||||
|
rules_hcl = <<EOH
|
||||||
|
namespace "default" {
|
||||||
|
variables {
|
||||||
|
path "traefik_external/*" {
|
||||||
|
capabilities = ["read"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
EOH
|
||||||
|
job_acl {
|
||||||
|
job_id = "traefik"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "nomad_variable" "traefik_external_hass" {
|
||||||
|
path = "traefik_external/hass"
|
||||||
|
items = {
|
||||||
|
name = "hass"
|
||||||
|
subdomain = "hass",
|
||||||
|
url = "http://192.168.3.65:8123"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "nomad_variable" "traefik_external_plex" {
|
||||||
|
path = "traefik_external/plex"
|
||||||
|
items = {
|
||||||
|
name = "plex"
|
||||||
|
subdomain = "plex",
|
||||||
|
url = "http://agnosticfront.thefij:32400"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
resource "nomad_variable" "traefik_external_appdaemon" {
|
||||||
|
path = "traefik_external/appdaemon"
|
||||||
|
items = {
|
||||||
|
name = "appdaemon"
|
||||||
|
subdomain = "appdash",
|
||||||
|
url = "http://192.168.3.65:5050"
|
||||||
|
# path_prefix = "/add"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user