Use vars for external services
This commit is contained in:
parent
534bad2a03
commit
95ca3f40d0
@ -188,14 +188,25 @@ job "traefik" {
|
||||
service = "nomad"
|
||||
rule = "Host(`nomad.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`)"
|
||||
|
||||
{{ with nomadVar "nomad/jobs/traefik" }}{{ with .external }}{{ with .Value | parseYAML -}}
|
||||
{{ range $service, $url := . }}
|
||||
[http.routers.{{ $service }}]
|
||||
{{ range nomadVarList "traefik_external" }}{{ with nomadVar .Path }}
|
||||
[http.routers.{{ .name }}]
|
||||
entryPoints = ["websecure"]
|
||||
service = "{{ $service }}"
|
||||
rule = "Host(`{{ $service }}.{{ with nomadVar "nomad/jobs" }}{{ .base_hostname }}{{ end }}`)"
|
||||
service = "{{ .name }}"
|
||||
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 }}
|
||||
|
||||
#[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.nomad]
|
||||
@ -203,14 +214,12 @@ job "traefik" {
|
||||
[[http.services.nomad.loadBalancer.servers]]
|
||||
url = "http://127.0.0.1:4646"
|
||||
|
||||
{{ with nomadVar "nomad/jobs/traefik" }}{{ with .external }}{{ with .Value | parseYAML -}}
|
||||
{{ range $service, $url := . }}
|
||||
[http.services.{{ $service }}]
|
||||
[http.services.{{ $service }}.loadBalancer]
|
||||
[[http.services.{{ $service }}.loadBalancer.servers]]
|
||||
url = "{{ $url }}"
|
||||
{{ end }}
|
||||
{{- end }}{{ end }}{{ end }}
|
||||
{{ range nomadVarList "traefik_external" }}{{ with nomadVar .Path }}
|
||||
[http.services.{{ .name }}]
|
||||
[http.services.{{ .name }}.loadBalancer]
|
||||
[[http.services.{{ .name }}.loadBalancer.servers]]
|
||||
url = "{{ .url }}"
|
||||
{{- end }}{{ end }}
|
||||
EOH
|
||||
destination = "${NOMAD_TASK_DIR}/config/conf/route-hashi.toml"
|
||||
change_mode = "noop"
|
||||
|
@ -34,3 +34,48 @@ EOH
|
||||
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