Authors and updates APIHUB deployment assets in qubership-apihub: Helm values/templates, Docker Compose env wiring, docs/configuration-reference.md parity, local-k8s-quickstart, and optional extensions (linter, agents-backend). Use when changing helm-templates/, docker-compose/, or deployment docs under docs/.
Installation
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Authors and updates APIHUB deployment assets in qubership-apihub: Helm values/templates, Docker Compose env wiring, docs/configuration-reference.md parity, local-k8s-quickstart, and optional extensions (linter, agents-backend). Use when changing helm-templates/, docker-compose/, or deployment docs under docs/.
APIHub Deployment Authoring
Follow AGENTS.md. This repository is the umbrella deployment project — application
source code lives in sibling component repositories; do not implement Go/TS/UI features here.
Workflow
Identify the delivery surface — Helm (production-oriented), Compose (local dev/test),
or local-k8s-quickstart (developer/R&D only, not production).
Read the configuration map — docs/configuration-reference.md
defines the hierarchy: Helm values.yaml → rendered Secrets/env → component loaders.
Keep cross-file consistency — tokens, URLs, and extension base URLs must align (see
configuration reference § Cross-cutting token and URL consistency).
Update docs in the same change — when values/env names or behaviour change, update
docs/configuration-reference.md and the relevant guide (installation-guide.md,
admin-guide.md) so the map stays authoritative.
Helm (helm-templates/qubership-apihub/)
values.yaml is the canonical contract: qubershipApihubBackend.env,
qubershipApiLinterService.env, and qubershipApihubAgentsBackend.env each render into a
service config.yaml via templates (mounted from a config Secret); UI and builder use pod env
from their *.env sections.
Templates — prefer extending existing templates/qubership-*-deployment.yaml and
Secret/ConfigMap patterns; do not bypass the chart for supported production shapes.
Extensions — default in-cluster DNS for linter and agents-backend; document Compose
host.docker.internal equivalents when touching examples.
Images — repository + tag under each component; match published ghcr.io/netcracker/
images unless the task specifies overrides.
After chart edits, sanity-check against docs/configuration-reference.md § Helm table.
Docker Compose (docker-compose/)
Stack
Path
Notes
Generic
apihub-generic/
Default local rig
Keycloak SSO
with-keycloak/
SSO example; parallel env/YAML layout
Config-file services — qubership-apihub-backend-config.yaml,
qubership-api-linter-service-config.yaml, and qubership-apihub-agents-backend-config.yaml
are each mounted as config.yaml; placeholders (${JWT_PRIVATE_KEY}, ${APIHUB_ACCESS_TOKEN},
${OPENAI_TOKEN}, …) are substituted by generate_env_and_up_compose.sh.
APIHUB_API_KEY (builder) must match backend zeroDayConfiguration.accessToken.
technicalParameters.apihub.url for linter/agents-backend is the Portal URL reachable
from their containers (often host.docker.internal + published UI port on desktop Compose).
extensions[].baseUrl in backend YAML must be reachable from users' browsers and from
the backend process.
Do not treat Compose as replacing Helm for production install arguments.
Local Kubernetes quickstart (helm-templates/local-k8s-quickstart/)
Not production-ready — Kind/Rancher guides, overlay values, optional Superset chart.
Entry: README.md and
apihub-quickstart.sh where present.
Values templates: local-k8s-values.yaml, with-keycloak-local-k8s-values.yaml, secrets
templates under qubership-apihub/.
When changing quickstart assets, verify install/uninstall steps still match the README.
Extensions (optional components)
Extension
Helm values key
Compose config file
Component repo
API Linter
qubershipApiLinterService
qubership-api-linter-service-config.yaml
qubership-api-linter-service
Agents backend
qubershipApihubAgentsBackend
qubership-apihub-agents-backend-config.yaml
qubership-apihub-agents-backend
Both extensions load a config.yaml (the *.env value block rendered into a config Secret on
Helm; a mounted file on Compose) and read only LOG_LEVEL, GOMEMLIMIT, and *_CONFIG_FOLDER
from pod env.
Linter config.yaml: database, technicalParameters.apihub.*, linters.spectral.*,
linters.ai.*, and olric.*. Spectral rulesets stay data managed through the linter API.
Agents-backend config.yaml: database, technicalParameters.apihub.*,
businessParameters.defaultWorkspaceId, security.*, and cleanup.snapshots.{schedule,ttlDays}.
Documentation parity
When adding or renaming a configuration knob:
Confirm the authoritative loader in the component repo (config.template.yaml for backend, agent,
linter, and agents-backend; env-only for UI/builder).