A ConfigHub bridge worker to manage Helm charts
- Helm-aware applier (HelmApplier) for Helm charts
- Full Helm support: install/upgrade/uninstall with hooks and garbage collection
- Multi-architecture: linux/amd64 and linux/arm64
- Static binary with minimal container footprint
- Support Cancel and Override operations
- Update ConfigHub SDK to
v0.0.0-20251208004809-33a046207485
# Build static binary for Linux/amd64 make build # Build for local platform make build-local # View all targets make help# Single platform make docker # Multi-arch (amd64, arm64) - requires one-time setup make docker-buildx-setup make docker-multiarch # Build and push to registry make docker-multiarch-pushUse the ConfigHub CLI to install the worker:
cub worker create helm-bridge cub worker install helm-bridge \ --image ghcr.io/chanwit/helm-bridge:latest \ -e CONFIGHUB_IN_CLUSTER_TARGET_NAME=my-cluster \ --export --include-secret | kubectl apply -f -This will deploy the worker to your Kubernetes cluster and automatically configure credentials. The worker will automatically create a Target named my-cluster for units to set.
The worker requires the following environment variables:
CONFIGHUB_WORKER_ID # Worker ID (automatically set by cub worker install) CONFIGHUB_WORKER_SECRET # Worker secret (automatically set by cub worker install) CONFIGHUB_URL # Optional: defaults to https://hub.confighub.com CONFIGHUB_IN_CLUSTER_TARGET_NAME # Optional: target name to represent the clusterComplete workflow to test the Helm Bridge locally with Docker and KinD:
# 1. Create a Kind cluster kind create cluster # 2. Login to ConfigHub cub auth login # 3. Create a worker cub worker create dev-worker # 4. Build and load the Docker image into Kind make docker kind load docker-image ghcr.io/chanwit/helm-bridge:latest # 5. Install the worker to Kubernetes export CONFIGHUB_URL=$(cub context get --json | jq .coordinate.serverURL -r) cub worker install dev-worker \ --image=ghcr.io/chanwit/helm-bridge:latest \ --image-pull-policy=IfNotPresent \ -e CONFIGHUB_URL=$CONFIGHUB_URL \ -e CONFIGHUB_IN_CLUSTER_TARGET_NAME=dev-cluster \ --export --include-secret | kubectl apply -f - # 6. Install a Helm chart using ConfigHub cub helm install \ --namespace=prometheus \ --use-placeholder=false \ prometheus \ prometheus-community/kube-prometheus-stack # 7. Set the target for the unit cub unit set-target dev-cluster --where "Labels.HelmChart = 'kube-prometheus-stack'" # 8. Apply the unit cub unit apply --where "Labels.HelmChart = 'kube-prometheus-stack'"# Check Helm release helm list -n prometheus # Check resources kubectl get all -n prometheusMIT