Skip to content

danube-messaging/danube_helm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Danube Helm Charts

Modular Helm charts for deploying Danube messaging platform on Kubernetes.

Charts

Chart Description
danube-envoy Envoy gRPC proxy for routing clients to the correct broker
danube-core Core components: brokers (StatefulSet), etcd, Prometheus

Additional charts (coming soon): Admin UI, connectors (Qdrant, DeltaLake, SurrealDB, MQTT, Webhook).

Repository Structure

charts/
├── danube-envoy/        # Envoy gRPC proxy (Deployment + NodePort/LoadBalancer)
└── danube-core/         # Brokers, etcd, Prometheus
    └── examples/        # Broker configs + values-minimal.yaml for Kind
scripts/                 # Helper scripts
setup_local_machine.md   # Step-by-step local deployment guide

Prerequisites

  • Kubernetes 1.19+
  • Helm 3.0+
  • PersistentVolume provisioner support (for production deployments)

Quick Start

The deployment uses two charts: install the proxy first, discover its address, then install the core with that address.

1. Install the Envoy Proxy

kubectl create namespace danube
helm install danube-envoy ./charts/danube-envoy -n danube

2. Discover the Proxy Address

PROXY_PORT=$(kubectl get svc danube-envoy -n danube \
  -o jsonpath='{.spec.ports[?(@.name=="grpc")].nodePort}')
NODE_IP=$(kubectl get nodes \
  -o jsonpath='{.items[0].status.addresses[?(@.type=="InternalIP")].address}')
echo "Proxy address: ${NODE_IP}:${PROXY_PORT}"

3. Install Danube Core

kubectl create configmap danube-broker-config \
  --from-file=danube_broker.yml=./charts/danube-core/examples/danube_broker.yml \
  -n danube

helm install danube-core ./charts/danube-core -n danube \
  -f ./charts/danube-core/examples/values-minimal.yaml \
  --set broker.externalAccess.connectUrl="${NODE_IP}:${PROXY_PORT}"

4. Test

danube-cli produce -s http://${NODE_IP}:${PROXY_PORT} \
  -t /default/test_topic -m "Hello from Danube" -c 5

For the full walkthrough (Kind cluster setup, verification, consumer testing), see setup_local_machine.md.

Documentation

Common Configuration Patterns

Customize Broker Replicas

helm install danube-core ./charts/danube-core -n danube \
  --set broker.replicaCount=5

Configure Resource Limits

helm install danube-core ./charts/danube-core -n danube \
  --set broker.resources.requests.memory=2Gi \
  --set broker.resources.limits.memory=4Gi

Use Custom Envoy Configuration

# Create a ConfigMap from your custom config
kubectl create configmap my-envoy-config \
  --from-file=envoy.yaml=my-envoy.yaml -n danube

# Install with the custom ConfigMap
helm install danube-envoy ./charts/danube-envoy -n danube \
  --set existingConfigMap=my-envoy-config

Use Custom Values File

helm install danube-core ./charts/danube-core -n danube \
  -f my-custom-values.yaml

Uninstallation

helm uninstall danube-core -n danube
helm uninstall danube-envoy -n danube

Note: PersistentVolumeClaims are not automatically deleted. Clean them up by deleting the namespace:

kubectl delete namespace danube

Troubleshooting

Get pod status:

kubectl get pods -n danube

View logs:

# Broker logs
kubectl logs -l app.kubernetes.io/component=broker -n danube

# ETCD logs
kubectl logs -l app.kubernetes.io/component=etcd -n danube

# Envoy proxy logs
kubectl logs -l app.kubernetes.io/name=danube-envoy -n danube

For more details, see the Troubleshooting section in the setup guide.

License

This Helm chart is licensed under the Apache 2.0 License. See the LICENSE file for more details.

About

Helm Charts for Danube Pub/Sub Messaging

Resources

License

Stars

Watchers

Forks

Packages

No packages published