This guide walks you through setting up DataStax Mission Control on a local Kubernetes cluster using Kind (Kubernetes in Docker) on macOS.
With this setup, you can explore, test, and demo Mission Control-managed Cassandra, DataStax Enterprise (DSE), and Hyperconverged Database (HCD) clusters directly on your local machine.
- Mission Control + HCD Setup Instructions
- ๐ฉโ๐ป Attendee Hands-On Guide for Mission Control & HCD Workshop
Ensure you have the following installed on your Mac:
- Docker
Configure sufficient resources for Docker. While it works with fewer resources, I allocated 30 GB RAM and 12 CPUs for optimal performanceโif you have the resources, why not use them? - kubectl
- Helm
- Kind
Use the file kind.yaml with the following contents to create a local Kubernetes Kind cluster:
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
networking:
apiServerPort: 45451
nodes:
- role: control-plane
image: kindest/node:v1.32.2
labels:
mission-control.datastax.com/role: platform
extraPortMappings:
- containerPort: 30880
hostPort: 30880
listenAddress: "0.0.0.0"
protocol: tcp
- containerPort: 30081
hostPort: 30081
listenAddress: "0.0.0.0"
protocol: tcp
- containerPort: 30001
hostPort: 30001
listenAddress: "0.0.0.0"
protocol: tcp
- role: worker
image: kindest/node:v1.32.2
labels:
mission-control.datastax.com/role: platform
- role: worker
image: kindest/node:v1.32.2
labels:
mission-control.datastax.com/role: platform
- role: worker
image: kindest/node:v1.32.2
labels:
mission-control.datastax.com/role: platformRun the following command to create the cluster:
kind create cluster --config kind.yamlVerify that the cluster is running:
kubectl get nodesCert-Manager is required for issuing TLS certificates in the cluster.
helm repo add jetstack https://charts.jetstack.io --force-update
helm repo updatehelm install \
cert-manager jetstack/cert-manager \
--namespace cert-manager \
--create-namespace \
--version v1.16.1 \
--set crds.enabled=trueKOTS is required for managing Mission Control installations.
Run the following command to install KOTS:
curl https://kots.io/install | REPL_INSTALL_PATH=/DEFINE_YOUR_PATH bashVerify that KOTS is installed:
kubectl kots versionkubectl kots install mission-control --namespace mission-controlor, install a specific version mission-control version
kubectl kots install mission-control --namespace mission-control --app-version-label=v1.9.0-
Enter a password for the Admin Console when prompted.
-
Open your browser and go to:
๐ http://localhost:8800 -
Enter the password you created.
-
Register for a community edition license at:
๐ DataStax Mission Control Download -
Upload your license file in the UI.
-
Click "Download Mission Control from the Internet."
-
Review and confirm the configuration.
-
Click "Continue" and then "Deploy."
-
Preflight checks validate
-
Click "Deploy."
If the port forwarding session stops, restart it using:
kubectl kots admin-console -n mission-controlOnce running, access Mission Control UI in your browser:
Log in with the email address and password you created earlier.
Click Create a Project. This creates a Kubernetes namespace where all clusters will be deployed.
Check available namespaces:
kubectl get namespaces- Click "Create a New Cluster"

- Click "Expert Mode" to see the YAML configuration.

- Click "Deploy"
- Select your cluster and monitor its creation.

Check progress using:
kubectl get pods -n demo-1wx3a235 -wOnce the cluster is running, you can manage it via the Mission Control UI.
Find the YAML files:
By default, only one database node per Kubernetes worker node is allowed.
To deploy multiple nodes per worker node, enable softPodAntiAffinity and configure CPU & memory requests/limits:
softPodAntiAffinity: true
resources:
requests:
cpu: "1000m"
memory: "2Gi"
limits:
cpu: "1000m"
memory: "3Gi"kubectl logs -n <NAMESPACE> <POD_NAME>Example:
kubectl logs -n demo-1wx3a235 hcd-dc-1-0kubectl kots admin-console -n mission-controlIf needed, delete the cluster:
kind delete clusterIf kind delete cluster is unresponsive, remove Docker containers manually:
docker rm -f $(docker ps -aq --filter "name=kind")
docker network rm kindYou have successfully set up DataStax Mission Control on macOS using Kind. ๐
You can now manage Cassandra clusters using the Mission Control UI.









