Summary
The per-deployable k8s_sample/ manifests, applied as-is, produce a non-working deploy (workers never connect; durable journaling silently off), and several config keys are dead (read + validated but never used), which misdirects operators. Housekeeping to make the samples deploy a working system and to remove/document the dead surface.
Scope Check
Affected Area
Background
Verified while preparing a control-plane + worker deploy:
Sample-manifest gaps (operator foot-guns):
Dead / misleading config:
FKST_HOSTED_LLM_GATEWAY_URL + FKST_HOSTED_LLM_MODEL / _TIMEOUT_SECS / _MAX_OUTPUT_BYTES are read and cross-validated at load (config.rs) but never consumed — no NyxLlmGateway is constructed in fkst-control-plane (the impl + tests live in fkst-shared only). The real engine LLM knob is FKST_HOSTED_CHRONO_LLM_BASE_URL + FKST_HOSTED_CODEX_MODEL. The dead keys read like the LLM config and mislead operators.
FKST_HOSTED_ENGINE_GITHUB_TOKEN_REFRESH_SECS is loaded/validated but unused — the refresh cadence is the hardcoded 55-min TOKEN_REFRESH_INTERVAL (in-process driver and worker refresh.rs). Dead knob.
Purpose
A fresh operator should be able to apply the samples (with documented edits) and get a working issue→run→monitor pipeline, and should not be misled by config keys that do nothing.
Affected Files
backend/fkst-control-plane/k8s_sample/{configmap.yaml,secret.example.yaml,deployment.yaml,README.md}
backend/fkst-worker/k8s_sample/{configmap.yaml,secret.example.yaml,README.md}
backend/fkst-control-plane/src/config.rs (remove or clearly deprecate the dead FKST_HOSTED_LLM_* keys; document FKST_HOSTED_ENGINE_GITHUB_TOKEN_REFRESH_SECS as inert or wire it).
Acceptance Criteria
Definition of Done
The sample manifests deploy a functioning control-plane + worker, and the config surface has no silently-dead keys. Relates to #193.
Summary
The per-deployable
k8s_sample/manifests, applied as-is, produce a non-working deploy (workers never connect; durable journaling silently off), and several config keys are dead (read + validated but never used), which misdirects operators. Housekeeping to make the samples deploy a working system and to remove/document the dead surface.Scope Check
Affected Area
Background
Verified while preparing a control-plane + worker deploy:
Sample-manifest gaps (operator foot-guns):
FKST_INTERNAL_AUTH_TOKENis only referenced in comments — not injected by the control-plane manifests and commented out insecret.example.yaml(~:46). It is optional on the controller (when absent the/internal/v1/*routes are simply not mounted,main.rs), so a stockapply -kyields a controller that silently never accepts any worker (every register/heartbeat 404s).FKST_JOURNAL_GITHUB_REPO(configmap ~:79) andGITHUB_TOKEN(secret ~:41) are both commented out; without both,Journaler::startdegrades to no-op-with-warn.FKST_DISPATCH_MODEis absent from the samples and defaults off (the broader dispatch-default-on + slim-image cutover is chore: production cutover to worker dispatch (default-on + delete in-process driver + slim control-plane image) #193 — this issue only covers the sample manifests / config hygiene, deferring the code cutover to chore: production cutover to worker dispatch (default-on + delete in-process driver + slim control-plane image) #193).Dead / misleading config:
FKST_HOSTED_LLM_GATEWAY_URL+FKST_HOSTED_LLM_MODEL/_TIMEOUT_SECS/_MAX_OUTPUT_BYTESare read and cross-validated at load (config.rs) but never consumed — noNyxLlmGatewayis constructed in fkst-control-plane (the impl + tests live infkst-sharedonly). The real engine LLM knob isFKST_HOSTED_CHRONO_LLM_BASE_URL+FKST_HOSTED_CODEX_MODEL. The dead keys read like the LLM config and mislead operators.FKST_HOSTED_ENGINE_GITHUB_TOKEN_REFRESH_SECSis loaded/validated but unused — the refresh cadence is the hardcoded 55-minTOKEN_REFRESH_INTERVAL(in-process driver and workerrefresh.rs). Dead knob.Purpose
A fresh operator should be able to apply the samples (with documented edits) and get a working issue→run→monitor pipeline, and should not be misled by config keys that do nothing.
Affected Files
backend/fkst-control-plane/k8s_sample/{configmap.yaml,secret.example.yaml,deployment.yaml,README.md}backend/fkst-worker/k8s_sample/{configmap.yaml,secret.example.yaml,README.md}backend/fkst-control-plane/src/config.rs(remove or clearly deprecate the deadFKST_HOSTED_LLM_*keys; documentFKST_HOSTED_ENGINE_GITHUB_TOKEN_REFRESH_SECSas inert or wire it).Acceptance Criteria
FKST_INTERNAL_AUTH_TOKEN(matched on both sides) and the journal repo/token required-and-obvious for a worker deploy.FKST_HOSTED_LLM_*keys are removed (or explicitly marked deprecated/no-op) and the real LLM knobs documented.FKST_HOSTED_ENGINE_GITHUB_TOKEN_REFRESH_SECSis either wired to the actual refresh cadence or documented as inert.Definition of Done
The sample manifests deploy a functioning control-plane + worker, and the config surface has no silently-dead keys. Relates to #193.