From fd6ab645ab62c3da0c59ee5b8af34ab7f6d751bc Mon Sep 17 00:00:00 2001 From: Shivansh Sahu Date: Fri, 13 Mar 2026 06:23:04 +0000 Subject: [PATCH 1/4] docs(v1): add comprehensive configuration references for app and piped Signed-off-by: Shivansh Sahu --- .../configuration-reference.md | 51 +++- .../managing-piped/configuration-reference.md | 261 ++++++------------ 2 files changed, 139 insertions(+), 173 deletions(-) diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md index df449655b1..18bb15bf59 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md @@ -6,7 +6,50 @@ description: > Learn about all the configurable fields in the application configuration file. --- ->**Note:** ->PipeCD v1 documentation is still a work in progress. We are updating this configuration reference. -> Until then, [see configurable fields for the application configuration file for v0.55](../../../docs-v0.55.x/user-guide/configuration-reference.md), and if you have any questions, [reach out to us](../../../../../../README.md#community-and-development) using one of our communication channels. ->Happy PipeCDing! +This page describes all configurable fields in the application configuration for PipeCD v1. + +Unlike previous versions, PipeCD v1 unifies all application types under a single `Application` kind. The specific platform (Kubernetes, Terraform, Cloud Run, etc.) is now defined using a platform label. + +### Example `app.config` + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: Application +labels: + pipecd.dev/platform: KUBERNETES # Or TERRAFORM, CLOUDRUN, LAMBDA, ECS +spec: + name: my-app + description: "My unified v1 application" + plugins: {} + pipeline: {} +``` + +## Application Configuration + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `apiVersion` | string | `pipecd.dev/v1beta1` | Yes | +| `kind` | string | `Application` | Yes | +| `labels` | map[string]string | Additional attributes to identify applications. Must include the `pipecd.dev/platform` label to specify the platform type. | Yes | +| `spec.name` | string | The application name. | Yes | +| `spec.description` | string | Notes on the Application. | No | +| `spec.planner` | DeploymentPlanner | Configuration used while planning the deployment. | No | +| `spec.commitMatcher` | DeploymentCommitMatcher | Forcibly use QuickSync or Pipeline when commit message matched the specified pattern. | No | +| `spec.pipeline` | Pipeline | Pipeline definition for progressive delivery. | No | +| `spec.trigger` | Trigger | Configuration used to determine if a new deployment should be triggered. | No | +| `spec.postSync` | PostSync | Extra actions to execute once the deployment is triggered. | No | +| `spec.timeout` | duration | The maximum length of time to execute deployment before giving up. Default is `6h`. | No | +| `spec.encryption` | SecretEncryption | List of encrypted secrets and targets that should be decoded before using. | No | +| `spec.attachment` | Attachment | List of files that should be attached to application manifests before using. | No | +| `spec.notification` | DeploymentNotification | Additional configuration for sending notifications to external services. | No | +| `spec.eventWatcher` | []EventWatcherConfig | List of the configurations for the event watcher. | No | +| `spec.driftDetection` | [DriftDetection](#driftdetection) | Configuration for drift detection. | No | +| `spec.plugins` | map[string]any | List of the configurations for plugins. This field is plugin-specific. | No | + +*(Note: The `spec.plugins` structures depend on the value of the `pipecd.dev/platform` label. See the specific Plugin documentation for deeper fields).* + +## DriftDetection + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `ignoreFields` | []string | List of `apiVersion:kind:namespace:name#fieldPath` to ignore in diffs. | No | diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md index 0d5f94eb4d..5275aba157 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md @@ -6,204 +6,119 @@ description: > Learn about all the configurable fields in the `piped` configuration file. --- ->**Note:** ->PipeCD v1 documentation is still a work in progress. We are updating this configuration reference. -> Until then, [see configurable fields for the piped configuration file for v0.55](../../../docs-v0.55.x/user-guide/managing-piped/configuration-reference.md), and if you have any questions, [reach out to us](../../../../../../README.md#community-and-development) using one of our communication channels. ->Happy PipeCDing! +This page describes all configurable fields for the Piped (`piped.config`) configuration file in PipeCD v1. - +======= +>>>>>>> f9f7a119c (docs(v1): add comprehensive configuration references for app and piped) From 6e771f2a4470f1730bd420b593daec10067b104e Mon Sep 17 00:00:00 2001 From: Shivansh Sahu Date: Wed, 25 Mar 2026 19:15:45 +0000 Subject: [PATCH 2/4] docs(v1): add comprehensive config tables for app and piped configs per review Signed-off-by: Shivansh Sahu --- .../configuration-reference.md | 27 +++++++++++++++++++ .../managing-piped/configuration-reference.md | 21 ++++++++++++++- 2 files changed, 47 insertions(+), 1 deletion(-) diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md index 18bb15bf59..9f15fe8e1b 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md @@ -53,3 +53,30 @@ spec: | Field | Type | Description | Required | | --- | --- | --- | --- | | `ignoreFields` | []string | List of `apiVersion:kind:namespace:name#fieldPath` to ignore in diffs. | No | + +## Planner + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `alwaysUsePipeline` | bool | Whether to always use the pipeline for deployment instead of a QuickSync. | No | +| `autoRollback` | bool | Whether to automatically rollback to the previous state when the deployment fails. | No | + +## Pipeline + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `stages` | []PipelineStage | List of stages to be executed sequentially during the deployment pipeline. | Yes | + +## Trigger + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `onCommit` | OnCommit | Configuration for triggering deployments upon new commits. | No | +| `onCommand` | OnCommand | Configuration for triggering deployments via manual command. | No | +| `onOutOfSync` | OnOutOfSync | Configuration for triggering deployments when drift is detected. | No | + +## PostSync + +| Field | Type | Description | Required | +| --- | --- | --- | --- | +| `chain` | []PostSyncPlugin | List of plugins or tasks to execute after a successful synchronization. | Yes | diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md index 5275aba157..87ceecd841 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md @@ -152,7 +152,26 @@ Must be one of the following structs: | `routes` | []NotificationRoute | List of notification routes. | No | | `receivers` | []NotificationReceiver | List of notification receivers. | No | -*(See the source or previous docs for full Notifications routing references).* +### 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 | +| `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 | <<<<<<< HEAD | Field | Type | Description | Required | From f8455cef292c43580e4fdcca854dfc39c63d7e28 Mon Sep 17 00:00:00 2001 From: Shivansh Sahu Date: Fri, 3 Apr 2026 18:06:02 +0000 Subject: [PATCH 3/4] docs(v1): add slack and webhook receiver config tables per review nit Signed-off-by: Shivansh Sahu --- .../managing-piped/configuration-reference.md | 103 ++++++++---------- 1 file changed, 45 insertions(+), 58 deletions(-) diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md index 87ceecd841..4c10d02436 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-piped/configuration-reference.md @@ -6,11 +6,11 @@ description: > 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. +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). `chartRepositories` and `analysisProviders` have also been moved or removed from the top level. +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` +## Example `piped.config` ```yaml apiVersion: pipecd.dev/v1beta1 @@ -54,6 +54,7 @@ spec: | `spec.notifications` | [Notifications](#notifications) | Configurations for sending deployment notifications. | No | | `spec.secretManagement` | [SecretManagement](#secretmanagement) | Configuration for decrypting secrets in manifests. | No | | `spec.eventWatcher` | [PipedEventWatcher](#pipedeventwatcher) | Optional settings for event watcher. | No | +| `spec.planPreview` | [PipedPlanPreview](#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 @@ -73,7 +74,7 @@ spec: | Field | Type | Description | Required | | --- | --- | --- | --- | -| `repoID` | string | Unique identifier to the repository. This must be unique in the piped scope. | Yes | +| `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 | @@ -85,7 +86,7 @@ Defines the external plugin binaries that this Piped agent should load to handle | --- | --- | --- | --- | | `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. | Yes | +| `port` | int | The port which the plugin listens to. | No | | `config` | object | Configuration for the plugin. | No | | `deployTargets` | [][PipedDeployTarget](#pipeddeploytarget) | The destination environments/clusters where the Piped is allowed to deploy applications. | No | @@ -115,35 +116,42 @@ Defines the target environments where applications can be deployed. | `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 | -<<<<<<< HEAD -|-|-|-|-| -| type | string | Which management method should be used. Default is `KEY_PAIR`. | Yes | -| config | [SecretManagementConfig](#secretmanagementconfig) | Configuration for using secret management method. | Yes | +| --- | --- | --- | --- | +| `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: +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 | +| --- | --- | --- | --- | +| `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 -======= +| 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 | ->>>>>>> f9f7a119c (docs(v1): add comprehensive configuration references for app and piped) +| `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 @@ -160,6 +168,8 @@ Must be one of the following structs: | `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 | @@ -173,48 +183,25 @@ Must be one of the following structs: | `slack` | NotificationReceiverSlack | Configuration for slack receiver. | No | | `webhook` | NotificationReceiverWebhook | Configuration for webhook receiver. | No | -<<<<<<< HEAD -| 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 - -| Field | Type | Description | Required | -|-|-|-|-| -| name | string | The name of the receiver. | Yes | -| slack | [NotificationReceiverSlack](#notificationreceiverslack) | Configuration for slack receiver. | No | -| webhook | [NotificationReceiverWebhook](#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 hookURL of a slack channel. | Yes | -| oauthToken | string | [The token for Slack API use.](https://api.slack.com/authentication/basics) (deprecated)| No | -| oauthTokenData | string | Base64 encoded string of [The token for Slack API use.](https://api.slack.com/authentication/basics) | No | -| oauthTokenFile | string | The path to the oauthToken file | No | -| channelID | string | The channel id which slack api send to. | No | -| 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 `` and `groupname` writing styles.| No | +| --- | --- | --- | --- | +| `hookURL` | string | The hook URL of a Slack channel. Required when not using OAuth token. | Yes* | +| `oauthToken` | string | [The token for Slack API use.](https://api.slack.com/authentication/basics) (deprecated) | No | +| `oauthTokenData` | string | Base64 encoded string of [the token for Slack API use.](https://api.slack.com/authentication/basics) | 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 `` 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 | --> -======= ->>>>>>> f9f7a119c (docs(v1): add comprehensive configuration references for app and piped) +| --- | --- | --- | --- | +| `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 | From be948884140c1473351f6be9c96b8daf744b2f46 Mon Sep 17 00:00:00 2001 From: Shivansh Sahu Date: Sat, 4 Apr 2026 17:03:13 +0000 Subject: [PATCH 4/4] chore: isolate piped config changes Signed-off-by: Shivansh Sahu --- .../configuration-reference.md | 78 +------------------ 1 file changed, 4 insertions(+), 74 deletions(-) diff --git a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md index 9f15fe8e1b..df449655b1 100644 --- a/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md +++ b/docs/content/en/docs-v1.0.x/user-guide/managing-application/configuration-reference.md @@ -6,77 +6,7 @@ description: > Learn about all the configurable fields in the application configuration file. --- -This page describes all configurable fields in the application configuration for PipeCD v1. - -Unlike previous versions, PipeCD v1 unifies all application types under a single `Application` kind. The specific platform (Kubernetes, Terraform, Cloud Run, etc.) is now defined using a platform label. - -### Example `app.config` - -```yaml -apiVersion: pipecd.dev/v1beta1 -kind: Application -labels: - pipecd.dev/platform: KUBERNETES # Or TERRAFORM, CLOUDRUN, LAMBDA, ECS -spec: - name: my-app - description: "My unified v1 application" - plugins: {} - pipeline: {} -``` - -## Application Configuration - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `apiVersion` | string | `pipecd.dev/v1beta1` | Yes | -| `kind` | string | `Application` | Yes | -| `labels` | map[string]string | Additional attributes to identify applications. Must include the `pipecd.dev/platform` label to specify the platform type. | Yes | -| `spec.name` | string | The application name. | Yes | -| `spec.description` | string | Notes on the Application. | No | -| `spec.planner` | DeploymentPlanner | Configuration used while planning the deployment. | No | -| `spec.commitMatcher` | DeploymentCommitMatcher | Forcibly use QuickSync or Pipeline when commit message matched the specified pattern. | No | -| `spec.pipeline` | Pipeline | Pipeline definition for progressive delivery. | No | -| `spec.trigger` | Trigger | Configuration used to determine if a new deployment should be triggered. | No | -| `spec.postSync` | PostSync | Extra actions to execute once the deployment is triggered. | No | -| `spec.timeout` | duration | The maximum length of time to execute deployment before giving up. Default is `6h`. | No | -| `spec.encryption` | SecretEncryption | List of encrypted secrets and targets that should be decoded before using. | No | -| `spec.attachment` | Attachment | List of files that should be attached to application manifests before using. | No | -| `spec.notification` | DeploymentNotification | Additional configuration for sending notifications to external services. | No | -| `spec.eventWatcher` | []EventWatcherConfig | List of the configurations for the event watcher. | No | -| `spec.driftDetection` | [DriftDetection](#driftdetection) | Configuration for drift detection. | No | -| `spec.plugins` | map[string]any | List of the configurations for plugins. This field is plugin-specific. | No | - -*(Note: The `spec.plugins` structures depend on the value of the `pipecd.dev/platform` label. See the specific Plugin documentation for deeper fields).* - -## DriftDetection - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `ignoreFields` | []string | List of `apiVersion:kind:namespace:name#fieldPath` to ignore in diffs. | No | - -## Planner - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `alwaysUsePipeline` | bool | Whether to always use the pipeline for deployment instead of a QuickSync. | No | -| `autoRollback` | bool | Whether to automatically rollback to the previous state when the deployment fails. | No | - -## Pipeline - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `stages` | []PipelineStage | List of stages to be executed sequentially during the deployment pipeline. | Yes | - -## Trigger - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `onCommit` | OnCommit | Configuration for triggering deployments upon new commits. | No | -| `onCommand` | OnCommand | Configuration for triggering deployments via manual command. | No | -| `onOutOfSync` | OnOutOfSync | Configuration for triggering deployments when drift is detected. | No | - -## PostSync - -| Field | Type | Description | Required | -| --- | --- | --- | --- | -| `chain` | []PostSyncPlugin | List of plugins or tasks to execute after a successful synchronization. | Yes | +>**Note:** +>PipeCD v1 documentation is still a work in progress. We are updating this configuration reference. +> Until then, [see configurable fields for the application configuration file for v0.55](../../../docs-v0.55.x/user-guide/configuration-reference.md), and if you have any questions, [reach out to us](../../../../../../README.md#community-and-development) using one of our communication channels. +>Happy PipeCDing!