Runtime configuration for contributors
The canonical flag, environment and default tables live in the customer runtime reference. Update that reference when changing flag parsing or generated workload configuration.
CMS
CMS main defines runtime wiring and flags.
From repository root, run go run ./cms/cmd/cms --help for flag help.
See CMS settings and the
authentication Secret.
CMS timeout and shutdown settings are currently fixed in code; editable
configuration is tracked in TODO.md.
Volume preparation subcommand
cms prepare-volumes runs before the CMS as an init container. It changes
ownership recursively without following symlinks. Keep its flags aligned with
volume preparation settings
and the operator-generated init container.
Public frontend
Frontend config parses flags and
supported environment fallbacks. Run go run ./frontend/cmd/webserver --help
for help. Validate default, malformed and explicit values when changing parsing;
keep frontend settings
accurate.
Controller
Controller main defines controller
flags. Run go run ./controller/cmd/controller --help for help including Zap
logging options. Changes to shared workload images affect existing Websites;
keep controller settings and
reconciliation tests aligned.
Build identity and HTTP headers
Application version is internal/buildinfo.Version in each module. A plain Go
build reports dev; Docker accepts --build-arg VERSION=<build-name> and stamps
it into the binary. This version is separate from content release IDs, theme
semantic versions and the JavaScript package version.
Every HTTP listener sends Server: Viking <Component> <version> using CMS,
Frontend or Controller as the component name. Apply buildinfo.WithServerHeader
at the outer handler boundary, outside authentication; health, metrics, OAuth,
redirects and errors must carry it too. Add response-level tests for accepted
and rejected requests when changing listeners. Proxies must preserve the upstream
header. See observability
for verification and build commands.
