mesh/delivery-group group feat/774-l3-reland rejected: composed together: the checker's verdict at the members' heads (b48c90fea31f): integration: mesh-self-ch…
mesh/delivery closed: a newer head of the same pull request
mesh/check failed: integration: mesh-self-check/cmd/mesh-self-check.TestTheSelfCheckWholeRunsOnTheBus: the run answered {Run:doctor-1793351737-1 At:20…
One commit with exactly the tree of the reviewed head35b4509c0a, on main12c2574c9d, so two compiled programs added and removed on the branch leave no trace in history (issue 1577).
202 lines
4.9 KiB
JSON
202 lines
4.9 KiB
JSON
{
|
|
"module": "influxdb",
|
|
"version": "1",
|
|
"provides": [
|
|
{
|
|
"name": "influxdb-api",
|
|
"scope": "mesh",
|
|
"identity": {
|
|
"in": "an InfluxDB v1 authorization"
|
|
},
|
|
"credential": {
|
|
"form": "pair"
|
|
}
|
|
}
|
|
],
|
|
"capabilities": [
|
|
"container-runtime"
|
|
],
|
|
"own-secrets": {
|
|
"admin": "${dir:state}/admin.secret",
|
|
"admin-token": "${dir:state}/admin-token.secret"
|
|
},
|
|
"listens": [
|
|
{
|
|
"name": "api",
|
|
"port": 8086,
|
|
"protocol": "tcp",
|
|
"from": "mesh",
|
|
"why": "queries, writes and the web UI, over http; consumers granted influxdb-api sign in with the mesh's credential, and a name is a route grant"
|
|
}
|
|
],
|
|
"config": {
|
|
"org": {
|
|
"type": "string",
|
|
"description": "The organisation influxdb-api names to its consumers and the module's tools write to; mesh is the one influxdb makes at its first start (server.env), and a machine whose server was set up with another sets its own (novox/hq issue 696, ADR 0348 clause 11).",
|
|
"trusted": true,
|
|
"default": "mesh"
|
|
},
|
|
"bucket": {
|
|
"type": "string",
|
|
"description": "The bucket influxdb-api names to its consumers and the module's tools write to; default is the one influxdb makes at its first start (server.env), and a machine whose server was set up with another sets its own (novox/hq issue 696, ADR 0348 clause 11).",
|
|
"trusted": true,
|
|
"default": "default"
|
|
},
|
|
"url": {
|
|
"type": "string",
|
|
"description": "The address the module's tools reach influxdb at, as a URL; empty is this machine's influxdb on its port.",
|
|
"trusted": true,
|
|
"default": ""
|
|
}
|
|
},
|
|
"serves": {
|
|
"influxdb-api": {
|
|
"scheme": "http",
|
|
"port": 8086,
|
|
"org": "${config:org}",
|
|
"bucket": "${config:bucket}"
|
|
}
|
|
},
|
|
"receives": {
|
|
"influxdb-api": "${dir:grants}/mesh.json"
|
|
},
|
|
"grants": {
|
|
"influxdb-api": "${dir:grants}"
|
|
},
|
|
"data": {
|
|
"own": [
|
|
{
|
|
"id": "data",
|
|
"path": "${dir:data}",
|
|
"class": "valuable",
|
|
"why": "every consumer's time series"
|
|
},
|
|
{
|
|
"id": "config",
|
|
"path": "${dir:config}",
|
|
"class": "valuable",
|
|
"why": "the server's own configuration and its operator token, made at its first start"
|
|
}
|
|
],
|
|
"consumers": {
|
|
"influxdb-api": {
|
|
"class": "valuable",
|
|
"in": "data",
|
|
"why": "a consumer's measurements are the only copy"
|
|
}
|
|
}
|
|
},
|
|
"resources": [
|
|
{
|
|
"id": "mesh-state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": "mesh",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "data",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "1000:1000",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "config",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "1000:1000",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "grants",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "server-env",
|
|
"type": "file",
|
|
"path": "${dir:state}/server.env",
|
|
"mode": "0600",
|
|
"template": "files/server.env"
|
|
},
|
|
{
|
|
"id": "server",
|
|
"type": "container",
|
|
"name": "influxdb",
|
|
"image": "influxdb@sha256:f75e48af0598e8aec7986e991a848d19a119101a7d563a2e5db1dfaac9c45daa",
|
|
"env-file": [
|
|
"${dir:state}/server.env"
|
|
],
|
|
"ports": [
|
|
"8086"
|
|
],
|
|
"volumes": [
|
|
"${dir:data}:/var/lib/influxdb2",
|
|
"${dir:config}:/etc/influxdb2",
|
|
"${dir:state}/admin.secret:/run/secrets/admin:ro",
|
|
"${dir:state}/admin-token.secret:/run/secrets/admin-token:ro"
|
|
]
|
|
},
|
|
{
|
|
"id": "runtime-config",
|
|
"type": "file",
|
|
"path": "${dir:mesh-state}/config.json",
|
|
"mode": "0600",
|
|
"template": "files/config.json",
|
|
"merge": "json",
|
|
"takes-config": [
|
|
"bucket",
|
|
"org",
|
|
"url"
|
|
],
|
|
"trusted": true
|
|
}
|
|
],
|
|
"requires": [
|
|
"route"
|
|
],
|
|
"contributes": {
|
|
"route": {
|
|
"label": "influxdb",
|
|
"endpoint": "api"
|
|
}
|
|
},
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "code",
|
|
"kind": "bundle",
|
|
"language": "typescript",
|
|
"entrypoints": [
|
|
"tools/index.js",
|
|
"provisioner/index.js"
|
|
],
|
|
"loads": [
|
|
"tools/index.js",
|
|
"provisioner/index.js"
|
|
],
|
|
"env": {
|
|
"MESH_INFLUXDB_URL": "http://127.0.0.1:${port:8086}",
|
|
"MESH_INFLUXDB_CONFIG_FILE": "${dir:mesh-state}/config.json",
|
|
"MESH_INFLUXDB_TOKEN_FILE": "${dir:state}/admin-token.secret",
|
|
"MESH_RECEIVES": "${dir:grants}/mesh.json"
|
|
}
|
|
},
|
|
{
|
|
"name": "files",
|
|
"kind": "archive",
|
|
"from": "files"
|
|
}
|
|
]
|
|
}
|
|
}
|