This guide walks you through deploying the meshIQ platform using Helm. It assumes you already have a running Kubernetes cluster ready for chart deployments.
Prerequisites
- A running Kubernetes cluster, ready to accept Helm chart deployments.
- (Optional) Reserved public IP addresses if you plan to expose services via LoadBalancers in certain cloud environments.
Add and Update the Helm Chart
meshIQ publishes its platform Helm charts in a public repository. To pull the latest version (and any future updates), add their repo to your Helm client:
- Add the meshIQ repository:
helm repo add meshiq https://containercomponents.s3.amazonaws.com/helm/charts
- Fetch the latest chart index:
helm repo update
Always run this before pulling to ensure you get the very latest chart version.
Deploying the Helm Chart
The guide uses the “simple” flavor of the meshIQ chart, but the same steps apply to other flavors (e.g., for larger deployments, Grafana integration, etc.).
You have two ways to install:
1. Direct Deployment from the Remote Repository
Install directly without pulling locally:
helm install meshiq-platform -n meshiq-platform meshiq/meshiq-simple
Helm won’t create the namespace automatically. If it doesn’t already exist, you have two options:
- Add the
--create-namespaceflag:helm install meshiq-platform -n meshiq-platform --create-namespace meshiq/meshiq-simple
- Or create the namespace manually:
kubectl create namespace meshiq-platform
This command:
- Creates the
meshiq-platformnamespace if it doesn’t exist. - Pulls and deploys the latest
meshiq-simplechart. - Cloud-specific LoadBalancer IPs:
In some environments (e.g., OCI), you must reserve up to four public IPs and inject them at install time:global.service.external.ip(manage-external)global.service.external.cepIp(CEP-external)global.service.external.debugIp(debug-external)grafana.service.loadBalancerIP(Grafana)
- To set these, append
--setflags:helm install meshiq-platform -n meshiq-platform \
meshiq/meshiq-simple \
--set global.service.external.ip=<IP1> \
--set global.service.external.cepIp=<IP2> \
--set global.service.external.debugIp=<IP3> \
--set grafana.service.loadBalancerIP=<IP4>
2. Pull, Customize, and Deploy Locally
For more control—especially to edit many settings in a single values.yaml—pull and untar the chart first:
helm pull meshiq/meshiq-simple --untar
You’ll now have a meshiq-simple/ directory containing:
- A sample
values.yaml(fully commented). - Chart templates.
Key Configurable Sections in values.yaml
- External IPs for LoadBalancer-type services
- SSL settings (certificates, keys, protocols)
- Ingress controller options
- Storage (persistent volumes, size, access modes)
- Resource limits/requests for CPU and memory
- …and many other keys, each with in-file comments to guide you.
Once you’ve adjusted any values, install from your local copy:
helm install meshiq-platform -n meshiq-platform ./meshiq-simple
- (Optional) You can still override individual settings via
--set, but for initial setup it’s easier to keep everything in onevalues.yaml.
Monitor the Deployment
- Watch pod status:
kubectl get pods -n meshiq-platform -o wide -w
Check services:
kubectl get svc -n meshiq-platform
The full deployment can take up to 10 minutes as interdependent pods come online.
Verify & Access
Once deployment completes, your Helm output will list all external endpoints. A typical block looks like:
WGS Rest API: http://129.155.10.152:8019
Manage Web UI: http://141.142.82.175:8080/manage
Security Manager UI: http://141.142.82.175:8088/control-center
Grafana Web UI: http://132.227.63.167:3002/grafana
Track Web UI: http://141.142.82.175:8082/track
Observe Web UI: http://141.142.82.175:8083/observe
jKQL REST Endpoint: http://141.142.82.175:8084
Use these URLs to confirm each UI/API is reachable.