Mist simplifies multicloud management. It offers a unified interface from where you can manage public clouds, private clouds, hypervisors, containers and bare metal servers.
With Mist you can perform common management tasks like provisioning, orchestration, monitoring, automation and cost analysis.
It comes with a RESTful API and a CLI, so you can easily integrate it into your existing workflows.
Mist users include organizations like Juniper Networks, SevOne, Windstream, National Bank of Greece, Shoprite and more. They all report faster roll-outs while reducing their bills and management overheads by 40%-60%.
NOTE: In December 2023, Mist.io Inc was acquired by Dell Technologies. Since then, the Enterprise Edition (EE) and Hosted Service (HS) are no longer available, while the Community Edition (CE) has not been maintained besides some security fixes contributed by the community.
Mist Community Edition (CE) is licensed under the Apache License v2. It is ideal for teams with a DIY approach.
~~Mist Enterprise Edition (EE) and Hosted Service (HS) are commercial editions which offer additional plugins for governance, role-based access control & cost insights. You can check them out on our website.~~
~~The easiest way to try Mist is to sign up for a 14-day free trial at https://mist.io/sign-up.~~
Mist's features include:
Some terms are used very often in Mist. Below is a list of the most basic ones to help you avoid any confusion:
Mist is a cloud native application split into microservices which are packaged as Docker containers. It can be deployed on a Kubernetes cluster using Helm or a single host with Docker Compose.
The most notable components are the following:
The user interacts with the RESTful Mist API through client apps like the Mist UI in the browser or command line tools (e.g. cURL, Mist CLI, etc.).
The Mist UI, apart from invoking the RESTful API, also establishes a WebSocket connection. This is used to receive real time updates and to proxy shell connections to machines.
The Mist API server interacts with the respective API's of the target clouds, either directly, or by adding tasks that get executed asynchronously by Dramatiq workers. The messaging is following the AMQP protocol and gets coordinated by RabbitMQ.
The main data store is MongoDB. Logs are being stored in Elasticsearch. Time series data go to either VictoriaMetrics or InfluxDB, depending on the installation.
Rule checks, polling tasks & user tasks are triggered by the scheduler service. Whenever a shell connection is required (e.g. SSH, Docker shell, etc.), Sheller establishes the connection and makes it available through the WebSocket API.
You can install Mist in several ways, depending on your needs:
To get started, you will need:
Run the following commands to install Mist:
helm repo add mist https://dl.mist.io/charts
helm repo update
helm install mist-ce mist/mist-ce
Finally, follow the on-screen instructions after the installation is completed to configure an ingress IP and create the required Mist admin user.
Linode and Vultr users can find detailed installation videos in the respective, official YouTube channels.
The quick installation method described above does not set up TLS. This is done in order to keep things simple and get you to test Mist quickly. However, we strongly recommend using TLS. This requires a domain for your Mist installation.
First, configure your DNS to point to your cluster's IP.
If you want to issue a new certificate, configure the cluster issuer that will be used, e.g.:
helm install mist-ce mist/mist-ce --set http.host=foo.bar.com \
--set http.tlsClusterIssuer=letsencrypt-prod \
--set http.tlsSecret=secretName
For instructions on how to install and configure cert-manager read the docs here.
If you have configured a TLS certificate for this hostname as a Kubernetes secret, you should use the http.tlsSecret option, e.g.:
helm install mist-ce mist/mist-ce --set http.host=foo.bar.com \
--set http.tlsSecret=secretName
In some cases, such as user registration, forgotten passwords, user invitations etc., Mist needs to send emails. By default, Mist uses a mock mailer.
To see emails sent by Mist, get the relevant pod name:
kubectl get pods -l app=mailmock
Now, view the logs of this pod, e.g.:
kubectl logs -f mailmock-pod-name
If you wish to use an SMTP server, do something like this:
helm install mist-ce mist/mist-ce --set smtp.host=smtp.foo.bar.com \
--set smtp.username=foo
--set smtp.password=bar
--set smtp.port=25
--set smtp.tls=false
--set smtp.starttls=true
Mist's orchestration plugin needs to deploy Docker containers. By default, Mist deploys an in-cluster dockerhost pod in privileged mode.
To use an external Docker host, set the following:
helm install mist-ce mist/mist-ce --set docker.host=dockerIP \
--set docker.port=dockerPort \
--set docker.key=TLSKey \
--set docker.cert=TLSCert \
--set docker.ca=TLSCACert
To review and customize all available configuration options:
helm show values mist/mist-ce > values.yaml
values.yaml.helm install with values.yaml as input.helm install mist-ce mist/mist-ce -f values.yaml
The following table lists all the configurable parameters in Mist's Helm chart and their default values.
| Parameter | Description | Default |
|---|---|---|
http.host |
FQDN or IP of Mist installation. | localhost |
http.http2 |
Use HTTP/2. | false |
http.tlsSecret |
Kubernetes secret containing the tls.crt and tls.key data. |
'' |
http.tlsHosts |
Array of TLS hosts for ingress record. | [] |
http.tlsAnnotations |
{} |
|
http.tlsClusterIssuer |
TLS cluster issuer. | '' |
smtp.host |
SMTP mail server address. | '' |
smtp.port |
SMTP port. | 8025 |
smtp.username |
SMTP username. | '' |
smtp.password |
SMTP password. | '' |
smtp.tls |
Use TLS with SMTP. | false |
smtp.starttls |
Send the starttls command. Typically, it is not used with smtp.tls=true. |
false |
portalAdmin.enabled |
Create a Mist admin user upon chart installation. | true |
portalAdmin.organization |
Mist organization name. | example.com |
portalAdmin.mail |
Mist admin's email address. | admin@example.com |
portalAdmin.password |
Mist admin's password. | example.com |
portalAdmin.createApiToken |
Cr |
$ claude mcp add mist-ce \
-- python -m otcore.mcp_server <graph>