Configuration reference
Learn about all the configurable fields in the piped configuration file.
This page describes all configurable fields for the piped (piped.config) configuration file in PipeCD v1.
In v1, the architecture has shifted to a plugin-based model. The old platformProviders have been replaced by plugins (which specify the tool binaries to load) and deployTargets (where to deploy, nested under plugins). analysisProviders have been moved or removed from the top level. Additionally, chartRepositories and chartRegistries have been moved from the top level and are now configured individually under spec.plugins[].config for the relevant platform plugins (e.g., the Kubernetes plugin).
Example piped.config
apiVersion: pipecd.dev/v1beta1
kind: Piped
spec:
projectID: my-project
pipedID: my-piped-id
pipedKeyFile: /etc/piped-secret/piped-key
apiAddress: grpc.pipecd.dev:443
plugins:
- name: k8s_plugin
url: file:///path/to/k8s_plugin
port: 8081
deployTargets:
- name: dev-cluster
labels:
env: dev
config:
masterURL: http://cluster-dev
kubeConfigPath: ./kubeconfig-dev
Piped Configuration
| Field |
Type |
Description |
Required |
apiVersion |
string |
pipecd.dev/v1beta1 |
Yes |
kind |
string |
Piped |
Yes |
spec.projectID |
string |
The identifier of the PipeCD project where this piped belongs to. |
Yes |
spec.pipedID |
string |
The generated ID for this piped. |
Yes |
spec.pipedKeyFile |
string |
The path to the file containing the generated key string for this piped. |
Yes* |
spec.pipedKeyData |
string |
Base64 encoded string of Piped key. Either pipedKeyFile or pipedKeyData must be set. |
Yes* |
spec.name |
string |
The name of this piped. |
No |
spec.apiAddress |
string |
The address used to connect to the Control Plane’s API. |
Yes |
spec.webAddress |
string |
The address to the Control Plane’s Web interface. |
No |
spec.syncInterval |
duration |
How often to check whether an application should be synced. Default is 1m. |
No |
spec.appConfigSyncInterval |
duration |
How often to check whether an application configuration file should be synced. Default is 1m. |
No |
spec.git |
PipedGit |
Configuration for Git executable needed for Git commands. |
No |
spec.repositories |
[]PipedRepository |
List of Git repositories this Piped should watch. |
No |
spec.plugins |
[]PipedPlugin |
List of architectural plugins (e.g., k8s_plugin, terraform_plugin) the Piped will run. |
Yes |
spec.notifications |
Notifications |
Configurations for sending deployment notifications. |
No |
spec.secretManagement |
SecretManagement |
Configuration for decrypting secrets in manifests. |
No |
spec.eventWatcher |
PipedEventWatcher |
Optional settings for event watcher. |
No |
spec.planPreview |
PipedPlanPreview |
Optional settings for plan-preview feature. |
No |
spec.appSelector |
map[string]string |
List of labels to filter all applications this piped will handle. |
No |
PipedGit
| Field |
Type |
Description |
Required |
username |
string |
The username that will be configured for git user. Default is piped. |
No |
email |
string |
The email that will be configured for git user. Default is pipecd.dev@gmail.com. |
No |
sshConfigFilePath |
string |
Where to write ssh config file. Default is $HOME/.ssh/config. |
No |
host |
string |
The host name. Default is github.com. |
No |
hostName |
string |
The hostname or IP address of the remote git server. Default is the same value with Host. |
No |
sshKeyFile |
string |
The path to the private ssh key file. This will be used to clone the source code of the specified git repositories. |
No |
sshKeyData |
string |
Base64 encoded string of SSH key. |
No |
password |
string |
The base64 encoded password for git used while cloning above Git repository via HTTPS. |
No |
PipedRepository
| Field |
Type |
Description |
Required |
repoId |
string |
Unique identifier to the repository. This must be unique in the piped scope. |
Yes |
remote |
string |
Remote address of the repository used to clone the source code. e.g. git@github.com:org/repo.git |
Yes |
branch |
string |
The branch will be handled. |
Yes |
PipedPlugin
Defines the external plugin binaries that this Piped agent should load to handle specific platforms.
| Field |
Type |
Description |
Required |
name |
string |
The name of the plugin (e.g., k8s_plugin). |
Yes |
url |
string |
Source to download the plugin binary (schemes: file, https, oci). |
Yes |
port |
int |
The port which the plugin listens to. |
No |
config |
object |
Configuration for the plugin. |
No |
deployTargets |
[]PipedDeployTarget |
The destination environments/clusters where the Piped is allowed to deploy applications. |
No |
PipedDeployTarget
Defines the target environments where applications can be deployed.
| Field |
Type |
Description |
Required |
name |
string |
The unique name of the deploy target. |
Yes |
labels |
map[string]string |
Attributes to identify the target (e.g., env: production). |
No |
config |
object |
The platform-specific connection configuration. |
Yes |
PipedEventWatcher
| Field |
Type |
Description |
Required |
checkInterval |
duration |
Interval to fetch the latest event and compare it. |
No |
gitRepos |
[]PipedEventWatcherGitRepo |
The configuration list of git repositories to be observed. |
No |
PipedEventWatcherGitRepo
| Field |
Type |
Description |
Required |
repoId |
string |
Id of the git repository. Must be unique. |
Yes |
commitMessage |
string |
The commit message used to push after replacing values. |
No |
includes |
[]string |
The paths to EventWatcher files to be included. e.g. foo/*.yaml. |
No |
excludes |
[]string |
The paths to EventWatcher files to be excluded. Prioritized over includes. |
No |
PipedPlanPreview
| Field |
Type |
Description |
Required |
workerNum |
int |
Number of worker goroutines processing plan-preview commands. |
No |
commandQueueBufferSize |
int |
Buffer size of the internal command channel. |
No |
commandCheckInterval |
duration |
How often to poll for new plan-preview commands. |
No |
commandHandleTimeout |
duration |
Default timeout for building each plan-preview result when the command does not specify one. |
No |
SecretManagement
| Field |
Type |
Description |
Required |
type |
string |
Which management service should be used (KEY_PAIR, GCP_KMS). |
Yes |
config |
object |
Configuration for the specified secret management type. |
Yes |
SecretManagementConfig
Must be one of the following structs based on the type field:
SecretManagementKeyPair
| Field |
Type |
Description |
Required |
privateKeyFile |
string |
Path to the private RSA key file. |
Yes |
privateKeyData |
string |
Base64 encoded string of private RSA key. Either privateKeyFile or privateKeyData must be set. |
No |
publicKeyFile |
string |
Path to the public RSA key file. |
Yes |
publicKeyData |
string |
Base64 encoded string of public RSA key. Either publicKeyFile or publicKeyData must be set. |
No |
SecretManagementGCPKMS
| Field |
Type |
Description |
Required |
keyName |
string |
The key name used for decrypting the sealed secret. |
Yes |
decryptServiceAccountFile |
string |
The path to the service account used to decrypt secret. |
Yes |
encryptServiceAccountFile |
string |
The path to the service account used to encrypt secret. |
Yes |
Notifications
| Field |
Type |
Description |
Required |
routes |
[]NotificationRoute |
List of notification routes. |
No |
receivers |
[]NotificationReceiver |
List of notification receivers. |
No |
NotificationRoute
| Field |
Type |
Description |
Required |
name |
string |
The name of the route. |
Yes |
receiver |
string |
The name of receiver who will receive all matched events. |
Yes |
events |
[]string |
List of events that should be routed to the receiver. |
No |
ignoreEvents |
[]string |
List of events that should be ignored. |
No |
groups |
[]string |
List of event groups that should be routed to the receiver. |
No |
ignoreGroups |
[]string |
List of event groups that should be ignored. |
No |
apps |
[]string |
List of applications where their events should be routed. |
No |
ignoreApps |
[]string |
List of applications where their events should be ignored. |
No |
labels |
map[string]string |
List of labels where their events should be routed. |
No |
ignoreLabels |
map[string]string |
List of labels where their events should be ignored. |
No |
NotificationReceiver
| Field |
Type |
Description |
Required |
name |
string |
The name of the receiver. |
Yes |
slack |
NotificationReceiverSlack |
Configuration for slack receiver. |
No |
webhook |
NotificationReceiverWebhook |
Configuration for webhook receiver. |
No |
NotificationReceiverSlack
Use either hookURL alone, or channelID with an OAuth token (oauthToken, oauthTokenData, or oauthTokenFile). Do not set both.
| Field |
Type |
Description |
Required |
hookURL |
string |
The hook URL of a Slack channel. Required when not using OAuth token. |
Yes* |
oauthToken |
string |
The token for Slack API use. (deprecated) |
No |
oauthTokenData |
string |
Base64 encoded string of the token for Slack API use. |
No |
oauthTokenFile |
string |
The path to the OAuth token file. |
No |
channelID |
string |
The channel ID which the Slack API sends to. Required when using OAuth token. |
Yes* |
mentionedAccounts |
[]string |
The accounts to which slack api refers. This field supports both @username and username writing styles. |
No |
mentionedGroups |
[]string |
The groups to which slack api refers. This field supports both <!subteam^groupname> and groupname writing styles. |
No |
NotificationReceiverWebhook
| Field |
Type |
Description |
Required |
url |
string |
The URL where notification event will be sent to. |
Yes |
signatureKey |
string |
The HTTP header key used to store the configured signature in each event. Default is “PipeCD-Signature”. |
No |
signatureValue |
string |
The value of signature included in header of each event request. It can be used to verify the received events. |
No |
signatureValueFile |
string |
The path to the signature value file. |
No |