Skip to main content

Getting Started

This tutorial guides you through setting up and configuring a self-hosted Mission Control environment.

Prerequisites

To install and run Mission Control you need the following:

  • Kubernetes 1.26+ with an Ingress Controller
  • cert-manager.io or an existing TLS secret for ingress
  • 1 - 2 CPUs and 4GB of Memory
  • Persistent Volumes with 20GB+ of storage or an external postgres database
  • (Optional) prometheus operator
  • (Optional) SMTP Server (For sending notifications and invites)
1Install Helm Repository
helm repo add flanksource https://flanksource.github.io/charts
helm repo update
2Install Helm Chart
values.yaml
global:
ui:
host: "mission-control-ui.local" # hostname
serviceAccount:
annotations: # Any annotations required to attach custom IAM policies etc.
Auto Generate Certificates with Cert-Manager

You can add annotations to the ingress to have cert-manager generate the TLS certificate:

flanksource-ui:
ingress:
annotations:
kubernetes.io/ingress.class: nginx
kubernetes.io/tls-acme: "true"
helm install mission-control  \
flanksource/mission-control \
-n mission-control \
--create-namespace \
--wait \
-f values.yaml

See values.yaml or helm show values flanksource/mission-control for a full list of configuration options.

Optional Steps

3Configure Email (SMTP)

An SMTP server is required for sending notifications, approvals, user invites and password resets.

The format of connection_uri is smtp://hostname:port

values.yaml
kratos:
kratos:
config:
courier:
smtp:
connection_uri: # smtp://localhost:25
from_address: noreply@
from_name: Mission Control
headers: {} # These headers will be passed in the SMTP conversation -- e.g. when using the AWS SES SMTP interface for cross-account sending.
local_name: #Identifier used in the SMTP HELO/EHLO command. Some SMTP relays require a unique identifier.

Kratos also supports HTTP Webhooks for sending emails.

4Single Sign On

See SSO

5External Database

See Database to configure an external database such as AWS RDS or Google Cloud SQL, or to optimize the bundled PostgreSQL settings.