Skip to content

Commit 40790f5

Browse files
committed
fix(busbar-150): mount at the DEFAULT paths and pre-supply the signing key - it boots
Root cause of three failed boots: launch.env's '-e' args did not reach the container. busbar was reading the IMAGE'S BUILT-IN /etc/busbar/config.yaml the whole time, which is why it complained about a provider named 'anthropic' and an ANTHROPIC_KEY that appear nowhere in this manifest. BUSBAR_CONFIG never took effect, so pointing the mounts at /work pointed them at nothing busbar read. Verified locally against the real image, with the exact mount layout the box uses: * config and providers mount at /etc/busbar/{config,providers}.yaml, the defaults, which provably work * auth.signing_key is a documented secret reference to a mounted file, so 1.5.0 never needs to write to read-only /etc/busbar. The key was generated by this very image; with chain: [] it signs nothing the benchmark uses, so it is a throwaway dev artefact rather than a credential * BUSBAR_ADMIN_TOKEN and BUSBAR_STATE_FILE go in the env FILE, the path that demonstrably reaches the container (it is how BENCH_MOCK_KEY resolves). Empty BUSBAR_STATE_FILE stops a per-tick state-snapshot retry against a read-only path - noise inside a measurement window Local result: boots, listens on 8000 and 8081, zero state-snapshot failures. Also read the docs properly this time - /docs/migration-1-5/ and /docs/deploy/docker/ exist and I had been reverse-engineering from boot errors instead of reading them.
1 parent 28090da commit 40790f5

4 files changed

Lines changed: 16 additions & 16 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
958e2e82eff7734785a51d4c8f9244806b22a2338639291241670d12323393f9

‎gateways/busbar-150/config.gen.yaml.tmpl‎

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,11 @@ models:
6767
# the board's rule is the bare minimum required to run.
6868
auth:
6969
chain: []
70+
# A PRE-SUPPLIED KEY, because /etc/busbar is read-only in the image. 1.5.0 generates and persists an
71+
# ed25519 signing key on first boot when this is omitted, and cannot: 'cannot install signing key
72+
# /etc/busbar/busbar-signing.key: Permission denied'. Declaring the documented secret reference to a
73+
# mounted file removes the need to write at all. With chain: [] this key signs nothing the benchmark
74+
# uses - the data plane is unauthenticated, matching what 1.4.1 ran - so it is a throwaway dev key
75+
# generated by this very image, not a credential.
76+
signing_key:
77+
file: /etc/busbar/busbar-signing.key

‎gateways/busbar-150/definition.json‎

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -32,30 +32,20 @@
3232
"lang": "Rust",
3333
"launch": {
3434
"args": [],
35-
"env": [
36-
[
37-
"BUSBAR_CONFIG",
38-
"/work/config.yaml"
39-
],
40-
[
41-
"BUSBAR_PROVIDERS",
42-
"/work/providers.yaml"
43-
],
44-
[
45-
"BUSBAR_ADMIN_TOKEN",
46-
"bench-admin-token"
47-
]
48-
],
4935
"image": "getbusbar/busbar:1.5.0",
5036
"kind": "docker",
5137
"mounts": [
5238
{
53-
"container_path": "/work/config.yaml",
39+
"container_path": "/etc/busbar/config.yaml",
5440
"host_path": "config.gen.yaml"
5541
},
5642
{
57-
"container_path": "/work/providers.yaml",
43+
"container_path": "/etc/busbar/providers.yaml",
5844
"host_path": "providers.gen.yaml"
45+
},
46+
{
47+
"container_path": "/etc/busbar/busbar-signing.key",
48+
"host_path": "busbar-signing.key"
5949
}
6050
]
6151
},

‎gateways/busbar-150/env‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
BENCH_MOCK_KEY=dummy
22
BENCH_BEDROCK_KEY=AKIAMOCKACCESSKEY:mock-secret-access-key
33
BUSBAR_ADMIN_TOKEN=bench-admin-token
4+
BUSBAR_STATE_FILE=

0 commit comments

Comments
 (0)