List of places where will be replaced when the new event matches.
Yes
EventWatcherReplacement
One of yamlField or regex is required.
Field
Type
Description
Required
file
string
The relative path from the repository root to the file to be updated.
Yes
yamlField
string
The yaml path to the field to be updated. It requires to start with $ which represents the root element. e.g. $.foo.bar[0].baz.
No
regex
string
The regex string that specify what should be replaced. The only first capturing group enclosed by () will be replaced with the new value. e.g. host.xz/foo/bar:(v[0-9].[0-9].[0-9])
No
CommitMatcher
Field
Type
Description
Required
quickSync
string
Regular expression string to forcibly do QuickSync when it matches the commit message.
No
pipeline
string
Regular expression string to forcibly do Pipeline when it matches the commit message.
No
SecretEncryption
Field
Type
Description
Required
encryptedSecrets
map[string]string
List of encrypted secrets.
No
decryptionTargets
[]string
List of files to be decrypted before using.
No
Attachment
Field
Type
Description
Required
sources
map[string]string
List of attaching files with key is its refer name.
No
targets
[]string
List of files which should contain the attachments.
No
DeploymentPlanner
Field
Type
Description
Required
alwaysUsePipeline
bool
Always use the defined pipeline to deploy the application in all deployments. Default is false.
Controls triggering new deployment when the application is counted as a node of some chains.
No
OnCommit
Field
Type
Description
Required
disabled
bool
Whether to exclude application from triggering target when new Git commits touched it. Default is false.
No
paths
[]string
List of directories or files where any changes of them will be considered as touching the application. Regular expression can be used. Empty means watching all changes under the application directory.
No
ignores
[]string
List of directories or files where any changes of them will NOT be considered as touching the application. Regular expression can be used. This config has a higher priority compare to paths.
No
OnCommand
Field
Type
Description
Required
disabled
bool
Whether to exclude application from triggering target when received a new SYNC command. Default is false.
No
OnOutOfSync
Field
Type
Description
Required
disabled
bool
Whether to exclude application from triggering target when application is at OUT_OF_SYNC state. Default is true.
No
minWindow
duration
Minimum amount of time must be elapsed since the last deployment. This can be used to avoid triggering unnecessary continuous deployments based on OUT_OF_SYNC status. Default is 5m.
No
OnChain
Field
Type
Description
Required
disabled
bool
Whether to exclude application from triggering target when application is counted as a node of some chains. Default is true.
Automatically reverts all deployment changes on failure. Default is true.
No
autoCreateNamespace
bool
Automatically create a new namespace if it does not exist. Default is false.
No
HelmChart
Field
Type
Description
Required
gitRemote
string
Git remote address where the chart is placing. Empty means the same repository.
No
ref
string
The commit SHA or tag value. Only valid when gitRemote is not empty.
No
path
string
Relative path from the repository root to the chart directory.
No
repository
string
The name of a registered Helm Chart Repository.
No
name
string
The chart name.
No
version
string
The chart version.
No
HelmOptions
Field
Type
Description
Required
releaseName
string
The release name of helm deployment. By default, the release name is equal to the application name.
No
valueFiles
[]string
List of value files should be loaded. Only local files stored under the application directory or remote files served at the http(s) endpoint are allowed.
No
setFiles
map[string]string
List of file path for values.
No
apiVersions
[]string
Kubernetes api versions used for Capabilities.APIVersions.
No
kubeVersion
string
Kubernetes version used for Capabilities.KubeVersion.
No
KubernetesVariantLabel
Field
Type
Description
Required
key
string
The key of the label. Default is pipecd.dev/variant.
No
primaryValue
string
The label value for PRIMARY variant. Default is primary.
No
canaryValue
string
The label value for CANARY variant. Default is canary.
No
baselineValue
string
The label value for BASELINE variant. Default is baseline.
No
KubernetesQuickSync
Field
Type
Description
Required
addVariantLabelToSelector
bool
Whether the PRIMARY variant label should be added to manifests if they were missing. Default is false.
No
prune
bool
Whether the resources that are no longer defined in Git should be removed or not. Default is false
No
KubernetesService
Field
Type
Description
Required
name
string
The name of Service manifest.
No
KubernetesWorkload
Field
Type
Description
Required
kind
string
The kind name of workload manifests. Currently, only Deployment is supported. In the future, we also want to support ReplicationController, DaemonSet, StatefulSet.
No
name
string
The name of workload manifest.
No
KubernetesTrafficRouting
Field
Type
Description
Required
method
string
Which traffic routing method will be used. Available values are istio, smi, podselector. Default is podselector.
List of additional environment variables will be used while executing terraform commands.
No
autoRollback
bool
Automatically reverts all changes from all stages when one of them failed.
No
TerraformCommandFlags
Field
Type
Description
Required
shared
[]string
List of additional flags used for all Terraform commands.
No
init
[]string
List of additional flags used for Terraform init command.
No
plan
[]string
List of additional flags used for Terraform plan command.
No
apply
[]string
List of additional flags used for Terraform apply command.
No
TerraformCommandEnvs
Field
Type
Description
Required
shared
[]string
List of additional environment variables used for all Terraform commands.
No
init
[]string
List of additional environment variables used for Terraform init command.
No
plan
[]string
List of additional environment variables used for Terraform plan command.
No
apply
[]string
List of additional environment variables used for Terraform apply command.
No
TerraformQuickSync
Field
Type
Description
Required
retries
int
How many times to retry applying terraform changes. Default is 0.
No
CloudRunDeploymentInput
Field
Type
Description
Required
serviceManifestFile
string
The name of service manifest file placing in application directory. Default is service.yaml.
No
autoRollback
bool
Automatically reverts to the previous state when the deployment is failed. Default is true.
No
CloudRunQuickSync
Field
Type
Description
Required
LambdaDeploymentInput
Field
Type
Description
Required
functionManifestFile
string
The name of function manifest file placing in application directory. Default is function.yaml.
No
autoRollback
bool
Automatically reverts to the previous state when the deployment is failed. Default is true.
No
LambdaQuickSync
Field
Type
Description
Required
ECSDeploymentInput
Field
Type
Description
Required
serviceDefinitionFile
string
The path ECS Service configuration file. Allow file in both yaml and json format. The default value is service.json. See here for parameters.
No
taskDefinitionFile
string
The path to ECS TaskDefinition configuration file. Allow file in both yaml and json format. The default value is taskdef.json. See here for parameters.
The CANARY target group, will be used to register the CANARY ECS task set if exist. It’s required to enable PipeCD to perform the multi-stage deployment.
No
ECSTargetGroupObject
Field
Type
Description
Required
targetGroupArn
string
The name of the container (as it appears in a container definition) to associate with the load balancer
Yes
containerName
string
The full Amazon Resource Name (ARN) of the Elastic Load Balancing target group or groups associated with a service or task set.
Yes
containerPort
int
The port on the container to associate with the load balancer.
Yes
LoadBalancerName
string
The name of the load balancer to associate with the Amazon ECS service or task set.
No
Note: The available values are identical to those found in the aws-sdk-go-v2 Types.LoadBalancer. For more details, please refer to this link .
ECSQuickSync
Field
Type
Description
Required
recreate
bool
Whether to delete old tasksets before creating new ones or not. Default to false.
No
AnalysisMetrics
Field
Type
Description
Required
provider
string
The unique name of provider defined in the Piped Configuration.
Yes
strategy
string
The strategy name. One of THRESHOLD or PREVIOUS or CANARY_BASELINE or CANARY_PRIMARY is available. Defaults to THRESHOLD.
No
query
string
A query performed against the Analysis Provider. The stage will be skipped if no data points were returned.
The statically defined expected query result. This field is ignored if there was no data point as a result of the query.
Yes if the strategy is THRESHOLD
interval
duration
Run a query at specified intervals.
Yes
failureLimit
int
Acceptable number of failures. e.g. If 1 is set, the ANALYSIS stage will end with failure after two queries results failed. Defaults to 1.
No
skipOnNoData
bool
If true, it considers as a success when no data returned from the analysis provider. Defaults to false.
No
deviation
string
The stage fails on deviation in the specified direction. One of LOW or HIGH or EITHER is available. This can be used only for PREVIOUS, CANARY_BASELINE or CANARY_PRIMARY. Defaults to EITHER.
No
baselineArgs
map[string][string]
The custom arguments to be populated for the Baseline query. They can be reffered as {{ .VariantCustomArgs.xxx }}.
No
canaryArgs
map[string][string]
The custom arguments to be populated for the Canary query. They can be reffered as {{ .VariantCustomArgs.xxx }}.
No
primaryArgs
map[string][string]
The custom arguments to be populated for the Primary query. They can be reffered as {{ .VariantCustomArgs.xxx }}.
Failure, if the query result is less than this value.
No
max
float64
Failure, if the query result is larger than this value.
No
AnalysisTemplateRef
Field
Type
Description
Required
name
string
The template name to refer.
Yes
appArgs
map[string]string
The arguments for custom-args.
No
AnalysisLog
Field
Type
Description
Required
AnalysisHttp
Field
Type
Description
Required
StageOptions
KubernetesPrimaryRolloutStageOptions
Field
Type
Description
Required
suffix
string
Suffix that should be used when naming the PRIMARY variant’s resources. Default is primary.
No
createService
bool
Whether the PRIMARY service should be created. Default is false.
No
addVariantLabelToSelector
bool
Whether the PRIMARY variant label should be added to manifests if they were missing. Default is false.
No
prune
bool
Whether the resources that are no longer defined in Git should be removed or not. Default is false
No
KubernetesCanaryRolloutStageOptions
Field
Type
Description
Required
replicas
int
How many pods for CANARY workloads. Default is 1 pod. Alternatively, can be specified a string suffixed by “%” to indicate a percentage value compared to the pod number of PRIMARY
No
suffix
string
Suffix that should be used when naming the CANARY variant’s resources. Default is canary.
No
createService
bool
Whether the CANARY service should be created. Default is false.
List of patches used to customize manifests for CANARY variant.
No
KubernetesCanaryCleanStageOptions
Field
Type
Description
Required
KubernetesBaselineRolloutStageOptions
Field
Type
Description
Required
replicas
int
How many pods for BASELINE workloads. Default is 1 pod. Alternatively, can be specified a string suffixed by “%” to indicate a percentage value compared to the pod number of PRIMARY
No
suffix
string
Suffix that should be used when naming the BASELINE variant’s resources. Default is baseline.
No
createService
bool
Whether the BASELINE service should be created. Default is false.
No
KubernetesBaselineCleanStageOptions
Field
Type
Description
Required
KubernetesTrafficRoutingStageOptions
This stage routes traffic with the method specified in KubernetesTrafficRouting.
When using podselector method as a traffic routing method, routing is done by updating the Service selector.
Therefore, note that all traffic will be routed to the primary if the the primary variant’s service is rolled out by running the K8S_PRIMARY_ROLLOUT stage.
Field
Type
Description
Required
all
string
Which variant should receive all traffic. Available values are “primary”, “canary”, “baseline”. Default is primary.
The percentage of traffic should be routed to CANARY variant.
No
Note: By default, the sum of traffic is rounded to 100. If both primary and canary numbers are not set, the PRIMARY variant will receive 100% while the CANARY variant will receive 0% of the traffic.
The list of applications which should be triggered once deployment of this application rolled out successfully.
Yes
DeploymentChainApplication
Field
Type
Description
Required
name
string
The name of PipeCD application, note that application name is not unique in PipeCD datastore
No
kind
string
The kind of the PipeCD application, which should be triggered as a node in deployment chain. The value will be one of: KUBERNETES, TERRAFORM, CLOUDRUN, LAMBDA, ECS.
List of operations should be applied to the above target.
No
KubernetesResourcePatchTarget
Field
Type
Description
Required
kind
string
The resource kind. e.g. ConfigMap
Yes
name
string
The resource name. e.g. config-map-name
Yes
documentRoot
string
In case you want to manipulate the YAML or JSON data specified in a field of the manfiest, specify that field’s path. The string value of that field will be used as input for the patch operations. Otherwise, the whole manifest will be the target of patch operations. e.g. $.data.envoy-config
No
KubernetesResourcePatchOp
Field
Type
Description
Required
op
string
The operation type. This must be one of yaml-replace, yaml-add, yaml-remove, json-replace, text-regex. Default is yaml-replace.
No
path
string
The path string pointing to the manipulated field. For yaml operations it looks like $.foo.array[0].bar.
No
value
string
The value string whose content will be used as new value for the field.
Copyright The PipeCD Authors.
The Linux Foundation® (TLF) has registered trademarks and uses trademarks. For a list of TLF trademarks,
see Trademark Usage.