Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ spec:
| repositories | [][Repository](/docs/operator-manual/piped/configuration-reference/#repository) | List of Git repositories this piped will handle | No |
| chartRepositories | [][ChartRepository](/docs/operator-manual/piped/configuration-reference/#chartrepository) | List of Helm chart repositories that should be added while starting up | No |
| cloudProviders | [][CloudProvider](/docs/operator-manual/piped/configuration-reference/#cloudprovider) | List of cloud providers can be used by this piped | No |
| analysisProviders | [][CloudProvider](/docs/operator-manual/piped/configuration-reference/#analysisprovider) | List of analysis providers can be used by this piped | No |
| analysisProviders | [][AnalysisProvider](/docs/operator-manual/piped/configuration-reference/#analysisprovider) | List of analysis providers can be used by this piped | No |
| notifications | [Notifications](/docs/operator-manual/piped/configuration-reference/#notifications) | Notification to Slack, Webhook... | No |

### Git
Expand Down
5 changes: 5 additions & 0 deletions docs/content/en/docs/user-guide/adding-a-manual-approval.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ description: >
---

> TBA

![](/images/deployment-wait-approval-stage.png)
<p style="text-align: center;">
Deployment with a WAIT_APPROVAL stage
</p>
5 changes: 5 additions & 0 deletions docs/content/en/docs/user-guide/adding-a-wait-stage.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ description: >
---

> TBA

![](/images/deployment-wait-stage.png)
<p style="text-align: center;">
Deployment with a WAIT stage
</p>
5 changes: 5 additions & 0 deletions docs/content/en/docs/user-guide/application-live-state.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,8 @@ description: >
---

> TBA

![](/images/application-details.png)
<p style="text-align: center;">
Application Details Page
</p>
6 changes: 6 additions & 0 deletions docs/content/en/docs/user-guide/cancelling-a-deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,9 @@ description: >
---

> TBA

![](/images/cancel-deployment.png)
<p style="text-align: center;">
Cancel a Deployment from web UI
</p>

Original file line number Diff line number Diff line change
Expand Up @@ -7,3 +7,21 @@ description: >
---

> TBA

Configuration Drift is the phenomenon where running resources become more and more different with the defined in Git as time goes on, due to manual ad-hoc changes and updates.
As PipeCD is using Git as single source of truth, all application resources and infrastructure changes must be done by making a pull request to Git.

![](/images/application-synced.png)
<p style="text-align: center;">
Application is in SYNCED state
</p>

![](/images/application-out-of-sync.png)
<p style="text-align: center;">
Application is in OUT_OF_SYNC state
</p>

![](/images/application-out-of-sync-details.png)
<p style="text-align: center;">
The details shows why the application is in OUT_OF_SYNC state
</p>
250 changes: 220 additions & 30 deletions docs/content/en/docs/user-guide/configuration-reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,32 +8,79 @@ description: >

> TBA

### Piped Configuration
## Kubernetes Application

``` yaml
apiVersion: pipecd.dev/v1beta1
kind: Piped
kind: KubernetesApp
spec:
projectID: ...
pipedID: ...
input:
pipeline:
...
```

| Field | Type | Description | Required |
|-|-|-|-|
| projectID | string | The project ID this piped belongs to | Yes |
| pipedID | string | The generated ID for this piped | Yes |
| pipedKeyFile | string | The path to the file containing generated Key for this piped | Yes |
| webURL | string | The URL address of PipeCD web | Yes |
| syncInterval | duration | How offten to check whether an application should be synced. Default is `1m` | No |
| git | [Git](/docs/operator-manual/piped/configuration-reference/#git) | Git configuration needed for Git commands | No |
| repositories | [][Repository](/docs/operator-manual/piped/configuration-reference/#repository) | List of Git repositories this piped will handle | No |
| chartRepositories | [][ChartRepository](/docs/operator-manual/piped/configuration-reference/#chartrepository) | List of Helm chart repositories that should be added while starting up | No |
| cloudProviders | [][CloudProvider](/docs/operator-manual/piped/configuration-reference/#cloudprovider) | List of cloud providers can be used by this piped | No |
| analysisProviders | [][CloudProvider](/docs/operator-manual/piped/configuration-reference/#analysisprovider) | List of analysis providers can be used by this piped | No |
| notifications | [Notifications](/docs/operator-manual/piped/configuration-reference/#notifications) | Notification to Slack, Webhook... | No |
| input | [KubernetesDeploymentInput](/docs/user-guide/configuration-reference/#kubernetesdeploymentinput) | Input for Kubernetes deployment such as kubectl version, helm version, manifests filter... | No |
| commitMatcher | [CommitMatcher](/docs/user-guide/configuration-reference/#commitmatcher) | Forcibly use QuickSync or Pipeline when commit message matched the specified format. | No |
| quickSync | [KubernetesQuickSync](/docs/user-guide/configuration-reference/#kubernetesquicksync) | Configuration for quick sync. | No |
| pipeline | [Pipeline](/docs/user-guide/configuration-reference/#pipeline) | Pipeline for deploying progressively. | No |
| service | [KubernetesService](/docs/user-guide/configuration-reference/#kubernetesservice) | Which Kubernetes resource should be considered as the Service of application. Empty means the first Service resource will be used. | No |
| workloads | [][KubernetesWorkload](/docs/user-guide/configuration-reference/#kubernetesworkload) | Which Kubernetes resources should be consiedered as the Workloads of application. Empty means all Deployment resources. | No |
| trafficRouting | [KubernetesTrafficRouting](/docs/user-guide/configuration-reference/#kubernetestrafficrouting) | How to change traffic routing percentages. | No |

### Analysis Template Configuration
## Terraform application

``` yaml
apiVersion: pipecd.dev/v1beta1
kind: TerraformApp
spec:
input:
pipeline:
...
```

| Field | Type | Description | Required |
|-|-|-|-|
| input | [TerraformDeploymentInput](/docs/user-guide/configuration-reference/#terraformdeploymentinput) | Input for Terraform deployment such as terraform version, workspace... | No |
| quickSync | [TerraformQuickSync](/docs/user-guide/configuration-reference/#terraformquicksync) | Configuration for quick sync. | No |
| pipeline | [Pipeline](/docs/user-guide/configuration-reference/#pipeline) | Pipeline for deploying progressively. | No |

## CloudRun application

``` yaml
apiVersion: pipecd.dev/v1beta1
kind: CloudRunApp
spec:
input:
pipeline:
...
```

| Field | Type | Description | Required |
|-|-|-|-|
| input | [CloudRunDeploymentInput](/docs/user-guide/configuration-reference/#cloudrundeploymentinput) | Input for CloudRun deployment such as docker image... | No |
| quickSync | [CloudRunQuickSync](/docs/user-guide/configuration-reference/#cloudrunquicksync) | Configuration for quick sync. | No |
| pipeline | [Pipeline](/docs/user-guide/configuration-reference/#pipeline) | Pipeline for deploying progressively. | No |

## Lambda application

``` yaml
apiVersion: pipecd.dev/v1beta1
kind: LambdaApp
spec:
input:
pipeline:
...
```

| Field | Type | Description | Required |
|-|-|-|-|
| input | [CloudRunDeploymentInput](/docs/user-guide/configuration-reference/#cloudrundeploymentinput) | Input for Lambda deployment such as where to fetch source code... | No |
| quickSync | [CloudRunQuickSync](/docs/user-guide/configuration-reference/#cloudrunquicksync) | Configuration for quick sync. | No |
| pipeline | [Pipeline](/docs/user-guide/configuration-reference/#pipeline) | Pipeline for deploying progressively. | No |

## Analysis Template Configuration

``` yaml
apiVersion: pipecd.dev/v1beta1
Expand All @@ -45,44 +92,187 @@ spec:
| Field | Type | Description | Required |
|-|-|-|-|

### Git
## 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 |

## Pipeline

| Field | Type | Description | Required |
|-|-|-|-|
| stages | [][PipelineStage](/docs/user-guide/configuration-reference/#pipelinestage) | List of deployment pipeline stages. | No |

## PipelineStage

| Field | Type | Description | Required |
|-|-|-|-|
| id | string | The unique ID of the stage. | No |
| name | string | One of the provided stage names. | Yes |
| desc | string | The description about the stage. | No |
| timeout | duration | The maximum time the stage can be taken to run. | No |
| with | | Specific configuration for the stage. | No |

## KubernetesDeploymentInput

| Field | Type | Description | Required |
|-|-|-|-|
| manifests | []string | List of manifest files in the application configuration directory used to deploy. Empty means all manifest files in the directory will be used. | No |
| kubectlVersion | string | Version of kubectl will be used. Empty means the [default version](https://github.com/pipe-cd/pipe/blob/master/dockers/piped-base/install-kubectl.sh#L34) will be used. | No |
| kustomizeVersion | string | Version of kustomize will be used. Empty means the [default version](https://github.com/pipe-cd/pipe/blob/master/dockers/piped-base/install-kustomize.sh#L34) will be used. | No |
| helmVersion | string | Version of helm will be used. Empty means the [default version](https://github.com/pipe-cd/pipe/blob/master/dockers/piped-base/install-helm.sh#L35) will be used. | No |
| helmChart | [HelmChart](/docs/user-guide/configuration-reference/#helmchart) | Where to fetch helm chart. | No |
| helmOptions | [HelmOptions](/docs/user-guide/configuration-reference/#helmoptions) | Configurable parameters for helm commands. | No |
| namespace | string | The namespace where manifests will be applied. | No |
| autoRollback | bool | Automatically reverts all deployment changes on failure. Default is `true`. | No |
| dependencies | []string | List of directories where their changes will trigger the deployment. | No |

## HelmChart

| Field | Type | Description | Required |
|-|-|-|-|

## HelmOptions

| Field | Type | Description | Required |
|-|-|-|-|

## 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. Avaiable values are `istio`, `podselector`. Default is `podselector`. | No |
| istio | [IstioTrafficRouting](/docs/user-guide/configuration-reference/#istiotrafficrouting)| Istio configuration when the method is `istio`. | No |

## IstioTrafficRouting

| Field | Type | Description | Required |
|-|-|-|-|

## TerraformDeploymentInput

| Field | Type | Description | Required |
|-|-|-|-|

## TerraformQuickSync

| Field | Type | Description | Required |
|-|-|-|-|

## CloudRunDeploymentInput

| Field | Type | Description | Required |
|-|-|-|-|

## CloudRunQuickSync

| Field | Type | Description | Required |
|-|-|-|-|

## LambdaDeploymentInput

| Field | Type | Description | Required |
|-|-|-|-|

## LambdaQuickSync

| 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 | Replicas | How many pods for CANARY workloads. Default is `1` pod. | 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`. | No |

### KubernetesCanaryCleanStageOptions

| Field | Type | Description | Required |
|-|-|-|-|

### KubernetesBaselineRolloutStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| replicas | Replicas | How many pods for BASELINE workloads. Default is `1` pod. | 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

| Field | Type | Description | Required |
|-|-|-|-|
| Username | string | The username that will be configured to `git` | No |
| all | string | Which variant should receive all traffic. Avaiable values are "primary", "canary", "baseline". Default is `primary`. | No |
| primary | int | The percentage of traffic should be routed to PRIMARY variant. | No |
| canary | int | The percentage of traffic should be routed to CANARY variant. | No |
| baseline | int | The percentage of traffic should be routed to BASELINE variant. | No |

### Repository
### TerraformPlanStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| repoID | string | Unique identifier to the repository. This must be unique in the piped scope | Yes |

### ChartRepository
### TerraformApplyStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| name | string | The name of the chart repository | Yes |

### CLoudProvider
### CloudRunCanaryRolloutStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| Name | string | The name of the cloud provider | Yes |

### AnalysisProvider
### CloudRunTrafficRoutingStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| Name | string | The name of the analysis provider | Yes |

### Notifications
### LambdaCanaryRolloutStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| routes | [][Notification.Route](/docs/operator-manual/piped/configuration-reference/#notificationroute) | List of notification routes | No |

### Notification.Route
### LambdaTrafficRoutingStageOptions

| Field | Type | Description | Required |
|-|-|-|-|
| Name | string | The name of the analysis provider | Yes |
Loading