Kubernetes (Helm)
PrivateAIM Hub can be deployed to Kubernetes using the official Helm chart. This is the recommended approach for production environments.
TIP
Deployment manifests, scripts, and step-by-step guides are in the hub-deployment repository under kubernetes/.
Prerequisites
- A functioning Kubernetes cluster with ingress capability
- A default storage class configured
- Helm installed
- Two domain names: one for Hub, one for Harbor (can use
/etc/hostsfor local setups)
Quick Start
# Add the Helm repository
helm repo add flame https://PrivateAIM.github.io/helm
helm repo update
# Install with custom values
helm install hub -f values.yaml flame/hubKubernetes Distributions
MicroK8s (Recommended for Production)
# Automated setup
git clone https://github.com/PrivateAIM/hub-deployment.git
cd hub-deployment
bash scripts/1_microk8s_setup.shThe setup script installs MicroK8s and enables the required addons:
dashboard— Kubernetes dashboardingress— Nginx ingress controllerhostpath-storage— local persistent volumesmetrics-server— resource monitoring
Default storage path: /var/snap/microk8s/common
Minikube (Development/Testing)
minikube start
minikube addons enable ingressFor DNS resolution, configure your local hosts file or use the provided scripts/minikube-dns.ps1 (Windows).
Configuration
Create a custom values file rather than modifying defaults. Reference the upstream values.yaml for all available options.
Example override (values.yaml):
global:
flameHub:
ingress:
enabled: true
ssl: true
hostname: "hub.local"
harbor:
enabled: true
externalURL: "https://harbor.hub.local/"Ingress Options
Path-based routing (default): All Hub services are routed via path prefixes under a single hostname. Harbor requires a separate hostname.
Gateway API with F5 NGINX Gateway Fabric: Recommended for setups that involve large file uploads (better chunked transfer support).
Storage Replication (Optional)
For multi-node clusters (3+ nodes), OpenEBS Mayastor provides replicated persistent storage with automatic failover.
Node Preparation
# Automated setup (run on each node)
bash scripts/2_prepare_for_mayastor.shThis script:
- Enables 1024 hugepages (2MB each)
- Loads the
nvme-tcpkernel module - Labels the node with
openebs.io/engine=mayastor
Installation
Follow the OpenEBS Mayastor guide in the hub-deployment repository to:
- Clone the FLAME Helm repository
- Install the OpenEBS wrapper chart
- Configure the
mayastor-replicatedstorage class in your Hub values
Further Reading
- hub-deployment repository — full deployment guides and scripts
- FLAME Helm charts — chart source and
values.yamlreference