Self Service
Playbooks can be manually triggered on a component, config item or check.
restart-deployment.yamlapiVersion: mission-control.flanksource.com/v1
kind: Playbook
metadata:
name: restart-deployment
spec:
description: Restart deployment
# only allow the playbook to run on Kubernetes::Deployment config items
configs:
- types:
- Kubernetes::Deployment
actions:
- name: kubectl rollout restart deployment
exec:
script: kubectl rollout restart deployment {{.config.name}} -n {{.config.tags.namespace}}
To run the playbook:
a. Navigate to a Deployment in the Catalog
b. Select Restart Deployment from the Playbooks menu
c. Click Run

Resource Filters
Playbooks can be restricted to run on specific config
, check
and components
using resource selectors
restart-deployment.yamlapiVersion: mission-control.flanksource.com/v1
kind: Playbook
spec:
configs: # Only applicable to config items
- types:
- Kubernetes::Deployment # of this type
Parameters
scale-deployment.yamlapiVersion: mission-control.flanksource.com/v1
kind: Playbook
metadata:
name: scale-deployment
spec:
description: Scale Deployment
configs:
- types:
- Kubernetes::Deployment
parameters:
- name: replicas
label: The new desired number of replicas.
actions:
- name: kubectl scale
exec:
script: |
kubectl scale --replicas={{.params.replicas}} \
--namespace={{.config.tags.namespace}} \
deployment {{.config.name}}
Playbook parameter defines a parameter that a playbook needs to run.
Field | Description | Scheme | Template Env |
---|---|---|---|
name* | Name of parameter. |
| |
default | Default value of the parameter. | ||
description | A short sentence to describe the parameter. This shows up in the input form when running the playbook. |
| |
icon | Icon for the playbook. | ||
label | Label of the parameter. |
| |
properties | Properties of parameter. Varies based on the type |
| |
required | Specify if the parameter is required. |
| |
type | Type of parameter. (Defaults to "text") |
Defaulting
Parameter values can be defaulted from the selected resource
default parameters.yaml#...
kind: Playbook
spec:
parameters:
// Use the config items type and name in the parameter
- default: 'chore: update $(.config.type)/$(.config.name)'
When running the playbook on a Deployment
named mysql
the following is pre-populated:

Types
name | Description | UI Component | Schema | Properties |
---|---|---|---|---|
check | Limits the value to a check. | Dropdown | string | Check |
checkbox | Boolean value toggle | Checkbox | boolean | - |
code | Text area | Code Editor | string | Code |
component | Limits the value to a component. | Dropdown | string | Component |
config | Limits the value to a config item. | Dropdown | string | Config |
list | Specify a custom list of values | Dropdown | string | List |
people | Limits the value to people. | Dropdown | string | People |
team | Limits the value to teams. | Dropdown | string | - |
text | Text input | Text Input | string | Text |
millicores | CPU resource | Number | string | - |
bytes | Memory resource | Number | string | - |
secret | Encrypted sensitive data | Password | string | - |
params-sink.yamlapiVersion: mission-control.flanksource.com/v1
kind: Playbook
metadata:
name: params-sink
namespace: mission-control
spec:
title: Params Kitchen Sink
actions:
- name: echo
exec:
script: echo {{. | toJSON | shellQuote}} | jq
configs:
- types:
- Kubernetes::Namespace
description: Test playbook
category: Kitchen Sink
parameters:
- label: Text Input (Default)
name: text-input
type: text
default: "hello world"
- label: Checkbox
name: checkbox
type: checkbox
- label: Teams Selector
name: teams
type: team
- label: People Selector
name: people
properties:
role: admin
type: people
- label: Component Selector
name: component
properties:
filter:
- types:
- KubernetesPod
type: component
- label: Configs Selector
name: configs
properties:
filter:
- types:
- Kubernetes::Pod
type: config
- label: Code Editor (YAML)
name: code-editor-yaml
properties:
language: yaml
type: code
- label: Code Editor (JSON)
name: code-editor-json
properties:
language: json
type: code
- label: Textarea
name: textarea
properties:
multiline: "true"
type: text
- label: List
name: list
properties:
options:
- label: Option 1
value: option-1
- label: Option 2
value: option-2
- label: Option 3
value: option-3
type: list
- label: secretKey
name: secretKey
type: secret
component
Field | Description | Schema |
---|---|---|
filter[] | Limit the components to these resources | ResourceSelector |
config
Field | Description | Schema |
---|---|---|
filter[] | Limit the config items to these resources | ResourceSelector |
checks
Field | Description | Schema |
---|---|---|
filter[] | Limit the checks to these resources | ResourceSelector |
code
Field | Description | Schema |
---|---|---|
language | e.g. yaml , json , toml , etc. | string |
people
Field | Description | Schema |
---|---|---|
role | Limit the people to the given role | `string |
text
Field | Description | Schema |
---|---|---|
multiline | Render a multiline textarea | boolean |
list
Field | Description | Schema |
---|---|---|
options[].label | Specify label of the list option | string |
options[].value | Specify value of the list option | string |
secret
Secret parameters handle sensitive data like passwords, API keys, and tokens. Values are encrypted at rest using the configured KMS connection and are automatically redacted in logs, UI displays, and database queries.
Your Mission Control instance must have a KMS connection configured to use secret parameters.
Secret parameters are rendered as password input fields in the UI and their values are:
- Encrypted using the configured KMS (AWS KMS, Azure Key Vault, or GCP KMS)
- Redacted in all logs and audit trails
- Hidden in the UI after initial input
- Protected in database storage
parameters:
- name: api_key
type: secret
label: "API Key"
description: "Your service API key"
required: true
When referencing secret parameters in playbook actions, use them like any other parameter:
actions:
- name: "Call external API"
exec:
script: |
curl -H "Authorization: Bearer {{.params.api_key}}" https://api.example.com/data

Fig: Playbook parameters