
- version upgrades
- database migrations
- data backfills
- recovery steps
Where runbooks live
Define runbooks as TOML files in arunbooks/ directory in your app config. Each file is one runbook:
nuon apps sync, run from the app’s working directory in your terminal. Whenever you edit a runbook file locally, re-run nuon apps sync to push the changes to Nuon.
Example
Configuration reference
Runbook
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Name shown in the Runbooks tab and used to identify the runbook during sync. |
description | string | No | Short description of what the runbook does. |
readme | string | No | Markdown documentation for the runbook. Supports Go templating and external file sources (HTTP(S) URLs, git, or local paths). |
labels | map | No | Key/value labels for organizing runbooks. |
steps | array | Yes | Ordered list of steps to execute. See below. |
Step ([[steps]])
| Field | Type | Required | Description |
|---|---|---|---|
name | string | Yes | Step name shown in the workflow UI and runbook detail page. |
type | string | Yes | deploy or action. |
component_name | string | deploy steps | Component to deploy. Required when type = "deploy". |
deploy_dependencies | bool | No | When true, also deploys the component’s transitive dependencies in order. |
action_name | string | action steps | Name of an existing action to run. Mutually exclusive with the inline fields below. |
command | string | action steps | Shell command for an inline action. Supports Go templating. |
inline_contents | string | action steps | Inline script contents, or a reference to an external file. Supports templating and external sources. |
env_vars | map | No | Environment variables for an inline action step. |
timeout | string | No | Maximum execution time for an inline action step (Go duration, e.g. 30s, 5m). |
role | string | No | IAM role to assume when executing an inline action step. |
action_name (to run a previously defined action) or the inline fields (command / inline_contents) to define an inline action, not both.
Triggering a runbook
Trigger and watch runs from the Runbooks tab in the dashboard, or from the CLI:A complete example
For a runnable example, see theprogrammable-runbook-and-readme app config in example-app-configs. It has runbooks for an on-call restart and a smoke test, plus rendered READMEs that embed them.