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)
helm repo add flanksource https://flanksource.github.io/charts
helm repo update
values.yamlglobal:
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
Configure 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.yamlkratos:
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.
See SSO
See Database to configure an external database such as AWS RDS or Google Cloud SQL, or to optimize the bundled PostgreSQL settings.