Configuration reference
This page describes all configurable fields in the piped configuration.
apiVersion: pipecd.dev/v1beta1
kind: Piped
spec:
projectID: ...
pipedID: ...
...
Piped Configuration
| Field | Type | Description | Required |
|---|
| projectID | string | The identifier of the PipeCD project where this piped belongs to. | Yes |
| pipedID | string | The generated ID for this piped. | Yes |
| pipedKeyFile | string | The path to the file containing the generated key string for this piped. | Yes |
| pipedKeyData | string | Base64 encoded string of Piped key. Either pipedKeyFile or pipedKeyData must be set. | Yes |
| apiAddress | string | The address used to connect to the Control Plane’s API in format host:port. | Yes |
| syncInterval | duration | How often to check whether an application should be synced. Default is 1m. | No |
| appConfigSyncInterval | duration | How often to check whether application configuration files should be synced. Default is 1m. | No |
| git | Git | Git configuration needed for Git commands. | No |
| repositories | []Repository | List of Git repositories this piped will handle. | No |
| chartRepositories | []ChartRepository | List of Helm chart repositories that should be added while starting up. | No |
| chartRegistries | []ChartRegistry | List of helm chart registries that should be logged in while starting up. | No |
| platformProviders | []PlatformProvider | List of platform providers can be used by this piped. | No |
| analysisProviders | []AnalysisProvider | List of analysis providers can be used by this piped. | No |
| eventWatcher | EventWatcher | Optional Event watcher settings. | No |
| secretManagement | SecretManagement | The using secret management method. | No |
| notifications | Notifications | Sending notifications to Slack, Webhook… | No |
| appSelector | map[string]string | List of labels to filter all applications this piped will handle. Currently, it is only be used to filter the applications suggested for adding from the control plane. | No |
Git
| 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. | No |
GitRepository
| 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 |
ChartRepository
| Field | Type | Description | Required |
|---|
| type | string | The repository type. Currently, HTTP and GIT are supported. Default is HTTP. | No |
| name | string | The name of the Helm chart repository. Note that is not a Git repository but a Helm chart repository. | Yes if type is HTTP |
| address | string | The address to the Helm chart repository. | Yes if type is HTTP |
| username | string | Username used for the repository backed by HTTP basic authentication. | No |
| password | string | Password used for the repository backed by HTTP basic authentication. | No |
| insecure | bool | Whether to skip TLS certificate checks for the repository or not. | No |
| gitRemote | string | Remote address of the Git repository used to clone Helm charts. | Yes if type is GIT |
| sshKeyFile | string | The path to the private ssh key file used while cloning Helm charts from above Git repository. | No |
ChartRegistry
| Field | Type | Description | Required |
|---|
| type | string | The registry type. Currently, only OCI is supported. Default is OCI. | No |
| address | string | The address to the registry. | Yes |
| username | string | Username used for the registry authentication. | No |
| password | string | Password used for the registry authentication. | No |
| Field | Type | Description | Required |
|---|
| name | string | The name of the platform provider. | Yes |
| type | string | The platform provider type. Must be one of the following values:
KUBERNETES, TERRAFORM, ECS, CLOUDRUN, LAMBDA. | Yes |
| config | PlatformProviderConfig | Specific configuration for the specified type of platform provider. | No |
Must be one of the following structs:
| Field | Type | Description | Required |
|---|
| masterURL | string | The master URL of the kubernetes cluster. Empty means in-cluster. | No |
| kubectlVersion | string | Version of kubectl which will be used to connect to your cluster. Empty means the version set on piped config or default version will be used. | No |
| kubeConfigPath | string | The path to the kubeconfig file. Empty means in-cluster. | No |
| appStateInformer | KubernetesAppStateInformer | Configuration for application resource informer. | No |
| Field | Type | Description | Required |
|---|
| vars | []string | List of variables that will be set directly on terraform commands with -var flag. The variable must be formatted by key=value. | No |
| driftDetectionEnabled | bool | Enable drift detection. This is a temporary option and will be possibly removed in the future release. Default is true | No |
| Field | Type | Description | Required |
|---|
| project | string | The GCP project hosting the Cloud Run service. | Yes |
| region | string | The region of running Cloud Run service. | Yes |
| credentialsFile | string | The path to the service account file for accessing Cloud Run service. | No |
| Field | Type | Description | Required |
|---|
| region | string | The region of running Lambda service. | Yes |
| credentialsFile | string | The path to the credential file for logging into AWS cluster. If this value is not provided, piped will read credential info from environment variables. It expects the format ~/.aws/credentials. | No |
| roleARN | string | The IAM role arn to use when assuming an role. Required if you want to use the AWS SecurityTokenService. | No |
| tokenFile | string | The path to the WebIdentity token the SDK should use to assume a role with. Required if you want to use the AWS SecurityTokenService. | No |
| profile | string | The profile to use for logging into AWS cluster. The default value is default. | No |
| awsAPIPollingInterval | duration | The interval of periodical calls of AWS APIs. Currently, this is an interval of refreshing the live state of Lambda functions. Default is 15s. | No |
| Field | Type | Description | Required |
|---|
| region | string | The region of running ECS cluster. | Yes |
| credentialsFile | string | The path to the credential file for logging into AWS cluster. If this value is not provided, piped will read credential info from environment variables. It expects the format ~/.aws/credentials | No |
| roleARN | string | The IAM role arn to use when assuming an role. Required if you want to use the AWS SecurityTokenService. | No |
| tokenFile | string | The path to the WebIdentity token the SDK should use to assume a role with. Required if you want to use the AWS SecurityTokenService. | No |
| profile | string | The profile to use for logging into AWS cluster. The default value is default. | No |
| Field | Type | Description | Required |
|---|
| namespace | string | Only watches the specified namespace. Empty means watching all namespaces. | No |
| includeResources | []KubernetesResourcematcher | List of resources that should be added to the watching targets. | No |
| excludeResources | []KubernetesResourcematcher | List of resources that should be ignored from the watching targets. | No |
KubernetesResourceMatcher
| Field | Type | Description | Required |
|---|
| apiVersion | string | The APIVersion of the kubernetes resource. | Yes |
| kind | string | The kind name of the kubernetes resource. Empty means all kinds are matching. | No |
AnalysisProvider
| Field | Type | Description | Required |
|---|
| name | string | The unique name of the analysis provider. | Yes |
| type | string | The provider type. Currently, only PROMETHEUS, DATADOG are available. | Yes |
| config | AnalysisProviderConfig | Specific configuration for the specified type of analysis provider. | Yes |
AnalysisProviderConfig
Must be one of the following structs:
AnalysisProviderPrometheusConfig
| Field | Type | Description | Required |
|---|
| address | string | The Prometheus server address. | Yes |
| usernameFile | string | The path to the username file. | No |
| passwordFile | string | The path to the password file. | No |
AnalysisProviderDatadogConfig
| Field | Type | Description | Required |
|---|
| address | string | The address of Datadog API server. Only “datadoghq.com”, “us3.datadoghq.com”, “datadoghq.eu”, “ddog-gov.com” are available. Defaults to “datadoghq.com” | No |
| apiKeyFile | string | The path to the api key file. | Yes |
| applicationKeyFile | string | The path to the application key file. | Yes |
| apiKeyData | string | Base64 API Key for Datadog API server. Either apiKeyData or apiKeyFile must be set | No |
| applicationKeyData | string | Base64 Application Key for Datadog API server. Either applicationKeyFile or applicationKeyData must be set | No |
EventWatcher
| Field | Type | Description | Required |
|---|
| checkInterval | duration | Interval to fetch the latest event and compare it with one defined in EventWatcher config files. Defaults to 1m. | No |
| gitRepos | []EventWatcherGitRepo | The configuration list of git repositories to be observed. Only the repositories in this list will be observed by Piped. | No |
EventWatcherGitRepo
| Field | Type | Description | Required |
|---|
| repoId | string | Id of the git repository. This must be unique within the repos’ elements. | Yes |
| commitMessage | string | The commit message used to push after replacing values. Default message is used if not given. | No |
| includes | []string | The paths to EventWatcher files to be included. Patterns can be used like foo/*.yaml. | No |
| excludes | []string | The paths to EventWatcher files to be excluded. Patterns can be used like foo/*.yaml. This is prioritized if both includes and this are given. | No |
SecretManagement
| Field | Type | Description | Required |
|---|
| type | string | Which management method should be used. Default is KEY_PAIR. | Yes |
| config | SecretManagementConfig | Configration for using secret management method. | Yes |
SecretManagementConfig
Must be one of the following structs:
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
WIP
Notifications
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 should be routed to the receiver. | No |
| ignoreGroups | []string | List of event groups should be ignored. | No |
| apps | []string | List of applications where their events should be routed to the receiver. | 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 to the receiver. | No |
| ignoreLabels | map[string]string | List of labels where their events should be ignored. | No |
NotificationReceiver
NotificationReceiverSlack
| Field | Type | Description | Required |
|---|
| hookURL | string | The hookURL of a slack channel. | 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 oautoken file | No |
| channelID | string | The channel id which slack api send to. | No |
| mentionedAccounts | []string | The accounts to which slack api referes. This field supports both @username and username writing styles. | No |
| mentionedGroups | []string | The groups to which slack api referes. 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 |