Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
ShadowBroker Helm Chart
A Helm chart for deploying ShadowBroker services (backend and frontend).
Prerequisites
- Helm >= 3.0
- Kubernetes cluster with access to the
bjw-s-labsHelm repository - Your OWN ingress controller, Gateway API, etc
ingress-nginx has been deprecated and as of writing this we do not feel comfortable hard-coding in an ingress implementation!
Consider using ingress controllers like Traefik and Cert-Manager for automatic SSL/TLS termination and dynamic route management.
Installation
Add the Helm repository
helm repo add bjw-s-labs https://bjw-s-labs.github.io/helm-charts/
helm repo update
Install the chart
helm install shadowbroker ./chart --create-namespace
Or use the repository:
helm install shadowbroker bjw-s-labs/app-template \
--namespace shadowbroker \
-f values.yaml
Configuration
Backend Service
The backend deployment runs with the following settings by default:
| Parameter | Description | Default |
|---|---|---|
controllers.backend.type |
Controller type | deployment |
controllers.backend.strategy |
Update strategy | RollingUpdate |
controllers.backend.rollingUpdate.unavailable |
Max unavailable during update | 1 |
controllers.backend.containers.main.runAsUser |
Security context user | 1001 |
controllers.backend.containers.main.runAsGroup |
Security context group | 1001 |
controllers.backend.containers.main.image.repository |
Container image | ghcr.io/bigbodycobain/shadowbroker-backend |
controllers.backend.containers.main.image.tag |
Container tag | latest |
controllers.backend.service.type |
Service type | ClusterIP |
controllers.backend.service.ports.http.port |
HTTP port | 8000 |
Backend Environment Variables
The following environment variables are configured via secrets:
AIS_API_KEY- API key for AIS serviceOPENSKY_CLIENT_ID- OpenSky client IDOPENSKY_CLIENT_SECRET- OpenSky client secret
These can be injected using a Secret resource or Kubernetes ConfigMap.
Frontend Service
The frontend deployment configuration:
| Parameter | Description | Default |
|---|---|---|
controllers.frontend.type |
Controller type | deployment |
controllers.frontend.strategy |
Update strategy | RollingUpdate |
controllers.frontend.rollingUpdate.unavailable |
Max unavailable during update | 1 |
controllers.frontend.containers.main.runAsUser |
Security context user | 1001 |
controllers.frontend.containers.main.runAsGroup |
Security context group | 1001 |
controllers.frontend.containers.main.image.repository |
Container image | ghcr.io/bigbodycobain/shadowbroker-frontend |
controllers.frontend.containers.main.image.tag |
Container tag | latest |
Frontend Environment Variables
BACKEND_URL- Backend API URL (defaults to Kubernetes service discovery)
Service Configuration
| Parameter | Description | Default |
|---|---|---|
service.backend.type |
Service type | ClusterIP |
service.backend.ports.http.port |
Backend HTTP port | 8000 |
service.frontend.type |
Service type | ClusterIP |
service.frontend.ports.http.port |
Frontend HTTP port | 3000 |
Uninstall
helm uninstall shadowbroker -n shadowbroker
Development
For development with local images, modify the image paths and tags:
controllers:
backend:
containers:
main:
image:
repository: localhost/my-backend-image
tag: dev-latest
frontend:
containers:
main:
image:
repository: localhost/my-frontend-image
tag: dev-latest
Values Schema
This chart uses the app-template Helm chart as a base. Refer to the app-template documentation for additional customization options.