Configuration reference
Learn about all the configurable fields in the application configuration file.
This page describes all configurable fields for the application configuration file (app.pipecd.yaml) in PipeCD v1.
Example app.pipecd.yaml
apiVersion: pipecd.dev/v1beta1
kind: Application
spec:
name: my-app
labels:
env: example
description: "My example application"
planner:
autoRollback: true
trigger:
onCommit:
paths:
- deployment.yaml
onOutOfSync:
disabled: false
minWindow: 5m
plugins:
kubernetes:
input:
manifests:
- deployment.yaml
- service.yaml
The fields under spec.plugins.<plugin_name> (such as input above) are plugin-specific. See the documentation for each plugin for the fields it accepts.
Application Configuration
| Field |
Type |
Description |
Required |
apiVersion |
string |
pipecd.dev/v1beta1 |
Yes |
kind |
string |
Application |
Yes |
spec.name |
string |
The application name. Required when the application is defined through this configuration file. |
Yes* |
spec.labels |
map[string]string |
Additional attributes to identify the application. |
No |
spec.description |
string |
Notes on the application. |
No |
spec.planner |
DeploymentPlanner |
Configuration used while planning deployment. |
No |
spec.commitMatcher |
DeploymentCommitMatcher |
Forcibly use QuickSync or Pipeline when a commit message matches a pattern. |
No |
spec.pipeline |
DeploymentPipeline |
Pipeline for deploying progressively. |
No |
spec.trigger |
Trigger |
Trigger configuration to determine when a deployment is triggered. |
No |
spec.postSync |
PostSync |
Configuration to be used once the deployment is triggered successfully. |
No |
spec.timeout |
duration |
Maximum time to execute the deployment before giving up. Default is 6h. |
No |
spec.encryption |
SecretEncryption |
List of encrypted secrets and targets to decrypt before using. |
No |
spec.attachment |
Attachment |
List of files to attach to application manifests before using. |
No |
spec.notification |
DeploymentNotification |
Additional configuration used while sending notifications to external services. |
No |
spec.eventWatcher |
[]EventWatcherConfig |
List of event watcher configurations. |
No |
spec.driftDetection |
DriftDetection |
Configuration for drift detection. |
No |
spec.plugins |
map[string]object |
Plugin-specific configuration, keyed by plugin name (e.g., kubernetes, terraform). The value is decoded by each plugin, so see the per-plugin documentation for the fields under each. |
No |
DeploymentPlanner
| Field |
Type |
Description |
Required |
alwaysUsePipeline |
bool |
Disable auto-detecting whether to use QuickSync or Pipeline. Always uses the defined pipeline. |
No |
autoRollback |
bool |
Automatically reverts all deployment changes on failure. Default is true. |
No |
DeploymentCommitMatcher
| Field |
Type |
Description |
Required |
quickSync |
string |
Regular expression. Forces QuickSync when the commit message matches. |
No |
pipeline |
string |
Regular expression. Forces Pipeline when the commit message matches. |
No |
DeploymentPipeline
| Field |
Type |
Description |
Required |
stages |
[]PipelineStage |
List of stages to run in sequence. |
No |
PipelineStage
| Field |
Type |
Description |
Required |
name |
string |
The stage name (e.g., K8S_SYNC, WAIT_APPROVAL, ANALYSIS). |
Yes |
desc |
string |
Human-readable description of this stage. |
No |
timeout |
duration |
Maximum time for this stage before it is cancelled. Default is 6h. |
No |
with |
object |
Stage-specific configuration. See per-plugin documentation for available fields. |
No |
skipOn |
SkipOptions |
Conditions under which this stage is skipped. |
No |
SkipOptions
| Field |
Type |
Description |
Required |
commitMessagePrefixes |
[]string |
Skip this stage if the commit message starts with any of these prefixes. |
No |
paths |
[]string |
Skip this stage if only files matching these paths changed. |
No |
Trigger
| Field |
Type |
Description |
Required |
onCommit |
OnCommit |
Trigger settings based on commit changes. |
No |
onCommand |
OnCommand |
Trigger settings based on a received SYNC command. |
No |
onOutOfSync |
OnOutOfSync |
Trigger settings based on OUT_OF_SYNC state. |
No |
onChain |
OnChain |
Trigger settings based on a received CHAIN_SYNC command. |
No |
OnCommit
| Field |
Type |
Description |
Required |
disabled |
bool |
Exclude this application from being triggered when a new commit touches it. Default is false. |
No |
paths |
[]string |
List of directories or files whose changes trigger a deployment. Supports regular expressions. |
No |
ignores |
[]string |
List of directories or files whose changes are ignored. Supports regular expressions. |
No |
OnCommand
| Field |
Type |
Description |
Required |
disabled |
bool |
Exclude this application from being triggered when a SYNC command is received. Default is false. |
No |
OnOutOfSync
| Field |
Type |
Description |
Required |
disabled |
bool |
Exclude this application from being triggered when it is in OUT_OF_SYNC state. Default is true. |
No |
minWindow |
duration |
Minimum time that must elapse since the last deployment. Default is 5m. |
No |
OnChain
| Field |
Type |
Description |
Required |
disabled |
bool |
Exclude this application from being triggered when a CHAIN_SYNC command is received. Default is true. |
No |
PostSync
| Field |
Type |
Description |
Required |
chain |
DeploymentChain |
Configuration for triggering a chain of deployments after this one succeeds. |
No |
DeploymentChain
| Field |
Type |
Description |
Required |
applications |
[]ChainApplicationMatcher |
List of application matchers defining which applications to trigger as chain nodes. |
Yes |
ChainApplicationMatcher
At least one of name, kind, or labels must be set.
| Field |
Type |
Description |
Required |
name |
string |
Name of the application to match. |
No |
kind |
string |
Kind of the application to match. |
No |
labels |
map[string]string |
Labels of the application to match. |
No |
SecretEncryption
| Field |
Type |
Description |
Required |
encryptedSecrets |
map[string]string |
Map of secret name to encrypted value. |
No |
decryptionTargets |
[]string |
List of files where the decrypted secrets will be injected. |
Yes |
Attachment
| Field |
Type |
Description |
Required |
sources |
map[string]string |
Map of name to file path containing the source data to embed. |
No |
targets |
[]string |
List of files where the source data will be embedded. |
Yes |
DeploymentNotification
| Field |
Type |
Description |
Required |
mentions |
[]NotificationMention |
List of users or groups to notify for specific events. |
No |
NotificationMention
| Field |
Type |
Description |
Required |
event |
string |
The event name to trigger this mention. Use * for all events. |
Yes |
slackusers |
[]string |
List of Slack user IDs to mention. See Slack formatting docs. |
No |
slackgroups |
[]string |
List of Slack group IDs to mention. See Slack formatting docs. |
No |
slack |
[]string |
Deprecated. Use slackusers instead. |
No |
EventWatcherConfig
EventWatcherMatcher
| Field |
Type |
Description |
Required |
name |
string |
The event name to match. |
Yes |
labels |
map[string]string |
Additional attributes to uniquely identify the event. |
No |
EventWatcherHandler
| Field |
Type |
Description |
Required |
type |
string |
Handler type. Currently only GIT_UPDATE is supported. |
No |
config |
EventWatcherHandlerConfig |
Configuration for the handler. |
Yes |
EventWatcherHandlerConfig
| Field |
Type |
Description |
Required |
commitMessage |
string |
Commit message used when pushing changes. Uses a default message if not set. |
No |
makePullRequest |
bool |
Create a pull request instead of committing directly. |
No |
replacements |
[]EventWatcherReplacement |
List of replacement targets to update when the event matches. |
No |
EventWatcherReplacement
Only one of yamlField, jsonField, HCLField, or regex may be set alongside file.
| Field |
Type |
Description |
Required |
file |
string |
Path to the file to update. |
Yes |
yamlField |
string |
YAML path to the field to update. Must start with $. e.g. $.foo.bar[0].baz. |
No |
jsonField |
string |
JSON path to the field to update. |
No |
HCLField |
string |
HCL path to the field to update. |
No |
regex |
string |
Regular expression specifying what to replace. Only the first capturing group () is replaced. e.g. host.xz/foo/bar:(v[0-9].[0-9].[0-9]). |
No |
DriftDetection
| Field |
Type |
Description |
Required |
ignoreFields |
[]string |
List of fields to ignore when detecting drift. Format: apiVersion:kind:namespace:name#fieldPath. |
No |