r/loki-caddy: Caddy reverse proxy for Loki
Caddy handles TLS termination for Loki, automatically requesting and renewing its certificate via ACME.dynamic-inventory
parent
010f652060
commit
39d9985fbd
|
@ -2,3 +2,20 @@ data_volumes:
|
||||||
- dev: /dev/vdb
|
- dev: /dev/vdb
|
||||||
fstype: btrfs
|
fstype: btrfs
|
||||||
mountpoint: /var/lib/loki
|
mountpoint: /var/lib/loki
|
||||||
|
|
||||||
|
loki_caddy_acme:
|
||||||
|
email: loki@pyrocufflink.blue
|
||||||
|
url: https://ca.pyrocufflink.blue/acme/acme/directory
|
||||||
|
|
||||||
|
loki_caddy_client_ca: |+
|
||||||
|
-----BEGIN CERTIFICATE-----
|
||||||
|
MIIBlDCCAUagAwIBAgIUGNZ/ASP8F2ytev3YplTk4jA5a2EwBQYDK2VwMEgxCzAJ
|
||||||
|
BgNVBAYTAlVTMRgwFgYDVQQKDA9EdXN0aW4gQy4gSGF0Y2gxDTALBgNVBAsMBExv
|
||||||
|
a2kxEDAOBgNVBAMMB0xva2kgQ0EwHhcNMjQwMjIwMTUwMTQxWhcNMzQwMjIwMTUw
|
||||||
|
MTQxWjBIMQswCQYDVQQGEwJVUzEYMBYGA1UECgwPRHVzdGluIEMuIEhhdGNoMQ0w
|
||||||
|
CwYDVQQLDARMb2tpMRAwDgYDVQQDDAdMb2tpIENBMCowBQYDK2VwAyEAnmMawEIo
|
||||||
|
WfzFaLgpSiaPD+DHg28NHknMFcs7XpyTM9CjQjBAMB0GA1UdDgQWBBTFth3c4S/f
|
||||||
|
y0BphQy9SucnKN2pLzASBgNVHRMBAf8ECDAGAQH/AgEAMAsGA1UdDwQEAwIBBjAF
|
||||||
|
BgMrZXADQQCn0JWERsXdJA4kMM45ZXhVgAciwLNQ8ikoucsJcbWBp7bSMjcMVi51
|
||||||
|
I+slotQvQES/vfqp/zZFNl7KKyeeQ0sD
|
||||||
|
-----END CERTIFICATE-----
|
||||||
|
|
3
loki.yml
3
loki.yml
|
@ -3,3 +3,6 @@
|
||||||
- role: loki
|
- role: loki
|
||||||
tags:
|
tags:
|
||||||
- loki
|
- loki
|
||||||
|
- role: loki-caddy
|
||||||
|
tags:
|
||||||
|
- loki-caddy
|
||||||
|
|
|
@ -0,0 +1 @@
|
||||||
|
loki_caddy_server_name: loki.{{ ansible_domain }}
|
|
@ -0,0 +1,3 @@
|
||||||
|
dependencies:
|
||||||
|
- role: caddy
|
||||||
|
tags: caddy
|
|
@ -0,0 +1,24 @@
|
||||||
|
- name: ensure caddy is configured to proxy for loki
|
||||||
|
template:
|
||||||
|
src: Caddyfile.j2
|
||||||
|
dest: /etc/caddy/Caddyfile.d/loki.caddyfile
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: u=rw,go=r
|
||||||
|
notify:
|
||||||
|
- reload caddy
|
||||||
|
tags:
|
||||||
|
- config
|
||||||
|
|
||||||
|
- name: ensure client ca is configured
|
||||||
|
copy:
|
||||||
|
dest: /etc/caddy/loki-client-ca.crt
|
||||||
|
content: >-
|
||||||
|
{{ loki_caddy_client_ca|d('') }}
|
||||||
|
owner: root
|
||||||
|
group: root
|
||||||
|
mode: u=rw,go=r
|
||||||
|
notify:
|
||||||
|
- reload caddy
|
||||||
|
tags:
|
||||||
|
- cert
|
|
@ -0,0 +1,33 @@
|
||||||
|
{# vim: set sw=4 ts=4 sts=4 et : #}
|
||||||
|
{{ loki_caddy_server_name }} {
|
||||||
|
tls {
|
||||||
|
client_auth {
|
||||||
|
mode verify_if_given
|
||||||
|
trusted_ca_cert_file /etc/caddy/loki-client-ca.crt
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@anonymous {
|
||||||
|
expression {tls_client_subject} == null
|
||||||
|
}
|
||||||
|
@grafana {
|
||||||
|
header X-Grafana-User *
|
||||||
|
}
|
||||||
|
handle @anonymous {
|
||||||
|
route /loki/api/v1/push {
|
||||||
|
reverse_proxy 127.0.0.1:3100
|
||||||
|
}
|
||||||
|
route /metrics {
|
||||||
|
reverse_proxy 127.0.0.1:3100
|
||||||
|
}
|
||||||
|
route /ready {
|
||||||
|
reverse_proxy 127.0.0.1:3100
|
||||||
|
}
|
||||||
|
respond 403
|
||||||
|
}
|
||||||
|
handle @grafana {
|
||||||
|
reverse_proxy 127.0.0.1:3100
|
||||||
|
}
|
||||||
|
tls {{ loki_caddy_acme.email }} {
|
||||||
|
ca {{ loki_caddy_acme.url }}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue