Skip to main content
Deploy your monitoring configuration from YAML files. Validate syntax, preview changes, apply updates, and manage deploy locks.

Commands

CommandDescription
devhelm validate <file>Validate config file syntax (offline)
devhelm plan -f <file>Preview changes without applying
devhelm deploy -f <file>Apply config changes
devhelm deploy force-unlockRelease a stuck deploy lock

devhelm validate

Validate a configuration file offline. No API calls are made — this checks YAML syntax and schema validity.
devhelm validate devhelm.yml
Use this in CI as an early check before running plan or deploy.

devhelm plan

Preview what would change without applying anything. Equivalent to deploy --dry-run.
devhelm plan -f devhelm.yml
The output shows resources to create, update, and delete.

devhelm deploy

Apply configuration changes.
devhelm deploy -f devhelm.yml --yes

Flags

FlagShortTypeDefaultDescription
--file-fstringdevhelm.ymlConfig file or directory (repeatable)
--yes-ybooleanfalseSkip confirmation prompt (required in CI)
--prunebooleanfalseDelete CLI-managed resources absent from config
--prune-allbooleanfalseDelete all resources absent from config
--dry-runbooleanfalsePreview changes without applying
--detailed-exitcodebooleanfalseExit 10 if dry-run has pending changes
--force-unlockbooleanfalseBreak existing lock before acquiring
--no-lockbooleanfalseSkip deploy locking
--lock-timeoutinteger0Seconds to wait for lock (0 = fail immediately)
--output-ostringtextOutput format: text or json
--api-tokenstringOverride API token
--api-urlstringOverride API base URL
--verbose-vbooleanfalseEnable debug logging

Multiple config files

Pass -f multiple times to deploy from multiple files:
devhelm deploy -f monitors.yml -f alert-channels.yml --yes

Pruning

By default, deploy only creates and updates resources defined in your config. Resources not in the file are left untouched.
  • --prune deletes resources that were previously created by the CLI but are no longer in the config file.
  • --prune-all deletes all resources not in the config, including those created via the dashboard or API.
devhelm deploy -f devhelm.yml --prune --yes
--prune-all deletes resources created outside config-as-code. Use with caution.

Dry-run with exit codes

Combine --dry-run and --detailed-exitcode for CI gating:
devhelm deploy -f devhelm.yml --dry-run --detailed-exitcode
Exit codeMeaning
0No changes needed
10Changes pending
1Error

Deploy locking

Only one deploy can run at a time per organization. If a lock is held by another process, the CLI fails immediately by default. Use --lock-timeout to wait:
devhelm deploy -f devhelm.yml --yes --lock-timeout 60
Use --no-lock to skip locking entirely (not recommended for shared environments):
devhelm deploy -f devhelm.yml --yes --no-lock

devhelm deploy force-unlock

Release a stuck deploy lock manually.
devhelm deploy force-unlock --yes
FlagShortTypeDescription
--yes-ybooleanSkip confirmation prompt
Only force-unlock if you’re certain no other deploy is running. Unlocking during an active deploy can cause inconsistent state.

Next steps

Monitoring as Code

Full YAML format and workflow guide.

GitHub Actions

Automate deploys from CI.

CI/CD pipeline guide

End-to-end CI/CD setup.