Helm charts for deploying Jalapeno, an infrastructure platform for SDN control plane development.
| Chart | Description |
|---|---|
| jalapeno | Full platform deployment (collectors, processors, databases, API, UI) |
| jalapeno-tenant | Per-tenant deployment for multi-tenant environments |
- Kubernetes 1.24+
- Helm 3.10+
kubectlconfigured to communicate with your cluster
helm install jalapeno charts/jalapeno \
--namespace jalapeno --create-namespaceDeploys only BMP/topology components (GoBMP, Kafka, ArangoDB, graph processors, API) without the telemetry stack (Telegraf, InfluxDB, Grafana).
helm install jalapeno charts/jalapeno \
-f charts/jalapeno/values-topology-only.yaml \
--namespace jalapeno --create-namespacehelm install jalapeno charts/jalapeno \
-f charts/jalapeno/values-kind.yaml \
--namespace jalapeno --create-namespacehelm install jalapeno charts/jalapeno \
-f charts/jalapeno/values-openshift.yaml \
--namespace jalapeno --create-namespaceMulti-tenant mode deploys shared infrastructure (ArangoDB, Kafka, API, UI) in the
jalapeno namespace, with per-tenant collectors and processors in isolated namespaces.
Each tenant gets its own ArangoDB database, GoBMP collector, and graph processors.
This installs only ArangoDB, Kafka/Zookeeper, the API, and UI -- no collectors or processors. Those are deployed per-tenant in step 2.
helm install jalapeno charts/jalapeno \
-f charts/jalapeno/values-multi-tenant-infra.yaml \
--namespace jalapeno --create-namespaceNote on the API: The API currently connects to a single ArangoDB database. A multi-tenant API refactor is planned to allow querying across tenant databases. In the interim, the shared API serves the default
jalapenodatabase.
The Helm release name becomes the tenant name (and ArangoDB database name). Each tenant gets its own GoBMP, GoBMP-Arango, linkstate-edge, igp-graph, and ip-graph in an isolated namespace, all pointing at the shared Kafka and ArangoDB.
helm install swift-falcon charts/jalapeno-tenant \
--namespace swift-falcon --create-namespaceOr specify a custom tenant name:
helm install my-release charts/jalapeno-tenant \
--namespace my-tenant-ns --create-namespace \
--set tenant.name=my-tenantFor memorable, operator-friendly names, use adjective-noun combinations:
swift-falcon bright-mesa calm-ridge bold-creek
keen-pine warm-cedar cool-hawk wild-wolf
pure-bear sage-lake vast-peak fair-vale
true-dale deep-fjord live-glen glad-moor
fine-reef rare-cove tame-arch free-dune
helm install bold-creek charts/jalapeno-tenant \
--namespace bold-creek --create-namespace
helm install keen-pine charts/jalapeno-tenant \
--namespace keen-pine --create-namespaceEvery component can be toggled via <component>.enabled:
# Enable optional SRv6 Local SIDs processor
helm install jalapeno charts/jalapeno \
--namespace jalapeno --create-namespace \
--set srv6-localsids.enabled=truehelm install jalapeno charts/jalapeno \
--namespace jalapeno --create-namespace \
--set gobmp.image.tag=v2.0.0 \
--set arangodb.image.tag=3.11.0helm install jalapeno charts/jalapeno \
--namespace jalapeno --create-namespace \
--set arangodb.persistence.data.size=200Gi \
--set arangodb.persistence.data.storageClass=fast-ssdFor bare-metal or single-node clusters:
helm install jalapeno charts/jalapeno \
--namespace jalapeno --create-namespace \
--set arangodb.hostPath.enabled=true \
--set kafka.zookeeper.hostPath.enabled=true \
--set kafka.broker.hostPath.enabled=true# Remove the release
helm uninstall jalapeno --namespace jalapeno
# Remove the namespace (also deletes PVCs)
kubectl delete namespace jalapeno
# Remove tenant
helm uninstall swift-falcon --namespace swift-falcon
kubectl delete namespace swift-falcon Network(s)
|
BMP / gNMI feeds
|
+-----------+
| Collectors | (GoBMP, Telegraf-Ingress)
+-----------+
|
+-----------+
| Kafka | (message bus)
+-----------+
/ \
+-----------+ +-----------+
| Topology | | Telemetry |
| Processors| | Processors|
+-----------+ +-----------+
| |
+-----------+ +-----------+
| ArangoDB | | InfluxDB |
| (GraphDB) | | (TSDB) |
+-----------+ +-----------+
| |
+-----------+ +-----------+
| API | | Grafana |
+-----------+ +-----------+
|
+-----------+
| SDN Apps | (srctl, etc.)
+-----------+
To add a new graph processor:
- Create a new subchart directory under
charts/jalapeno/charts/<your-processor>/ - Add
Chart.yaml,values.yaml, andtemplates/deployment.yaml - Follow the pattern of existing processors (e.g.,
igp-graph) - Add a corresponding section in the parent
values.yamlwithenabled: false - For tenant support, add a template in
charts/jalapeno-tenant/templates/
See LICENSE.