Compare commits

..
1 Commits
Author SHA1 Message Date
jschoubben 4f952ce771 route-proxy: a bus account, to read its membership
The proxy reads its routes and the mesh's addresses from its membership
on the bus rather than from a file alone (novox/hq ADR 0167, issue 191).
2026-10-02 01:46:18 +02:00
+15 -13
View File
@@ -25,6 +25,9 @@
"acme-ca": "${dir:state}/acme-ca.json", "acme-ca": "${dir:state}/acme-ca.json",
"internal-acme-ca": "${dir:state}/internal-acme-ca.json" "internal-acme-ca": "${dir:state}/internal-acme-ca.json"
}, },
"own-secrets": {
"broker": "${dir:mesh-state}/broker"
},
"listens": [ "listens": [
{ {
"name": "http", "name": "http",
@@ -48,6 +51,12 @@
"mode": "0700", "mode": "0700",
"place": "." "place": "."
}, },
{
"id": "mesh-state",
"type": "directory",
"mode": "0700",
"place": "mesh"
},
{ {
"id": "routes-dir", "id": "routes-dir",
"type": "directory", "type": "directory",
@@ -80,13 +89,6 @@
"mode": "0600", "mode": "0600",
"content": "INTERNAL_ACME_DIRECTORY=https://${bound:internal-acme-ca:at}:${bound:internal-acme-ca:port}${bound:internal-acme-ca:path}\nINTERNAL_ACME_ROOTS=https://${bound:internal-acme-ca:at}:${bound:internal-acme-ca:port}${bound:internal-acme-ca:roots}\nINTERNAL_ACME_ROOTS_PATH=${bound:internal-acme-ca:roots}\n" "content": "INTERNAL_ACME_DIRECTORY=https://${bound:internal-acme-ca:at}:${bound:internal-acme-ca:port}${bound:internal-acme-ca:path}\nINTERNAL_ACME_ROOTS=https://${bound:internal-acme-ca:at}:${bound:internal-acme-ca:port}${bound:internal-acme-ca:roots}\nINTERNAL_ACME_ROOTS_PATH=${bound:internal-acme-ca:roots}\n"
}, },
{
"id": "internal-sources-env",
"type": "file",
"path": "${dir:state}/internal-sources.env",
"mode": "0600",
"content": "INTERNAL_SOURCES=${machine:mesh-range}\n"
},
{ {
"id": "trust", "id": "trust",
"type": "container", "type": "container",
@@ -139,13 +141,13 @@
"network": "host", "network": "host",
"env-file": [ "env-file": [
"${dir:state}/acme.env", "${dir:state}/acme.env",
"${dir:state}/internal-acme.env", "${dir:state}/internal-acme.env"
"${dir:state}/internal-sources.env"
], ],
"volumes": [ "volumes": [
"${dir:routes-dir}:/routes:ro", "${dir:routes-dir}:/routes:ro",
"${dir:acme-cache}:/acme", "${dir:acme-cache}:/acme",
"${dir:ca-dir}:/ca:ro" "${dir:ca-dir}:/ca:ro",
"${dir:mesh-state}/broker:/run/secrets/broker:ro"
], ],
"env": { "env": {
"ROUTES": "/routes/mesh.json", "ROUTES": "/routes/mesh.json",
@@ -153,14 +155,14 @@
"TLS_LISTEN": ":443", "TLS_LISTEN": ":443",
"ACME_CACHE": "/acme", "ACME_CACHE": "/acme",
"ACME_CA_BUNDLE": "/ca/root.crt", "ACME_CA_BUNDLE": "/ca/root.crt",
"INTERNAL_ACME_CA_BUNDLE": "/ca/internal-root.crt" "INTERNAL_ACME_CA_BUNDLE": "/ca/internal-root.crt",
"MESH_BROKER_FILE": "/run/secrets/broker"
}, },
"restart-on": [ "restart-on": [
"trust", "trust",
"acme-env", "acme-env",
"internal-trust", "internal-trust",
"internal-acme-env", "internal-acme-env"
"internal-sources-env"
] ]
} }
], ],