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

FieldTypeDescriptionRequired
apiVersionstringpipecd.dev/v1beta1Yes
kindstringApplicationYes
spec.namestringThe application name. Required when the application is defined through this configuration file.Yes*
spec.labelsmap[string]stringAdditional attributes to identify the application.No
spec.descriptionstringNotes on the application.No
spec.plannerDeploymentPlannerConfiguration used while planning deployment.No
spec.commitMatcherDeploymentCommitMatcherForcibly use QuickSync or Pipeline when a commit message matches a pattern.No
spec.pipelineDeploymentPipelinePipeline for deploying progressively.No
spec.triggerTriggerTrigger configuration to determine when a deployment is triggered.No
spec.postSyncPostSyncConfiguration to be used once the deployment is triggered successfully.No
spec.timeoutdurationMaximum time to execute the deployment before giving up. Default is 6h.No
spec.encryptionSecretEncryptionList of encrypted secrets and targets to decrypt before using.No
spec.attachmentAttachmentList of files to attach to application manifests before using.No
spec.notificationDeploymentNotificationAdditional configuration used while sending notifications to external services.No
spec.eventWatcher[]EventWatcherConfigList of event watcher configurations.No
spec.driftDetectionDriftDetectionConfiguration for drift detection.No
spec.pluginsmap[string]objectPlugin-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

FieldTypeDescriptionRequired
alwaysUsePipelineboolDisable auto-detecting whether to use QuickSync or Pipeline. Always uses the defined pipeline.No
autoRollbackboolAutomatically reverts all deployment changes on failure. Default is true.No

DeploymentCommitMatcher

FieldTypeDescriptionRequired
quickSyncstringRegular expression. Forces QuickSync when the commit message matches.No
pipelinestringRegular expression. Forces Pipeline when the commit message matches.No

DeploymentPipeline

FieldTypeDescriptionRequired
stages[]PipelineStageList of stages to run in sequence.No

PipelineStage

FieldTypeDescriptionRequired
namestringThe stage name (e.g., K8S_SYNC, WAIT_APPROVAL, ANALYSIS).Yes
descstringHuman-readable description of this stage.No
timeoutdurationMaximum time for this stage before it is cancelled. Default is 6h.No
withobjectStage-specific configuration. See per-plugin documentation for available fields.No
skipOnSkipOptionsConditions under which this stage is skipped.No

SkipOptions

FieldTypeDescriptionRequired
commitMessagePrefixes[]stringSkip this stage if the commit message starts with any of these prefixes.No
paths[]stringSkip this stage if only files matching these paths changed.No

Trigger

FieldTypeDescriptionRequired
onCommitOnCommitTrigger settings based on commit changes.No
onCommandOnCommandTrigger settings based on a received SYNC command.No
onOutOfSyncOnOutOfSyncTrigger settings based on OUT_OF_SYNC state.No
onChainOnChainTrigger settings based on a received CHAIN_SYNC command.No

OnCommit

FieldTypeDescriptionRequired
disabledboolExclude this application from being triggered when a new commit touches it. Default is false.No
paths[]stringList of directories or files whose changes trigger a deployment. Supports regular expressions.No
ignores[]stringList of directories or files whose changes are ignored. Supports regular expressions.No

OnCommand

FieldTypeDescriptionRequired
disabledboolExclude this application from being triggered when a SYNC command is received. Default is false.No

OnOutOfSync

FieldTypeDescriptionRequired
disabledboolExclude this application from being triggered when it is in OUT_OF_SYNC state. Default is true.No
minWindowdurationMinimum time that must elapse since the last deployment. Default is 5m.No

OnChain

FieldTypeDescriptionRequired
disabledboolExclude this application from being triggered when a CHAIN_SYNC command is received. Default is true.No

PostSync

FieldTypeDescriptionRequired
chainDeploymentChainConfiguration for triggering a chain of deployments after this one succeeds.No

DeploymentChain

FieldTypeDescriptionRequired
applications[]ChainApplicationMatcherList of application matchers defining which applications to trigger as chain nodes.Yes

ChainApplicationMatcher

At least one of name, kind, or labels must be set.

FieldTypeDescriptionRequired
namestringName of the application to match.No
kindstringKind of the application to match.No
labelsmap[string]stringLabels of the application to match.No

SecretEncryption

FieldTypeDescriptionRequired
encryptedSecretsmap[string]stringMap of secret name to encrypted value.No
decryptionTargets[]stringList of files where the decrypted secrets will be injected.Yes

Attachment

FieldTypeDescriptionRequired
sourcesmap[string]stringMap of name to file path containing the source data to embed.No
targets[]stringList of files where the source data will be embedded.Yes

DeploymentNotification

FieldTypeDescriptionRequired
mentions[]NotificationMentionList of users or groups to notify for specific events.No

NotificationMention

FieldTypeDescriptionRequired
eventstringThe event name to trigger this mention. Use * for all events.Yes
slackusers[]stringList of Slack user IDs to mention. See Slack formatting docs.No
slackgroups[]stringList of Slack group IDs to mention. See Slack formatting docs.No
slack[]stringDeprecated. Use slackusers instead.No

EventWatcherConfig

FieldTypeDescriptionRequired
matcherEventWatcherMatcherDefines which event this watcher handles.Yes
handlerEventWatcherHandlerDefines how the matched event is handled.Yes

EventWatcherMatcher

FieldTypeDescriptionRequired
namestringThe event name to match.Yes
labelsmap[string]stringAdditional attributes to uniquely identify the event.No

EventWatcherHandler

FieldTypeDescriptionRequired
typestringHandler type. Currently only GIT_UPDATE is supported.No
configEventWatcherHandlerConfigConfiguration for the handler.Yes

EventWatcherHandlerConfig

FieldTypeDescriptionRequired
commitMessagestringCommit message used when pushing changes. Uses a default message if not set.No
makePullRequestboolCreate a pull request instead of committing directly.No
replacements[]EventWatcherReplacementList of replacement targets to update when the event matches.No

EventWatcherReplacement

Only one of yamlField, jsonField, HCLField, or regex may be set alongside file.

FieldTypeDescriptionRequired
filestringPath to the file to update.Yes
yamlFieldstringYAML path to the field to update. Must start with $. e.g. $.foo.bar[0].baz.No
jsonFieldstringJSON path to the field to update.No
HCLFieldstringHCL path to the field to update.No
regexstringRegular 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

FieldTypeDescriptionRequired
ignoreFields[]stringList of fields to ignore when detecting drift. Format: apiVersion:kind:namespace:name#fieldPath.No