Skip to content
Open
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
4 changes: 4 additions & 0 deletions docs/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -167,6 +167,10 @@ no = 'Sorry to hear that. Please <a href="https://github.com/pipe-cd/pipecd/issu
githubbranch = "master"
url = "/docs-dev/"

[[params.versions]]
version = "v1.0.x"
url = "/docs-v1.0.x/"

[[params.versions]]
version = "v0.55.x"
url = "/docs-v0.55.x/"
Expand Down
8 changes: 6 additions & 2 deletions docs/content/en/_index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
The One CD for All {applications, platforms, operations}
</p>
<p class="h5 long-description">
A GitOps style continuous delivery platform that provides <br/> consistent deployment and operations experience for any applications
A GitOps style continuous delivery platform that provides <br/> consistent deployment and operations experience for any application.
</p>
</div>

Expand All @@ -24,11 +24,15 @@
<a class="btn btn-lg btn-secondary mr-3 mb-4" target="_blank" href="https://github.com/pipe-cd/pipecd">
GitHub <i class="fab fa-github ml-2 "></i>
</a>
<a class="btn btn-lg btn-primary mr-3 mb-4" href="https://pipecd.dev/docs-v1.0.x/">
Learn about PipeCD v1 <i class="fas fa-arrow-alt-circle-right ml-2"></i>
</a>

</div>

<div class="mx-auto">
<a class="release-panel" target="_blank" href="https://github.com/pipe-cd/pipecd/releases">
PipeCD <span class="bolder">{{< blocks/latest_version >}}</span> is now available
PipeCD <span class="bolder">{{< blocks/latest_version >}}</span> is now available! Check out the release notes <i class="fas fa-arrow-alt-circle-right ml-2"></i>
</a>
</div>
{{< /blocks/cover >}}
Expand Down
5 changes: 5 additions & 0 deletions docs/content/en/docs-v1.0.x/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: "Welcome to PipeCD"
linkTitle: "Documentation [v1.0.x]"
type: docs
---
75 changes: 75 additions & 0 deletions docs/content/en/docs-v1.0.x/concepts/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
---
title: "Concepts"
linkTitle: "Concepts"
weight: 2
description: >
This page describes several core concepts in PipeCD.
---

![](/images/architecture-overview.png)
<p style="text-align: center;">
Component Architecture
</p>

### Piped

`piped` is a single binary component you run as an agent in your cluster, your local network to handle the deployment tasks.
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.

### Control Plane

A centralized component managing deployment data and provides gRPC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
authentication, showing deployment list/details, application list/details, delivery insights...

### Project

A project is a logical group of applications to be managed by a group of users.
Each project can have multiple `piped` instances from different clouds or environments.

There are three types of project roles:

- **Viewer** has only permissions of viewing to deployment and application in the project.
- **Editor** has all viewer permissions, plus permissions for actions that modify state such as manually trigger/cancel the deployment.
- **Admin** has all editor permissions, plus permissions for managing project data, managing project `piped`.

### Application

A collect of resources (containers, services, infrastructure components...) and configurations that are managed together.
PipeCD supports multiple kinds of applications such as `KUBERNETES`, `TERRAFORM`, `ECS`, `CLOUDRUN`, `LAMBDA`...

### Application Configuration

A YAML file that contains information to define and configure application.
Each application requires one file at application directory stored in the Git repository.
The default file name is `app.pipecd.yaml`.

### Application Directory

A directory in Git repository containing application configuration file and application manifests.
Each application must have one application directory.

### Deployment

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.
When the deployment is success, it means the running state is being synced with the desired state specified in the target commit.

### Sync Strategy

There are 3 strategies that PipeCD supports while syncing your application state with its configuration stored in Git. Which are:
- 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.
- Pipeline Sync: sync the running application state with its Git stored configuration through a pipeline defined in its application configuration.
- Sync: depends on your defined application configuration, `piped` will decide the best way to sync your application state with its Git stored configuration.

### Platform Provider

Note: The previous name of this concept was Cloud Provider.

PipeCD supports multiple platforms and multiple kinds of applications.
Platform Provider defines which platform, cloud and where application should be deployed to.

Currently, PipeCD is supporting these five platform providers: `KUBERNETES`, `ECS`, `TERRAFORM`, `CLOUDRUN`, `LAMBDA`.

### Analysis Provider
An external product that provides metrics/logs to evaluate deployments, such as `Prometheus`, `Datadog`, `Stackdriver`, `CloudWatch` and so on.
It is mainly used in the [Automated deployment analysis](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) context.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Contributor Guide"
linkTitle: "Contributor Guide"
weight: 6
description: >
This guide is for anyone who want to contribute to PipeCD project. We are so excited to have you!
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
title: "Architectural overview"
linkTitle: "Architectural overview"
weight: 3
description: >
This page describes the architecture of PipeCD.
---

![](/images/architecture-overview.png)
<p style="text-align: center;">
Component Architecture
</p>

### Piped

A single binary component runs in your cluster, your local network to handle the deployment tasks.
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.

### Control Plane

A centralized component manages deployment data and provides gRPC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
authentication, showing deployment list/details, application list/details, delivery insights...

Control Plane contains the following components:
- `server`: a service to provide api for piped, web and serve static assets for web.
- `ops`: a service to provide administrative features for Control Plane owner like adding/managing projects.
- `cache`: a redis cache service for caching internal data.
- `datastore`: data storage for storing deployment, application data
- this can be a fully-managed service such as `Firestore`, `Cloud SQL`...
- or a self-managed such as `MySQL`
- `filestore`: file storage for storing logs, application states
- this can a fully-managed service such as `GCS`, `S3`...
- or a self-managed service such as `Minio`

For more information, see [Architecture overview of Control Plane](../../user-guide/managing-controlplane/architecture-overview/).
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
title: "Contributing"
linkTitle: "Contributing"
weight: 1
description: >
This page describes how to contribute to PipeCD.
---

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.
66 changes: 66 additions & 0 deletions docs/content/en/docs-v1.0.x/faq/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: "FAQ"
linkTitle: "FAQ"
weight: 10
description: >
List of frequently asked questions.
---

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)).

### 1. What kind of application (platform provider) will be supported?

Currently, PipeCD can be used to deploy `Kubernetes`, `ECS`, `Terraform`, `CloudRun`, `Lambda` applications.

In the near future we also want to support `Crossplane`...

### 2. What kind of templating methods for Kubernetes application will be supported?

Currently, PipeCD is supporting `Helm` and `Kustomize` as templating method for Kubernetes applications.

### 3. Istio is supported now?

Yes, you can use PipeCD for both mesh (Istio, SMI) applications and non-mesh applications.

### 4. What are the differences between PipeCD and FluxCD?

- Not just Kubernetes applications, PipeCD also provides a unified interface for other cloud services (CloudRun, AWS Lamda...) and Terraform
- One tool for both GitOps sync and progressive deployment
- Supports multiple Git repositories
- Has web UI for better visibility
- Log viewer for each deployment
- Visualization of application component/state in realtime
- Show configuration drift in realtime
- Also supports Canary and BlueGreen for non-mesh applications
- Has built-in secrets management
- Shows the delivery performance insights

### 5. What are the differences between PipeCD and ArgoCD?

- Not just Kubernetes applications, PipeCD also provides a unified interface for other cloud services (GCP CloudRun, AWS Lamda...) and Terraform
- One tool for both GitOps sync and progressive deployment
- Don't need another CRD or changing the existing manifests for doing Canary/BlueGreen. PipeCD just uses the standard Kubernetes deployment object
- Easier and safer to operate multi-tenancy, multi-cluster for multiple teams (even some teams are running in a private/restricted network)
- Has built-in secrets management
- Shows the delivery performance insights

### 6. What should I do if I lost my Piped key?

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.

### 7. What is the strong point if PipeCD is used only for Kubernetes?

- Simple interface, easy to understand no extra CRD required
- Easy to install, upgrade, and manage (both the ControlPlane and the agent Piped)
- Not strict depend on any Kubernetes API, not being part of issues for your Kubernetes cluster versioning upgrade
- 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
- Insights show metrics like lead time, deployment frequency, MTTR, and change failure rate to measure delivery performance

### 8. Is it open source?

Yes, PipeCD is fully open source project with APACHE LICENSE, VERSION 2.0!!

### 9. How should I investigate high CPU usage or memory usage in piped, or when OOM occurs?

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.
`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).
142 changes: 142 additions & 0 deletions docs/content/en/docs-v1.0.x/feature-status/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
---
title: "Feature Status"
linkTitle: "Feature Status"
weight: 8
description: >
This page lists the relative maturity of every PipeCD features.
---

Please note that the phases (Incubating, Alpha, Beta, and Stable) are applied to individual features within the project, not to the project as a whole.

## Feature Phase Definitions

| Phase | Definition |
|-|-|
|Incubating| Early in design or prototype stage. Not ready for general use.|
|Alpha|Works end to end but may be incomplete or unstable. Backward compatibility is not guaranteed.|
|Beta|Ready for production use and well documented, but may still evolve.|
|Stable|Production-proven, fully supported, and backward compatible.|

## Plugins

<!-- ### Kubernetes Plugin

| Feature | Phase |
|-|-|
| Quick sync deployment | Beta |
| Deployment with a defined pipeline (e.g. canary, analysis) | Beta |
| [Automated rollback](../user-guide/managing-application/rolling-back-a-deployment/) | Beta |
| [Automated configuration drift detection](../user-guide/managing-application/configuration-drift-detection/) | Beta |
| [Application live state](../user-guide/managing-application/application-live-state/) | Beta |
| Prune resources | Alpha |
| Support Helm | Beta |
| Support Kustomize | Beta |
| Support Istio service mesh | Beta |
| Support SMI service mesh | Incubating |
| [Plan preview](../user-guide/plan-preview) | Beta |
| [Manifest attachment](../user-guide/managing-application/manifest-attachment) | Alpha |

### Terraform Plugin

| Feature | Phase |
|-|-|
| Quick sync deployment | Beta |
| Deployment with a defined pipeline (e.g. manual-approval) | Beta |
| [Automated rollback](../user-guide/managing-application/rolling-back-a-deployment/) | Beta |
| [Automated configuration drift detection](../user-guide/managing-application/configuration-drift-detection/) | Alpha |
| [Application live state](../user-guide/managing-application/application-live-state/) | Incubating |
| Prune resources | Incubating |
| [Plan preview](../user-guide/plan-preview) | Beta |
| [Manifest attachment](../user-guide/managing-application/manifest-attachment) | Alpha |

### Cloud Run Plugin

| Feature | Phase |
|-|-|
| Quick sync deployment | Beta |
| Deployment with a defined pipeline (e.g. canary, analysis) | Beta |
| [Automated rollback](../user-guide/managing-application/rolling-back-a-deployment/) | Beta |
| [Automated configuration drift detection](../user-guide/managing-application/configuration-drift-detection/) | Beta |
| [Application live state](../user-guide/managing-application/application-live-state/) | Beta |
| Prune resources | Incubating |
| [Plan preview](../user-guide/plan-preview) | Beta |
| [Manifest attachment](../user-guide/managing-application/manifest-attachment) | Alpha |

Note: These are statuses for Cloud Run service. Cloud Run job has not been supported yet.

### Lambda Plugin

| Feature | Phase |
|-|-|
| Quick sync deployment | Beta |
| Deployment with a defined pipeline (e.g. canary, analysis) | Beta |
| [Automated rollback](../user-guide/managing-application/rolling-back-a-deployment/) | Beta |
| [Automated configuration drift detection](../user-guide/managing-application/configuration-drift-detection/) | Alpha |
| [Application live state](../user-guide/managing-application/application-live-state/) | Alpha |
| Prune resources | Incubating |
| [Plan preview](../user-guide/plan-preview) | Alpha |
| [Manifest attachment](../user-guide/managing-application/manifest-attachment) | Alpha |

### Amazon ECS Plugin

| Feature | Phase |
|-|-|
| Quick sync deployment | Beta |
| Deployment with a defined pipeline (e.g. canary, analysis) | Beta |
| [Automated rollback](../user-guide/managing-application/rolling-back-a-deployment/) | Beta |
| [Automated configuration drift detection](../user-guide/managing-application/configuration-drift-detection/) | Alpha *1 |
| [Application live state](../user-guide/managing-application/application-live-state/) | Alpha *1 |
| Quick sync deployment for [ECS Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html) | Alpha |
| Deployment with a defined pipeline for [ECS Service Discovery](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-discovery.html) | Alpha |
| Prune resources | Incubating |
| [Plan preview](../user-guide/plan-preview) | Alpha |
| [Manifest attachment](../user-guide/managing-application/manifest-attachment) | Alpha |

*1. Not supported yet for standalone tasks. -->

## Piped

| Feature | Phase |
|-|-|
| [Deployment wait stage](../user-guide/managing-application/customizing-deployment/adding-a-wait-stage/) | Beta |
| [Deployment manual approval stage](../user-guide/managing-application/customizing-deployment/adding-a-manual-approval/) | Beta |
| [Notification](../user-guide/managing-piped/configuring-notifications/) to Slack | Beta |
| [Notification](../user-guide/managing-piped/configuring-notifications/) to external service via webhook | Beta |
| [Secrets management](../user-guide/managing-application/secret-management/) - Storing secrets safely in the Git repository | Beta |
| [Event watcher](../user-guide/event-watcher/) - Updating files in Git automatically for given events | Beta |
| [Pipectl](../user-guide/command-line-tool/) - Command-line tool for interacting with Control Plane | Beta |
| Deployment plugin - Allow executing user-created deployment plugin | Incubating |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) (Automated Deployment Analysis) by Prometheus metrics | Beta |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by Datadog metrics | Beta |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by Stackdriver metrics | Incubating |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by Stackdriver log | Incubating |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by CloudWatch metrics | Incubating |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by CloudWatch log | Incubating |
| [ADA](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) by HTTP request (smoke test...) | Incubating |
| [Remote upgrade](../user-guide/managing-piped/remote-upgrade-remote-config/#remote-upgrade) - Ability to upgrade Piped from the web console | Beta |
| [Remote config](../user-guide/managing-piped/remote-upgrade-remote-config/#remote-config) - Watch and reload configuration from a remote location such as Git | Beta |

## Control Plane

| Feature | Phase |
|-|-|
| Project/Piped/Application/Deployment management | Beta |
| Rendering deployment pipeline in realtime | Beta |
| Canceling a deployment from console | Beta |
| Triggering a deployment manually from console | Beta |
| RBAC on PipeCD resources such as Application, Piped... | Beta |
| Authentication by username/password for static admin | Beta |
| GitHub & GitHub Enterprise Server SSO | Beta |
| Support GCP [Firestore](https://cloud.google.com/firestore) as data store | Beta |
| Support [MySQL v8.0](https://www.mysql.com/) as data store | Beta |
| Support file store as data store | Alpha - Deprecated (remove soon) |
| Support GCP [GCS](https://cloud.google.com/storage) as file store | Beta |
| Support AWS [S3](https://aws.amazon.com/s3/) as file store | Beta |
| Support [Minio](https://github.com/minio/minio) as file store | Beta |
| [Insights](../user-guide/insights/) - Show the delivery performance of a team or an application | Beta |
| [Deployment Chain](../user-guide/managing-application/deployment-chain/) - Allow rolling out to multiple clusters gradually or promoting across environments | Alpha |
| [Metrics](../user-guide/managing-controlplane/metrics/) - Dashboards for PipeCD and Piped metrics | Beta |

## Pipectl

Check [pipectl](../user-guide/command-line-tool/) docs for available commands.
Loading