Feature 57 (config and provisioning): release mesh-controller, the reviewed release branch merged with main, on top of main

This commit is contained in:
2026-10-16 08:28:38 +00:00
parent d70bb1f388
commit d984816844
259 changed files with 34899 additions and 353 deletions
File diff suppressed because one or more lines are too long
@@ -0,0 +1,46 @@
[
{
"id": "found.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"networks": [
"predecessor_default"
],
"type": "container"
},
{
"id": "library.access-storage/downloads",
"mode": "read",
"path": "/storage/downloads",
"type": "access"
},
{
"id": "library.access-storage/media/series",
"mode": "read",
"path": "/storage/media/series",
"type": "access"
},
{
"id": "library.config",
"mode": "0750",
"owner": "1001:2000",
"path": "/var/lib/library/config",
"type": "directory"
},
{
"content": "{\n \"accesses\": {\n \"downloads\": \"/storage/downloads\",\n \"series\": \"/storage/media/series\"\n },\n \"log\": \"warn\",\n \"places\": {\n \"config\": {\n \"owner\": \"1001:2000\",\n \"path\": \"/var/lib/library/config\"\n }\n },\n \"workers\": 4\n}\n",
"id": "library.runtime-config",
"mode": "0640",
"path": "/var/lib/library/config/runtime.json",
"type": "file"
},
{
"id": "library.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"type": "container",
"volumes": [
"/var/lib/library/config:/config",
"/storage/media/series:/series",
"/storage/downloads:/downloads:ro"
]
}
]
@@ -0,0 +1,37 @@
[
{
"id": "library.access-home/media/series",
"mode": "read",
"path": "/home/media/series",
"type": "access"
},
{
"id": "library.access-storage/downloads",
"mode": "read",
"path": "/storage/downloads",
"type": "access"
},
{
"id": "library.config",
"mode": "0750",
"path": "/var/lib/library/config",
"type": "directory"
},
{
"content": "{\n \"accesses\": {\n \"downloads\": \"/storage/downloads\",\n \"series\": \"/home/media/series\"\n },\n \"log\": \"warn\"\n}\n",
"id": "library.runtime-config",
"mode": "0640",
"path": "/var/lib/library/config/runtime.json",
"type": "file"
},
{
"id": "library.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"type": "container",
"volumes": [
"/var/lib/library/config:/config",
"/home/media/series:/series",
"/storage/downloads:/downloads:ro"
]
}
]
File diff suppressed because one or more lines are too long
@@ -0,0 +1,279 @@
{
"resources": [
{
"id": "distribution.registry-data",
"mode": "0700",
"path": "/var/lib/distribution/registry-data",
"type": "directory"
},
{
"id": "distribution.state",
"mode": "0700",
"path": "/var/lib/distribution/state",
"type": "directory"
},
{
"id": "distribution.store",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"ports": [
"5100:5000"
],
"type": "container",
"volumes": [
"/var/lib/distribution/state:/state",
"/var/lib/distribution/registry-data:/registry-data"
]
},
{
"id": "gitea.data",
"mode": "0700",
"path": "/var/lib/gitea/data",
"type": "directory"
},
{
"id": "gitea.grants",
"mode": "0700",
"path": "/var/lib/gitea/grants",
"type": "directory"
},
{
"id": "gitea.mesh-state",
"mode": "0700",
"path": "/var/lib/gitea/mesh-state",
"type": "directory"
},
{
"content": "{\n \"expose\": {\n \"22\": \"anywhere\"\n }\n}\n",
"id": "gitea.runtime-config",
"mode": "0640",
"path": "/var/lib/gitea/runtime-config.json",
"type": "file"
},
{
"id": "gitea.runtime-state",
"mode": "0700",
"path": "/var/lib/gitea/runtime-state",
"type": "directory"
},
{
"id": "gitea.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"ports": [
"20000:3000",
"222:22"
],
"type": "container",
"volumes": [
"/var/lib/gitea/mesh-state:/mesh-state",
"/var/lib/gitea/runtime-state:/runtime-state",
"/var/lib/gitea/state:/state",
"/var/lib/gitea/grants:/grants",
"/var/lib/gitea/data:/data"
]
},
{
"id": "gitea.state",
"mode": "0700",
"path": "/var/lib/gitea/state",
"type": "directory"
},
{
"id": "mssql.data",
"mode": "0700",
"path": "/var/lib/mssql/data",
"type": "directory"
},
{
"id": "mssql.dumps",
"mode": "0700",
"path": "/var/lib/mssql/dumps",
"type": "directory"
},
{
"id": "mssql.grants",
"mode": "0700",
"path": "/var/lib/mssql/grants",
"type": "directory"
},
{
"id": "mssql.net",
"name": "mssql",
"type": "network"
},
{
"id": "mssql.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"network": "mssql",
"ports": [
"4848:1433"
],
"type": "container",
"volumes": [
"/var/lib/mssql/state:/state",
"/var/lib/mssql/grants:/grants",
"/var/lib/mssql/data:/data",
"/var/lib/mssql/dumps:/dumps"
]
},
{
"id": "mssql.state",
"mode": "0700",
"path": "/var/lib/mssql/state",
"type": "directory"
},
{
"id": "postgres.dumps",
"mode": "0700",
"path": "/var/lib/postgres/dumps",
"type": "directory"
},
{
"id": "postgres.grants",
"mode": "0700",
"path": "/var/lib/postgres/grants",
"type": "directory"
},
{
"id": "postgres.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"ports": [
"6852:5432"
],
"type": "container",
"volumes": [
"/var/lib/postgres/state:/state",
"/var/lib/postgres/grants:/grants",
"/var/lib/postgres/store-data:/store-data",
"/var/lib/postgres/dumps:/dumps"
]
},
{
"id": "postgres.state",
"mode": "0700",
"path": "/var/lib/postgres/state",
"type": "directory"
},
{
"id": "postgres.store-data",
"mode": "0700",
"path": "/var/lib/postgres/store-data",
"type": "directory"
},
{
"content": "{\n \"contributions\": 1,\n \"generated\": \"by the mesh — do not edit; replaced whenever a module contributing to route arrives or leaves\",\n \"given\": [\n {\n \"from\": \"gitea\",\n \"node\": \"laptop\",\n \"at\": \"laptop.internal\",\n \"as\": \"mesh_laptop_gitea\",\n \"secret\": \"/laptop.gitea.secret\",\n \"values\": {}\n },\n {\n \"from\": \"umami\",\n \"node\": \"laptop\",\n \"at\": \"laptop.internal\",\n \"as\": \"mesh_laptop_umami\",\n \"secret\": \"/laptop.umami.secret\",\n \"values\": {\n \"endpoint\": \"web\",\n \"internal-name\": \"umami.laptop.internal\",\n \"label\": \"umami\",\n \"name\": \"umami.laptop.example.test\",\n \"port\": 1212\n }\n },\n {\n \"from\": \"gitea\",\n \"values\": {\n \"deny\": true,\n \"internal-name\": \"git.laptop.internal\",\n \"label\": \"git\",\n \"name\": \"git.laptop.example.test\",\n \"path\": \"/api/internal\",\n \"priority\": 100000\n }\n },\n {\n \"from\": \"gitea\",\n \"values\": {\n \"endpoint\": \"web\",\n \"internal-name\": \"git.laptop.internal\",\n \"label\": \"git\",\n \"name\": \"git.laptop.example.test\",\n \"port\": 20000\n }\n }\n ],\n \"requirement\": \"route\"\n}\n",
"id": "proxy.received-route",
"mode": "0644",
"path": "/var/lib/proxy/routes.json",
"type": "file"
},
{
"id": "umami.grants",
"mode": "0700",
"path": "/var/lib/umami/grants",
"type": "directory"
},
{
"id": "umami.net",
"name": "umami",
"type": "network"
},
{
"id": "umami.server",
"image": "registry.invalid:5000/library@sha256:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
"network": "umami",
"ports": [
"1212:3000"
],
"type": "container",
"volumes": [
"/var/lib/umami/state:/state",
"/var/lib/umami/grants:/grants"
]
},
{
"id": "umami.state",
"mode": "0700",
"path": "/var/lib/umami/state",
"type": "directory"
}
],
"rules": [
{
"Port": 222,
"Protocol": "tcp",
"From": "anywhere",
"Because": [
"gitea"
],
"Why": [
""
]
},
{
"Port": 1212,
"Protocol": "tcp",
"From": "mesh",
"Because": [
"umami"
],
"Why": [
""
]
},
{
"Port": 4848,
"Protocol": "tcp",
"From": "mesh",
"Because": [
"mssql"
],
"Why": [
""
]
},
{
"Port": 5100,
"Protocol": "tcp",
"From": "mesh",
"Because": [
"distribution"
],
"Why": [
""
]
},
{
"Port": 6852,
"Protocol": "tcp",
"From": "mesh",
"Because": [
"postgres"
],
"Why": [
""
]
},
{
"Port": 20000,
"Protocol": "tcp",
"From": "mesh",
"Because": [
"gitea"
],
"Why": [
""
]
},
{
"Port": 51820,
"Protocol": "udp",
"From": "anywhere",
"Because": [
"mesh-wireguard"
],
"Why": [
"the private network — a node at another site has no other way in"
]
}
]
}
File diff suppressed because it is too large Load Diff