Skip to content

Commit 909fd76

Browse files
authored
Generate v0.49.x docs (#5222)
Signed-off-by: t-kikuc <[email protected]>
1 parent b60d1bf commit 909fd76

File tree

82 files changed

+7365
-1
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

82 files changed

+7365
-1
lines changed

docs/config.toml

+4
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,10 @@ no = 'Sorry to hear that. Please <a href="https://github.com/pipe-cd/pipecd/issu
167167
githubbranch = "master"
168168
url = "/docs-dev/"
169169

170+
[[params.versions]]
171+
version = "v0.49.x"
172+
url = "/docs-v0.49.x/"
173+
170174
[[params.versions]]
171175
version = "v0.48.x"
172176
url = "/docs-v0.48.x/"
+5
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "Welcome to PipeCD"
3+
linkTitle: "Documentation [v0.49.x]"
4+
type: docs
5+
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: "Concepts"
3+
linkTitle: "Concepts"
4+
weight: 2
5+
description: >
6+
This page describes several core concepts in PipeCD.
7+
---
8+
9+
![](/images/architecture-overview.png)
10+
<p style="text-align: center;">
11+
Component Architecture
12+
</p>
13+
14+
### Piped
15+
16+
`piped` is a single binary component you run as an agent in your cluster, your local network to handle the deployment tasks.
17+
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
18+
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.
19+
20+
### Control Plane
21+
22+
A centralized component managing deployment data and provides gRPC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
23+
authentication, showing deployment list/details, application list/details, delivery insights...
24+
25+
### Project
26+
27+
A project is a logical group of applications to be managed by a group of users.
28+
Each project can have multiple `piped` instances from different clouds or environments.
29+
30+
There are three types of project roles:
31+
32+
- **Viewer** has only permissions of viewing to deployment and application in the project.
33+
- **Editor** has all viewer permissions, plus permissions for actions that modify state such as manually trigger/cancel the deployment.
34+
- **Admin** has all editor permissions, plus permissions for managing project data, managing project `piped`.
35+
36+
### Application
37+
38+
A collect of resources (containers, services, infrastructure components...) and configurations that are managed together.
39+
PipeCD supports multiple kinds of applications such as `KUBERNETES`, `TERRAFORM`, `ECS`, `CLOUDRUN`, `LAMBDA`...
40+
41+
### Application Configuration
42+
43+
A YAML file that contains information to define and configure application.
44+
Each application requires one file at application directory stored in the Git repository.
45+
The default file name is `app.pipecd.yaml`.
46+
47+
### Application Directory
48+
49+
A directory in Git repository containing application configuration file and application manifests.
50+
Each application must have one application directory.
51+
52+
### Deployment
53+
54+
A deployment is a process that does transition from the current state (running state) to the desired state (specified state in Git) of a specific application.
55+
When the deployment is success, it means the running state is being synced with the desired state specified in the target commit.
56+
57+
### Sync Strategy
58+
59+
There are 3 strategies that PipeCD supports while syncing your application state with its configuration stored in Git. Which are:
60+
- Quick Sync: a fast way to make the running application state as same as its Git stored configuration. The generated pipeline contains only one predefined `SYNC` stage.
61+
- Pipeline Sync: sync the running application state with its Git stored configuration through a pipeline defined in its application configuration.
62+
- Auto Sync: depends on your defined application configuration, `piped` will decide the best way to sync your application state with its Git stored configuration.
63+
64+
### Platform Provider
65+
66+
Note: The previous name of this concept was Cloud Provider.
67+
68+
PipeCD supports multiple platforms and multiple kinds of applications.
69+
Platform Provider defines which platform, cloud and where application should be deployed to.
70+
71+
Currently, PipeCD is supporting these five platform providers: `KUBERNETES`, `ECS`, `TERRAFORM`, `CLOUDRUN`, `LAMBDA`.
72+
73+
### Analysis Provider
74+
An external product that provides metrics/logs to evaluate deployments, such as `Prometheus`, `Datadog`, `Stackdriver`, `CloudWatch` and so on.
75+
It is mainly used in the [Automated deployment analysis](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) context.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: "Contributor Guide"
3+
linkTitle: "Contributor Guide"
4+
weight: 6
5+
description: >
6+
This guide is for anyone who want to contribute to PipeCD project. We are so excited to have you!
7+
---
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: "Architectural overview"
3+
linkTitle: "Architectural overview"
4+
weight: 3
5+
description: >
6+
This page describes the architecture of PipeCD.
7+
---
8+
9+
![](/images/architecture-overview.png)
10+
<p style="text-align: center;">
11+
Component Architecture
12+
</p>
13+
14+
### Piped
15+
16+
A single binary component runs in your cluster, your local network to handle the deployment tasks.
17+
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
18+
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.
19+
20+
### Control Plane
21+
22+
A centralized component manages deployment data and provides gRPC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
23+
authentication, showing deployment list/details, application list/details, delivery insights...
24+
25+
Control Plane contains the following components:
26+
- `server`: a service to provide api for piped, web and serve static assets for web.
27+
- `ops`: a service to provide administrative features for Control Plane owner like adding/managing projects.
28+
- `cache`: a redis cache service for caching internal data.
29+
- `datastore`: data storage for storing deployment, application data
30+
- this can be a fully-managed service such as `Firestore`, `Cloud SQL`...
31+
- or a self-managed such as `MySQL`
32+
- `filestore`: file storage for storing logs, application states
33+
- this can a fully-managed service such as `GCS`, `S3`...
34+
- or a self-managed service such as `Minio`
35+
36+
For more information, see [Architecture overview of Control Plane](../../user-guide/managing-controlplane/architecture-overview/).
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
title: "Contributing"
3+
linkTitle: "Contributing"
4+
weight: 1
5+
description: >
6+
This page describes how to contribute to PipeCD.
7+
---
8+
9+
PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us! [Contributing to PipeCD](https://github.com/pipe-cd/pipecd/tree/master/CONTRIBUTING.md) is the best place to start with.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
title: "Examples"
3+
linkTitle: "Examples"
4+
weight: 7
5+
description: >
6+
Some examples of PipeCD in action!
7+
---
8+
9+
One of the best ways to see what PipeCD can do, and learn how to deploy your applications with it, is to see some real examples.
10+
11+
We have prepared some examples for each kind of application.
12+
The examples can be found at the following repository:
13+
14+
https://github.com/pipe-cd/examples
15+
16+
### Kubernetes Applications
17+
18+
| Name | Description |
19+
|-----------------------------------------------------------------------------|-------------|
20+
| [simple](https://github.com/pipe-cd/examples/tree/master/kubernetes/simple) | Deploy plain-yaml manifests in application directory without using pipeline. |
21+
| [helm-local-chart](https://github.com/pipe-cd/examples/tree/master/kubernetes/helm-local-chart) | Deploy a helm chart sourced from the same Git repository. |
22+
| [helm-remote-chart](https://github.com/pipe-cd/examples/tree/master/kubernetes/helm-remote-chart) | Deploy a helm chart sourced from a [Helm Chart Repository](https://helm.sh/docs/topics/chart_repository/). |
23+
| [helm-remote-git-chart](https://github.com/pipe-cd/examples/tree/master/kubernetes/helm-remote-git-chart) | Deploy a helm chart sourced from another Git repository. |
24+
| [kustomize-local-base](https://github.com/pipe-cd/examples/tree/master/kubernetes/kustomize-local-base) | Deploy a kustomize package that just uses the local bases from the same Git repository. |
25+
| [kustomize-remote-base](https://github.com/pipe-cd/examples/tree/master/kubernetes/kustomize-remote-base) | Deploy a kustomize package that uses remote bases from other Git repositories. |
26+
| [canary](https://github.com/pipe-cd/examples/tree/master/kubernetes/canary) | Deployment pipeline with canary strategy. |
27+
| [canary-by-config-change](https://github.com/pipe-cd/examples/tree/master/kubernetes/canary-by-config-change) | Deployment pipeline with canary strategy when ConfigMap was changed. |
28+
| [canary-patch](https://github.com/pipe-cd/examples/tree/master/kubernetes/canary-patch) | Demonstrate how to customize manifests for Canary variant using [patches](../user-guide/configuration-reference/#kubernetescanaryrolloutstageoptions) option. |
29+
| [bluegreen](https://github.com/pipe-cd/examples/tree/master/kubernetes/bluegreen) | Deployment pipeline with bluegreen strategy. This also contains a manual approval stage. |
30+
| [mesh-istio-canary](https://github.com/pipe-cd/examples/tree/master/kubernetes/mesh-istio-canary) | Deployment pipeline with canary strategy by using Istio for traffic routing. |
31+
| [mesh-istio-bluegreen](https://github.com/pipe-cd/examples/tree/master/kubernetes/mesh-istio-bluegreen) | Deployment pipeline with bluegreen strategy by using Istio for traffic routing. |
32+
| [mesh-smi-canary](https://github.com/pipe-cd/examples/tree/master/kubernetes/mesh-smi-canary) | Deployment pipeline with canary strategy by using SMI for traffic routing. |
33+
| [mesh-smi-bluegreen](https://github.com/pipe-cd/examples/tree/master/kubernetes/mesh-smi-bluegreen) | Deployment pipeline with bluegreen strategy by using SMI for traffic routing. |
34+
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/kubernetes/wait-approval) | Deployment pipeline that contains a manual approval stage. |
35+
| [multi-steps-canary](https://github.com/pipe-cd/examples/tree/master/kubernetes/multi-steps-canary) | Deployment pipeline with multiple canary steps. |
36+
| [analysis-by-metrics](https://github.com/pipe-cd/examples/tree/master/kubernetes/analysis-by-metrics) | Deployment pipeline with analysis stage by metrics. |
37+
| [analysis-by-http](https://github.com/pipe-cd/examples/tree/master/kubernetes/analysis-by-http) | Deployment pipeline with analysis stage by running http requests. |
38+
| [analysis-by-log](https://github.com/pipe-cd/examples/tree/master/kubernetes/analysis-by-log) | Deployment pipeline with analysis stage by checking logs. |
39+
| [analysis-with-baseline](https://github.com/pipe-cd/examples/tree/master/kubernetes/analysis-with-baseline) | Deployment pipeline with analysis stage by comparing baseline and canary. |
40+
| [secret-management](https://github.com/pipe-cd/examples/tree/master/kubernetes/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
41+
42+
### Terraform Applications
43+
44+
| Name | Description |
45+
|-----------------------------------------------------------------------------|-------------|
46+
| [simple](https://github.com/pipe-cd/examples/tree/master/terraform/simple) | Automatically applies when any changes were detected. |
47+
| [local-module](https://github.com/pipe-cd/examples/tree/master/terraform/local-module) | Deploy application that using local terraform modules from the same Git repository. |
48+
| [remote-module](https://github.com/pipe-cd/examples/tree/master/terraform/remote-module) | Deploy application that using remote terraform modules from other Git repositories. |
49+
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/terraform/wait-approval) | Deployment pipeline that contains a manual approval stage. |
50+
| [autorollback](https://github.com/pipe-cd/examples/tree/master/terraform/autorollback) | Automatically rollback the changes when deployment was failed. |
51+
| [secret-management](https://github.com/pipe-cd/examples/tree/master/terraform/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
52+
53+
### Cloud Run Applications
54+
55+
| Name | Description |
56+
|-----------------------------------------------------------------------------|-------------|
57+
| [simple](https://github.com/pipe-cd/examples/tree/master/cloudrun/simple) | Quick sync by rolling out the new version and switching all traffic to it. |
58+
| [canary](https://github.com/pipe-cd/examples/tree/master/cloudrun/canary) | Deployment pipeline with canary strategy. |
59+
| [analysis](https://github.com/pipe-cd/examples/tree/master/cloudrun/analysis) | Deployment pipeline that contains an analysis stage. |
60+
| [secret-management](https://github.com/pipe-cd/examples/tree/master/cloudrun/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
61+
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/cloudrun/wait-approval) | Deployment pipeline that contains a manual approval stage. |
62+
63+
### Lambda Applications
64+
65+
| Name | Description |
66+
|-----------------------------------------------------------------------------|-------------|
67+
| [simple](https://github.com/pipe-cd/examples/tree/master/lambda/simple) | Quick sync by rolling out the new version and switching all traffic to it. |
68+
| [canary](https://github.com/pipe-cd/examples/tree/master/lambda/canary) | Deployment pipeline with canary strategy. |
69+
| [analysis](https://github.com/pipe-cd/examples/tree/master/lambda/analysis) | Deployment pipeline that contains an analysis stage. |
70+
| [secret-management](https://github.com/pipe-cd/examples/tree/master/lambda/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
71+
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/lambda/wait-approval) | Deployment pipeline that contains a manual approval stage. |
72+
| [remote-git](https://github.com/pipe-cd/examples/tree/master/lambda/remote-git) | Deploy the lambda code sourced from another Git repository. |
73+
| [zip-packing-s3](https://github.com/pipe-cd/examples/tree/master/lambda/zip-packing-s3) | Deployment pipeline of kind Lambda which uses s3 stored zip file as function code. |
74+
75+
### ECS Applications
76+
77+
| Name | Description |
78+
|-----------------------------------------------------------------------------|-------------|
79+
| [simple](https://github.com/pipe-cd/examples/tree/master/ecs/simple) | Quick sync by rolling out the new version and switching all traffic to it. |
80+
| [simple-via-servicediscovery](https://github.com/pipe-cd/examples/tree/master/ecs/servicediscovery/simple) | Quick sync by rolling out the new version and switching all traffic to it for ECS Service Discovery. |
81+
| [canary](https://github.com/pipe-cd/examples/tree/master/ecs/canary) | Deployment pipeline with canary strategy. |
82+
| [canary-via-servicediscovery](https://github.com/pipe-cd/examples/tree/master/ecs/servicediscovery/canary) | Deployment pipeline with canary strategy for ECS Service Discovery. |
83+
| [bluegreen](https://github.com/pipe-cd/examples/tree/master/ecs/bluegreen) | Deployment pipeline with blue-green strategy. |
84+
| [secret-management](https://github.com/pipe-cd/examples/tree/master/ecs/secret-management) | Demonstrate how to manage sensitive data by using [Secret Management](../user-guide/managing-application/secret-management/) feature. |
85+
| [wait-approval](https://github.com/pipe-cd/examples/tree/master/ecs/wait-approval) | Deployment pipeline that contains a manual approval stage. |
86+
| [standalone-task](https://github.com/pipe-cd/examples/tree/master/ecs/standalone-task) | Deployment Standalone Task. (`Standalone task is only supported for Quick sync`) |
87+
88+
89+
### Deployment chain
90+
91+
| Name | Description |
92+
|-----------------------------------------------------------------------------|-------------|
93+
| [simple](https://github.com/pipe-cd/examples/tree/master/deployment-chain/simple) | Simple deployment chain which uses application name as a filter in chain configuration. |
+66
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
---
2+
title: "FAQ"
3+
linkTitle: "FAQ"
4+
weight: 9
5+
description: >
6+
List of frequently asked questions.
7+
---
8+
9+
If you have any other questions, please feel free to create the issue in the [pipe-cd/pipecd](https://github.com/pipe-cd/pipecd/issues/new/choose) repository or contact us on [Cloud Native Slack](https://slack.cncf.io) (channel [#pipecd](https://app.slack.com/client/T08PSQ7BQ/C01B27F9T0X)).
10+
11+
### 1. What kind of application (platform provider) will be supported?
12+
13+
Currently, PipeCD can be used to deploy `Kubernetes`, `ECS`, `Terraform`, `CloudRun`, `Lambda` applications.
14+
15+
In the near future we also want to support `Crossplane`...
16+
17+
### 2. What kind of templating methods for Kubernetes application will be supported?
18+
19+
Currently, PipeCD is supporting `Helm` and `Kustomize` as templating method for Kubernetes applications.
20+
21+
### 3. Istio is supported now?
22+
23+
Yes, you can use PipeCD for both mesh (Istio, SMI) applications and non-mesh applications.
24+
25+
### 4. What are the differences between PipeCD and FluxCD?
26+
27+
- Not just Kubernetes applications, PipeCD also provides a unified interface for other cloud services (CloudRun, AWS Lamda...) and Terraform
28+
- One tool for both GitOps sync and progressive deployment
29+
- Supports multiple Git repositories
30+
- Has web UI for better visibility
31+
- Log viewer for each deployment
32+
- Visualization of application component/state in realtime
33+
- Show configuration drift in realtime
34+
- Also supports Canary and BlueGreen for non-mesh applications
35+
- Has built-in secrets management
36+
- Shows the delivery performance insights
37+
38+
### 5. What are the differences between PipeCD and ArgoCD?
39+
40+
- Not just Kubernetes applications, PipeCD also provides a unified interface for other cloud services (GCP CloudRun, AWS Lamda...) and Terraform
41+
- One tool for both GitOps sync and progressive deployment
42+
- Don't need another CRD or changing the existing manifests for doing Canary/BlueGreen. PipeCD just uses the standard Kubernetes deployment object
43+
- Easier and safer to operate multi-tenancy, multi-cluster for multiple teams (even some teams are running in a private/restricted network)
44+
- Has built-in secrets management
45+
- Shows the delivery performance insights
46+
47+
### 6. What should I do if I lost my Piped key?
48+
49+
You can create a new Piped key. Go to the `Piped` tab at `Settings` page, and click the vertical ellipsis of the Piped that you would like to create the new Piped key. Don't forget deleting the old Key, too.
50+
51+
### 7. What is the strong point if PipeCD is used only for Kubernetes?
52+
53+
- Simple interface, easy to understand no extra CRD required
54+
- Easy to install, upgrade, and manage (both the ControlPlane and the agent Piped)
55+
- Not strict depend on any Kubernetes API, not being part of issues for your Kubernetes cluster versioning upgrade
56+
- Easy to interact with any CI; Plan preview feature gives you an early look at what will be changed in your cluster even before manifests update
57+
- Insights show metrics like lead time, deployment frequency, MTTR, and change failure rate to measure delivery performance
58+
59+
### 8. Is it open source?
60+
61+
Yes, PipeCD is fully open source project with APACHE LICENSE, VERSION 2.0!!
62+
63+
### 9. How should I investigate high CPU usage or memory usage in piped, or when OOM occurs?
64+
65+
If you're noticing high CPU usage, memory usage, or facing OOM issues in Piped, you can use the built-in support for `pprof`, a tool for visualization and analysis of profiling data.
66+
`pprof` can help you identify the parts of your application that are consuming the most resources. For more detailed information and examples of how to use `pprof` in Piped, please refer to our [Using Pprof in Piped guide](../managing-piped/using-pprof-in-piped).

0 commit comments

Comments
 (0)