Skip to content

chanwit/helm-bridge

Repository files navigation

Helm Bridge

A ConfigHub bridge worker to manage Helm charts

Features

  • 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

Building

Build from Source

# Build static binary for Linux/amd64 make build # Build for local platform make build-local # View all targets make help

Build Docker Image

# 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-push

Installation

Install to Kubernetes

Use 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.

Configuration

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 cluster

Development Testing

Test with Kind Cluster

Complete 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'"

Verify Helm Release

# Check Helm release helm list -n prometheus # Check resources kubectl get all -n prometheus

License

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors