Action
Properties
| Property | Description | Values | Example |
|---|---|---|---|
namestring | name of the action The action name is displayed in the Actions tab of the Nuon dashboard | ✅ Required | "http_healthcheck", "database_migration" |
timeoutstring | timeout for action execution Maximum time the action can run. Maximum allowed is 30 minutes. Must be a valid Go duration string (e.g., 30s, 5m, 30m) | ✅ Required | "15s", "5m", "30m" |
triggersarray | triggers that execute this action Actions can be triggered manually, on a cron schedule, or by install lifecycle events (provision, deploy, teardown, etc). Define multiple triggers if needed | ✅ Required | - |
stepsarray | steps to execute in this action Ordered list of steps to execute. Each step requires a command and can optionally load scripts from repositories | ✅ Required | - |
dependenciesarray | component dependencies referenced in this action Automatically extracted from template references in steps (e.g., {{.component.component_name}}) | Optional | "database", "api-server" |
break_glass_rolestring | IAM role for break-glass access to this action When set, allows the action to use a break glass role for elevated permissions during critical operations. Break glass roles are defined in CloudForma… | Optional | "bucket-operations-break-glass", "database-migration-break-glass" |
rolestring | IAM role name for action execution Name of the IAM role to use when executing this action. The role must be defined in the CloudFormation stack deployed to the customer’s AWS account. If not specif… | Optional | "{{.nuon.install.id}}-maintenance" |
enable_kube_configboolean | whether to fetch and inject kubeconfig for this action When set to false, the action runner will not fetch the install’s kubeconfig or set the KUBECONFIG env var. Defaults to true. Set to false for… | Optional | "true", "false" |
triggers
| Property | Description | Values | Example |
|---|---|---|---|
typestring | type of trigger Supported trigger types: manual, cron, pre-provision, post-provision, pre-reprovision, post-reprovision, pre-deprovision, post-deprovision, pre-deploy-all-components, post-deploy-al… | ✅ Required | "manual", "cron", "post-provision" |
indexinteger | index for manual trigger Used to differentiate multiple manual triggers in the same action | Optional | "0", "1" |
cron_schedulestring | cron schedule expression for scheduled triggers Standard cron format (minute hour day month weekday). For example, ’*/5 * * * *’ runs every 5 minutes | Optional | "*/5 * * * *", "0 */4 * * *" |
component_namestring | component name for component-specific triggers Required for pre-deploy-component, post-deploy-component, pre-teardown-component, post-teardown-component triggers | Optional | "database", "api-server" |
steps
| Property | Description | Values | Example |
|---|---|---|---|
namestring | name of the step Displayed in action logs and the Nuon dashboard | ✅ Required | "healthcheck", "database_migration" |
env_varsobject | environment variables to pass to the step Map of environment variables that will be available to the command. Supports Go templating for values | Optional | - |
public_repoPublicRepoConfig | public repository containing the step script Clone a public GitHub repository to load scripts from. Requires ‘repo’, ‘branch’, and optionally ‘directory’ fields | Optional | - |
connected_repoConnectedRepoConfig | connected repository containing the step script Use a Nuon-connected repository to load scripts from. Requires ‘repo’, ‘branch’, and optionally ‘directory’ fields | Optional | - |
commandstring | command to execute Required field. Supports Go templating (e.g., {{.nuon.install.id}}). The command is executed in the runner environment | Optional | "./healthcheck", "bash -c 'curl https://example.com'" |
inline_contentsstring | inline script contents Embed script contents directly in the config file. Supports Go templating and external URLs: HTTP(S) (https://example.com/script.sh), git repositories (git::https://github.co… | Optional | "./src/healthcheck.sh", "#!/usr/bin/env sh\nkubectl get pods -n default" |