Files
Shadowbroker/helm/chart
Shadowbroker 30f0360ef8 Helm chart: switch image registry from GitLab to GHCR (#236)
The chart referenced registry.gitlab.com/bigbodycobain/shadowbroker/{backend,frontend}:latest
as the primary image source, but two things made that path effectively
broken for new K8s installs:

  1. No .gitlab-ci.yml has ever existed in this repo, so the GitLab
     registry was never populated by automated builds. Any images there
     would be stale or manually pushed.
  2. The GitLab registry returns HTTP 401 on anonymous pulls, so even
     if images existed, Helm-managed deployments without registry
     credentials would fail.

GHCR, by contrast, is auto-built and pushed on every merge to main by
.github/workflows/docker-publish.yml, and ghcr.io allows anonymous pulls
for public images. It's also the registry that docker-compose.yml has
been using as primary all along, so this brings the Helm install path
to parity with the Docker Compose install path.

After this change:
- ghcr.io/bigbodycobain/shadowbroker-backend:latest   <- now in chart
- ghcr.io/bigbodycobain/shadowbroker-frontend:latest  <- now in chart

GitLab is preserved in the comments as a documented fallback for
operators who run private mirrors with their own CI.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-19 01:01:05 -06:00
..
2026-05-01 22:56:50 -06:00

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-labs Helm 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 registry.gitlab.com/bigbodycobain/shadowbroker/backend (or 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 service
  • OPENSKY_CLIENT_ID - OpenSky client ID
  • OPENSKY_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 registry.gitlab.com/bigbodycobain/shadowbroker/frontend (or 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.