From 7d99d3e444e31b9079ba09ee45722094876c13ca Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Mon, 13 Oct 2025 11:06:10 +0530 Subject: [PATCH 1/9] docs-v1/init commit Signed-off-by: Eeshaan Sawant --- docs/config.toml | 4 + docs/content/en/_index.html | 4 + docs/content/en/docs-v1.0.x/_index.md | 5 + .../content/en/docs-v1.0.x/concepts/_index.md | 75 +++++++++ .../contribution-guidelines/_index.md | 7 + .../architectural-overview.md | 36 +++++ .../contribution-guidelines/contributing.md | 9 ++ docs/content/en/docs-v1.0.x/faq/_index.md | 66 ++++++++ .../en/docs-v1.0.x/feature-status/_index.md | 142 ++++++++++++++++++ .../migrating-from-v0-to-v1/_index.md | 132 ++++++++++++++++ .../content/en/docs-v1.0.x/overview/_index.md | 78 ++++++++++ .../en/docs-v1.0.x/quickstart/_index.md | 122 +++++++++++++++ .../content/en/docs-v1.0.x/releases/_index.md | 6 + docs/layouts/docs-v1.0.x/baseof.html | 32 ++++ docs/layouts/docs-v1.0.x/baseof.print.html | 26 ++++ docs/layouts/docs-v1.0.x/list.html | 32 ++++ docs/layouts/docs-v1.0.x/list.print.html | 3 + docs/layouts/docs-v1.0.x/single.html | 3 + 18 files changed, 782 insertions(+) create mode 100755 docs/content/en/docs-v1.0.x/_index.md create mode 100644 docs/content/en/docs-v1.0.x/concepts/_index.md create mode 100755 docs/content/en/docs-v1.0.x/contribution-guidelines/_index.md create mode 100644 docs/content/en/docs-v1.0.x/contribution-guidelines/architectural-overview.md create mode 100644 docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md create mode 100644 docs/content/en/docs-v1.0.x/faq/_index.md create mode 100644 docs/content/en/docs-v1.0.x/feature-status/_index.md create mode 100644 docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md create mode 100644 docs/content/en/docs-v1.0.x/overview/_index.md create mode 100644 docs/content/en/docs-v1.0.x/quickstart/_index.md create mode 100644 docs/content/en/docs-v1.0.x/releases/_index.md create mode 100644 docs/layouts/docs-v1.0.x/baseof.html create mode 100644 docs/layouts/docs-v1.0.x/baseof.print.html create mode 100644 docs/layouts/docs-v1.0.x/list.html create mode 100644 docs/layouts/docs-v1.0.x/list.print.html create mode 100644 docs/layouts/docs-v1.0.x/single.html diff --git a/docs/config.toml b/docs/config.toml index f0f704f7ca..f6cb32535d 100644 --- a/docs/config.toml +++ b/docs/config.toml @@ -167,6 +167,10 @@ no = 'Sorry to hear that. Please GitHub + + PipeCD v1 + +
diff --git a/docs/content/en/docs-v1.0.x/_index.md b/docs/content/en/docs-v1.0.x/_index.md new file mode 100755 index 0000000000..85ec8676d0 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/_index.md @@ -0,0 +1,5 @@ +--- +title: "Welcome to PipeCD" +linkTitle: "Documentation [v1.0.x]" +type: docs +--- diff --git a/docs/content/en/docs-v1.0.x/concepts/_index.md b/docs/content/en/docs-v1.0.x/concepts/_index.md new file mode 100644 index 0000000000..2501c19c7c --- /dev/null +++ b/docs/content/en/docs-v1.0.x/concepts/_index.md @@ -0,0 +1,75 @@ +--- +title: "Concepts" +linkTitle: "Concepts" +weight: 2 +description: > + This page describes several core concepts in PipeCD. +--- + +![](/images/architecture-overview.png) +

+Component Architecture +

+ +### 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. diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/_index.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/_index.md new file mode 100755 index 0000000000..b47753d9aa --- /dev/null +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/_index.md @@ -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! +--- diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/architectural-overview.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/architectural-overview.md new file mode 100644 index 0000000000..c7569db0f4 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/architectural-overview.md @@ -0,0 +1,36 @@ +--- +title: "Architectural overview" +linkTitle: "Architectural overview" +weight: 3 +description: > + This page describes the architecture of PipeCD. +--- + +![](/images/architecture-overview.png) +

+Component Architecture +

+ +### 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/). diff --git a/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md new file mode 100644 index 0000000000..87eb1a51c0 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/contribution-guidelines/contributing.md @@ -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. \ No newline at end of file diff --git a/docs/content/en/docs-v1.0.x/faq/_index.md b/docs/content/en/docs-v1.0.x/faq/_index.md new file mode 100644 index 0000000000..010be73068 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/faq/_index.md @@ -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). diff --git a/docs/content/en/docs-v1.0.x/feature-status/_index.md b/docs/content/en/docs-v1.0.x/feature-status/_index.md new file mode 100644 index 0000000000..b236cc65ae --- /dev/null +++ b/docs/content/en/docs-v1.0.x/feature-status/_index.md @@ -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 | Under planning/developing the prototype and still not ready to be used. | +| Alpha | Demo-able, works end-to-end but has limitations. No guarantees on backward compatibility. | +| Beta | **Usable in production**. Documented. | +| Stable | Production hardened. Backward compatibility. Documented. | + +## Provider + +### Kubernetes + +| 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 + +| 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 + +| 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 + +| 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 + +| 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 Agent + +| 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. diff --git a/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md b/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md new file mode 100644 index 0000000000..2f85cb5dc0 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md @@ -0,0 +1,132 @@ +--- +title: "Mirgrating from v0 to v1" +linkTitle: "Mirgrating from v0 to v1" +weight: 9 +description: > + Documentation on migrating PipeCD v0 deployments to PipeCD v1 +--- + +This page explains how to migrate your existing PipeCD system to **piped v1**, the new plugin-based architecture that brings modularity and extensibility to PipeCD. + +## Overview + +PipeCD v1 (internally referred to as *pipedv1*) introduces a **pluggable architecture** that allows developers to add and maintain custom deployment and operational plugins without modifying the core system of PipeCD. + +Migration from v0 is designed to be **safe** and **incremental**, allowing you to switch between piped and pipedv1 during the process with minimal disruption. + +## Components + +| Component | Description | Compatibility | +|------------|--------------|----------------| +| **Control Plane** | Manages projects, deployments, and applications. | Supports both piped and pipedv1 concurrently. | +| **Piped** | Manages the actual deployment and syncing of applications. | Backward compatible - You can switch between versions safely. | + +--- + +## Prerequisites + +Before you start, ensure that: + +- You are running PipeCD **v0.54.0-rc1 or later**. +- You have the **latest Control Plane** installed. +- You have **pipectl v0.54.0-rc1 or later**. +- You have access to your Control Plane with **API write permissions**. + +> **Note:** If you’re new to the plugin architecture, read: +> - [Overview of the plan for plugin-enabled PipeCD](https://pipecd.dev/blog/2024/11/28/overview-of-the-plan-for-pluginnable-pipecd/) +> - [What’s new in pipedv1](https://pipecd.dev/blog/2025/09/02/what-is-new-in-pipedv1-plugin-arch-piped/) + +--- + +## Migration Process Overview + +The migration flow involves the following steps: + +1. Update `piped` and `pipectl` binaries. +2. Convert application configurations to the v1 format. +3. Update the application model in the Control Plane database. +4. Update piped configuration for v1 (plugins). +5. Deploy and verify pipedv1. +6. Optionally, switch back to the old piped. + +--- + +## 1. Update piped and pipectl + +Install or upgrade to `piped` and `pipectl` **v0.54.0-rc1 or newer**: + +```bash +# Example for upgrading pipectl +curl -Lo ./pipectl https://github.com/pipe-cd/pipecd/releases/download/v0.54.0-rc1/pipectl__ +chmod +x ./pipectl +mv ./pipectl /usr/local/bin/ + + + + + +## What Is PipeCD? + +{{% pageinfo %}} +PipeCD provides a unified continuous delivery solution for multiple application kinds on multi-cloud that empowers engineers to deploy faster with more confidence, a GitOps tool that enables doing deployment operations by pull request on Git. +{{% /pageinfo %}} + +## Why PipeCD? + +- Simple, unified and easy to use but powerful pipeline definition to construct your deployment +- Same deployment interface to deploy applications of any platform, including Kubernetes, Terraform, GCP Cloud Run, AWS Lambda, AWS ECS +- No CRD or applications' manifest changes are required; Only need a pipeline definition along with your application manifests +- No deployment credentials are exposed or required outside the application cluster +- Built-in deployment analysis as part of the deployment pipeline to measure impact based on metrics, logs, emitted requests +- Easy to interact with any CI; The CI tests and builds artifacts, PipeCD takes the rest +- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance +- Designed to manage thousands of cross-platform applications in multi-cloud for company scale but also work well for small projects + +## PipeCD's Characteristics in detail + +**Visibility** +- Deployment pipeline UI shows clarify what is happening +- Separate logs viewer for each individual deployment +- Realtime visualization of application state +- Deployment notifications to slack, webhook endpoints +- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance + +**Automation** +- Automated deployment analysis to measure deployment impact based on metrics, logs, emitted requests +- Automatically roll back to the previous state as soon as analysis or a pipeline stage fails +- Automatically detect configuration drift to notify and render the changes +- Automatically trigger a new deployment when a defined event has occurred (e.g. container image pushed, helm chart published, etc) + +**Safety and Security** +- Support single sign-on and role-based access control +- Credentials are not exposed outside the cluster and not saved in the Control Plane +- Piped makes only outbound requests and can run inside a restricted network +- Built-in secrets management + +**Multi-provider & Multi-Tenancy** +- Support multiple application kinds on multi-cloud including Kubernetes, Terraform, Cloud Run, AWS Lambda, Amazon ECS +- Support multiple analysis providers including Prometheus, Datadog, Stackdriver, and more +- Easy to operate multi-cluster, multi-tenancy by separating Control Plane and Piped + +**Open Source** + +- Released as an Open Source project +- Under APACHE 2.0 license, see [LICENSE](https://github.com/pipe-cd/pipecd/blob/master/LICENSE) + +## Where should I go next? + +For a good understanding of the PipeCD's components. +- [Concepts](../concepts): describes each components. +- [FAQ](../faq): describes the difference between PipeCD and other tools. + +If you are an **operator** wanting to install and configure PipeCD for other developers. +- [Quickstart](../quickstart/) +- [Managing Control Plane](../user-guide/managing-controlplane/) +- [Managing Piped](../user-guide/managing-piped/) + +If you are a **user** using PipeCD to deploy your application/infrastructure: +- [User Guide](../user-guide/) +- [Examples](../user-guide/examples) + +If you want to be a **contributor**: +- [Contributor Guide](../contribution-guidelines/) diff --git a/docs/content/en/docs-v1.0.x/overview/_index.md b/docs/content/en/docs-v1.0.x/overview/_index.md new file mode 100644 index 0000000000..9fbaf09e67 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/overview/_index.md @@ -0,0 +1,78 @@ +--- +title: "Overview" +linkTitle: "Overview" +weight: 1 +description: > + Overview about PipeCD. +--- + +![](/images/pipecd-explanation.png) +

+PipeCD - a GitOps style continuous delivery solution +

+ +## What Is PipeCD? + +{{% pageinfo %}} +PipeCD provides a unified continuous delivery solution for multiple application kinds on multi-cloud that empowers engineers to deploy faster with more confidence, a GitOps tool that enables doing deployment operations by pull request on Git. +{{% /pageinfo %}} + +## Why PipeCD? + +- Simple, unified and easy to use but powerful pipeline definition to construct your deployment +- Same deployment interface to deploy applications of any platform, including Kubernetes, Terraform, GCP Cloud Run, AWS Lambda, AWS ECS +- No CRD or applications' manifest changes are required; Only need a pipeline definition along with your application manifests +- No deployment credentials are exposed or required outside the application cluster +- Built-in deployment analysis as part of the deployment pipeline to measure impact based on metrics, logs, emitted requests +- Easy to interact with any CI; The CI tests and builds artifacts, PipeCD takes the rest +- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance +- Designed to manage thousands of cross-platform applications in multi-cloud for company scale but also work well for small projects + +## PipeCD's Characteristics in detail + +**Visibility** +- Deployment pipeline UI shows clarify what is happening +- Separate logs viewer for each individual deployment +- Realtime visualization of application state +- Deployment notifications to slack, webhook endpoints +- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance + +**Automation** +- Automated deployment analysis to measure deployment impact based on metrics, logs, emitted requests +- Automatically roll back to the previous state as soon as analysis or a pipeline stage fails +- Automatically detect configuration drift to notify and render the changes +- Automatically trigger a new deployment when a defined event has occurred (e.g. container image pushed, helm chart published, etc) + +**Safety and Security** +- Support single sign-on and role-based access control +- Credentials are not exposed outside the cluster and not saved in the Control Plane +- Piped makes only outbound requests and can run inside a restricted network +- Built-in secrets management + +**Multi-provider & Multi-Tenancy** +- Support multiple application kinds on multi-cloud including Kubernetes, Terraform, Cloud Run, AWS Lambda, Amazon ECS +- Support multiple analysis providers including Prometheus, Datadog, Stackdriver, and more +- Easy to operate multi-cluster, multi-tenancy by separating Control Plane and Piped + +**Open Source** + +- Released as an Open Source project +- Under APACHE 2.0 license, see [LICENSE](https://github.com/pipe-cd/pipecd/blob/master/LICENSE) + +## Where should I go next? + +For a good understanding of the PipeCD's components. +- [Concepts](../concepts): describes each components. +- [FAQ](../faq): describes the difference between PipeCD and other tools. + +If you are an **operator** wanting to install and configure PipeCD for other developers. +- [Quickstart](../quickstart/) +- [Managing Control Plane](../user-guide/managing-controlplane/) +- [Managing Piped](../user-guide/managing-piped/) + +If you are a **user** using PipeCD to deploy your application/infrastructure: +- [User Guide](../user-guide/) +- [Examples](../user-guide/examples) + +If you want to be a **contributor**: +- [Contributor Guide](../contribution-guidelines/) diff --git a/docs/content/en/docs-v1.0.x/quickstart/_index.md b/docs/content/en/docs-v1.0.x/quickstart/_index.md new file mode 100644 index 0000000000..f3b03c0765 --- /dev/null +++ b/docs/content/en/docs-v1.0.x/quickstart/_index.md @@ -0,0 +1,122 @@ +--- +title: "Quickstart" +linkTitle: "Quickstart" +weight: 3 +description: > + This page describes how to quickly get started with PipeCD on Kubernetes. +--- + +PipeCD is constructed by two components: the Control plane and the piped (agent) (ref: [PipeCD concepts](../concepts/)). The control plane can be thought of as a regular web service application that can be installed anywhere, while the piped agent is a single binary that can run as a pod in a Kubernetes cluster, a container on ECS, a serverless function like Lambda, Cloud Run, or a process running directly on your local machine. + +This page is a guideline for installing PipeCD (both two components) into your Kubernetes cluster and deploying a "hello world" application to that same Kubernetes cluster. + +Note: + +- It's not required to install the PipeCD control plane to the cluster where your applications are running. Please read this [blog post](/blog/2021/12/29/pipecd-best-practice-01-operate-your-own-pipecd-cluster/) to understand more about PipeCD in real life use cases. +- If you want to experiment with PipeCD freely or don't have a Kubernetes cluster, we recommend [this Tutorial](https://github.com/pipe-cd/tutorial). + +### Prerequisites +- Having a Kubernetes cluster and connect to it via [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). + +### 1. Installing PipeCD in quickstart mode + +Across the [PipeCD concepts](/docs/concepts/), PipeCD platform is constructed by 2 components: Control Plane and Piped (the agent). + +#### 1.1. Installing PipeCD Control Plane + +```console +$ kubectl create namespace pipecd +$ kubectl apply -n pipecd -f https://raw.githubusercontent.com/pipe-cd/pipecd/master/quickstart/manifests/control-plane.yaml +``` + +The PipeCD control plane will be installed with a default project named `quickstart`. To access the PipeCD Control Plane UI, run the following command + +```console +$ kubectl port-forward -n pipecd svc/pipecd 8080 +``` + +You can access the PipeCD console at [http://localhost:8080?project=quickstart](http://localhost:8080?project=quickstart) + +To login, you can use the configured static admin account as below: +- username: `hello-pipecd` +- password: `hello-pipecd` + +And you will access the main page of PipeCD Control Plane console, which looks like this + +![](/images/pipecd-control-plane-mainpage.png) + +For more about PipeCD control plane management, please check [Managing ControlPlane](/docs/user-guide/managing-controlplane/). + +#### 1.2. Installing Piped + +Next, in order to perform CD tasks, you need to install a Piped agent to the cluster. + +From your logged in tab, navigate to the PipeCD setting page at [http://localhost:8080/settings/piped?project=quickstart](http://localhost:8080/settings/piped?project=quickstart). + +You will find the `+ADD` button around the top left of this page, click there and insert information to register the Piped agent (for example, `dev`). + +![](/images/quickstart-adding-piped.png) + +Click on the `Save` button, and then you can see the piped-id and secret-key. + +![](/images/quickstart-piped-registered.png) + +You need to copy two values, `Piped Id` and `Base64 Encoded Piped Key`, and fill in `` and `` respectively this below command + +```console +$ curl -s https://raw.githubusercontent.com/pipe-cd/pipecd/master/quickstart/manifests/piped.yaml | \ + sed -e 's///g' \ + -e 's///g' | \ + kubectl apply -n pipecd -f - +``` + +For more about Piped management, please check [Managing Piped](/docs/user-guide/managing-piped/). + +That's all! You are ready to use PipeCD to manage your application's deployment. + +You can check the readiness of all PipeCD components via command + +```console +$ kubectl get pod -n pipecd +NAME READY STATUS RESTARTS AGE +pipecd-cache-56c7c65ddc-xqcst 1/1 Running 0 38m +pipecd-gateway-58589b55f9-9nbrv 1/1 Running 0 38m +pipecd-minio-677999d5bb-xnb78 1/1 Running 0 38m +pipecd-mysql-6fff49fbc7-hkvt4 1/1 Running 0 38m +pipecd-ops-779d6844db-nvbwn 1/1 Running 0 38m +pipecd-server-5769df7fcb-9hc45 1/1 Running 1 (38m ago) 38m +piped-8477b5d55d-74s5v 1/1 Running 0 97s +``` + +### 2. Deploy a Kubernetes application with PipeCD + +Above is all that is necessary to set up your own PipeCD (both control plane and agent), let's use the installed one to deploy your first Kubernetes application with PipeCD. + +Navigate to the `Applications` page, click on the `+ADD` button on the top left corner. + +Go to the `ADD FROM SUGGESTIONS` tab, then select: +- Piped that you have just registered (e.g. `dev`) +- PlatformProvider: `kubernetes-default` + +You should see a lot of suggested applications. Select one of listed applications and click the `SAVE` button to register. + +![](/images/quickstart-adding-application-from-suggestions.png) + +After a bit, the first deployment is complete and will automatically sync the application to the state specified in the current Git commit. + +![](/images/quickstart-first-deployment.png) + +For more about manage applications' deployment with PipeCD, referrence to [Managing application](/docs/user-guide/managing-application/) + +### 3. Cleanup +When you’re finished experimenting with PipeCD quickstart mode, you can uninstall it using: + +``` console +$ kubectl delete ns pipecd +``` + +### What's next? + +To prepare your PipeCD for a production environment, please visit the [Installation](../installation/) guideline. For guidelines to use PipeCD to deploy your application in daily usage, please visit the [User guide](../user-guide/) docs. + +To set up the development environment and start contributing to PipeCD, please visit the [Contributor guide](../contribution-guidelines/) docs. diff --git a/docs/content/en/docs-v1.0.x/releases/_index.md b/docs/content/en/docs-v1.0.x/releases/_index.md new file mode 100644 index 0000000000..25ac023e4b --- /dev/null +++ b/docs/content/en/docs-v1.0.x/releases/_index.md @@ -0,0 +1,6 @@ +--- +title: "Releases ⧉" +manualLink: "https://github.com/pipe-cd/pipecd/releases" +manualLinkTarget: "_blank" +weight: 99 +--- \ No newline at end of file diff --git a/docs/layouts/docs-v1.0.x/baseof.html b/docs/layouts/docs-v1.0.x/baseof.html new file mode 100644 index 0000000000..20af4e6526 --- /dev/null +++ b/docs/layouts/docs-v1.0.x/baseof.html @@ -0,0 +1,32 @@ + + + + {{ partial "head.html" . }} + + +
+ {{ partial "navbar.html" . }} +
+
+
+
+ + +
+ {{ partial "version-banner.html" . }} + {{ if not .Site.Params.ui.breadcrumb_disable }}{{ partial "breadcrumb.html" . }}{{ end }} + {{ block "main" . }}{{ end }} +
+
+
+ {{ partial "footer.html" . }} +
+ {{ partial "scripts.html" . }} + + \ No newline at end of file diff --git a/docs/layouts/docs-v1.0.x/baseof.print.html b/docs/layouts/docs-v1.0.x/baseof.print.html new file mode 100644 index 0000000000..d37e99012b --- /dev/null +++ b/docs/layouts/docs-v1.0.x/baseof.print.html @@ -0,0 +1,26 @@ + + + + {{ partial "head.html" . }} + + +
+ {{ partial "navbar.html" . }} +
+
+
+
+
+
+
+
+
+ {{ block "main" . }}{{ end }} +
+
+
+ {{ partial "footer.html" . }} +
+ {{ partial "scripts.html" . }} + + diff --git a/docs/layouts/docs-v1.0.x/list.html b/docs/layouts/docs-v1.0.x/list.html new file mode 100644 index 0000000000..8b0e6cd91e --- /dev/null +++ b/docs/layouts/docs-v1.0.x/list.html @@ -0,0 +1,32 @@ +{{ define "main" }} +
+

{{ .Title }}

+ {{ with .Params.description }}
{{ . | markdownify }}
{{ end }} + + {{ .Content }} + {{ partial "section-index.html" . }} + {{ if (and (not .Params.hide_feedback) (.Site.Params.ui.feedback.enable) (site.Config.Services.GoogleAnalytics.ID)) }} + {{ partial "feedback.html" .Site.Params.ui.feedback }} +
+ {{ end }} + {{ if (site.Config.Services.Disqus.Shortname) }} +
+ {{ partial "disqus-comment.html" . }} + {{ end }} + {{ partial "page-meta-lastmod.html" . }} +
+{{ end }} diff --git a/docs/layouts/docs-v1.0.x/list.print.html b/docs/layouts/docs-v1.0.x/list.print.html new file mode 100644 index 0000000000..1b04015886 --- /dev/null +++ b/docs/layouts/docs-v1.0.x/list.print.html @@ -0,0 +1,3 @@ +{{ define "main" }} +{{ partial "print/render" . }} +{{ end }} diff --git a/docs/layouts/docs-v1.0.x/single.html b/docs/layouts/docs-v1.0.x/single.html new file mode 100644 index 0000000000..00cb3ab911 --- /dev/null +++ b/docs/layouts/docs-v1.0.x/single.html @@ -0,0 +1,3 @@ +{{ define "main" }} +{{ .Render "content" }} +{{ end }} \ No newline at end of file From a86b4a0d599e55058320013013973413ff87337c Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Wed, 15 Oct 2025 14:22:23 +0530 Subject: [PATCH 2/9] dovs-v1/ rm feature-stat and user-guide Signed-off-by: Eeshaan Sawant --- .../en/docs-v1.0.x/feature-status/_index.md | 142 ------------------ .../en/docs-v1.0.x/quickstart/_index.md | 122 --------------- 2 files changed, 264 deletions(-) delete mode 100644 docs/content/en/docs-v1.0.x/feature-status/_index.md delete mode 100644 docs/content/en/docs-v1.0.x/quickstart/_index.md diff --git a/docs/content/en/docs-v1.0.x/feature-status/_index.md b/docs/content/en/docs-v1.0.x/feature-status/_index.md deleted file mode 100644 index b236cc65ae..0000000000 --- a/docs/content/en/docs-v1.0.x/feature-status/_index.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -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 | Under planning/developing the prototype and still not ready to be used. | -| Alpha | Demo-able, works end-to-end but has limitations. No guarantees on backward compatibility. | -| Beta | **Usable in production**. Documented. | -| Stable | Production hardened. Backward compatibility. Documented. | - -## Provider - -### Kubernetes - -| 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 - -| 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 - -| 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 - -| 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 - -| 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 Agent - -| 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. diff --git a/docs/content/en/docs-v1.0.x/quickstart/_index.md b/docs/content/en/docs-v1.0.x/quickstart/_index.md deleted file mode 100644 index f3b03c0765..0000000000 --- a/docs/content/en/docs-v1.0.x/quickstart/_index.md +++ /dev/null @@ -1,122 +0,0 @@ ---- -title: "Quickstart" -linkTitle: "Quickstart" -weight: 3 -description: > - This page describes how to quickly get started with PipeCD on Kubernetes. ---- - -PipeCD is constructed by two components: the Control plane and the piped (agent) (ref: [PipeCD concepts](../concepts/)). The control plane can be thought of as a regular web service application that can be installed anywhere, while the piped agent is a single binary that can run as a pod in a Kubernetes cluster, a container on ECS, a serverless function like Lambda, Cloud Run, or a process running directly on your local machine. - -This page is a guideline for installing PipeCD (both two components) into your Kubernetes cluster and deploying a "hello world" application to that same Kubernetes cluster. - -Note: - -- It's not required to install the PipeCD control plane to the cluster where your applications are running. Please read this [blog post](/blog/2021/12/29/pipecd-best-practice-01-operate-your-own-pipecd-cluster/) to understand more about PipeCD in real life use cases. -- If you want to experiment with PipeCD freely or don't have a Kubernetes cluster, we recommend [this Tutorial](https://github.com/pipe-cd/tutorial). - -### Prerequisites -- Having a Kubernetes cluster and connect to it via [kubectl](https://kubernetes.io/docs/tasks/tools/install-kubectl/). - -### 1. Installing PipeCD in quickstart mode - -Across the [PipeCD concepts](/docs/concepts/), PipeCD platform is constructed by 2 components: Control Plane and Piped (the agent). - -#### 1.1. Installing PipeCD Control Plane - -```console -$ kubectl create namespace pipecd -$ kubectl apply -n pipecd -f https://raw.githubusercontent.com/pipe-cd/pipecd/master/quickstart/manifests/control-plane.yaml -``` - -The PipeCD control plane will be installed with a default project named `quickstart`. To access the PipeCD Control Plane UI, run the following command - -```console -$ kubectl port-forward -n pipecd svc/pipecd 8080 -``` - -You can access the PipeCD console at [http://localhost:8080?project=quickstart](http://localhost:8080?project=quickstart) - -To login, you can use the configured static admin account as below: -- username: `hello-pipecd` -- password: `hello-pipecd` - -And you will access the main page of PipeCD Control Plane console, which looks like this - -![](/images/pipecd-control-plane-mainpage.png) - -For more about PipeCD control plane management, please check [Managing ControlPlane](/docs/user-guide/managing-controlplane/). - -#### 1.2. Installing Piped - -Next, in order to perform CD tasks, you need to install a Piped agent to the cluster. - -From your logged in tab, navigate to the PipeCD setting page at [http://localhost:8080/settings/piped?project=quickstart](http://localhost:8080/settings/piped?project=quickstart). - -You will find the `+ADD` button around the top left of this page, click there and insert information to register the Piped agent (for example, `dev`). - -![](/images/quickstart-adding-piped.png) - -Click on the `Save` button, and then you can see the piped-id and secret-key. - -![](/images/quickstart-piped-registered.png) - -You need to copy two values, `Piped Id` and `Base64 Encoded Piped Key`, and fill in `` and `` respectively this below command - -```console -$ curl -s https://raw.githubusercontent.com/pipe-cd/pipecd/master/quickstart/manifests/piped.yaml | \ - sed -e 's///g' \ - -e 's///g' | \ - kubectl apply -n pipecd -f - -``` - -For more about Piped management, please check [Managing Piped](/docs/user-guide/managing-piped/). - -That's all! You are ready to use PipeCD to manage your application's deployment. - -You can check the readiness of all PipeCD components via command - -```console -$ kubectl get pod -n pipecd -NAME READY STATUS RESTARTS AGE -pipecd-cache-56c7c65ddc-xqcst 1/1 Running 0 38m -pipecd-gateway-58589b55f9-9nbrv 1/1 Running 0 38m -pipecd-minio-677999d5bb-xnb78 1/1 Running 0 38m -pipecd-mysql-6fff49fbc7-hkvt4 1/1 Running 0 38m -pipecd-ops-779d6844db-nvbwn 1/1 Running 0 38m -pipecd-server-5769df7fcb-9hc45 1/1 Running 1 (38m ago) 38m -piped-8477b5d55d-74s5v 1/1 Running 0 97s -``` - -### 2. Deploy a Kubernetes application with PipeCD - -Above is all that is necessary to set up your own PipeCD (both control plane and agent), let's use the installed one to deploy your first Kubernetes application with PipeCD. - -Navigate to the `Applications` page, click on the `+ADD` button on the top left corner. - -Go to the `ADD FROM SUGGESTIONS` tab, then select: -- Piped that you have just registered (e.g. `dev`) -- PlatformProvider: `kubernetes-default` - -You should see a lot of suggested applications. Select one of listed applications and click the `SAVE` button to register. - -![](/images/quickstart-adding-application-from-suggestions.png) - -After a bit, the first deployment is complete and will automatically sync the application to the state specified in the current Git commit. - -![](/images/quickstart-first-deployment.png) - -For more about manage applications' deployment with PipeCD, referrence to [Managing application](/docs/user-guide/managing-application/) - -### 3. Cleanup -When you’re finished experimenting with PipeCD quickstart mode, you can uninstall it using: - -``` console -$ kubectl delete ns pipecd -``` - -### What's next? - -To prepare your PipeCD for a production environment, please visit the [Installation](../installation/) guideline. For guidelines to use PipeCD to deploy your application in daily usage, please visit the [User guide](../user-guide/) docs. - -To set up the development environment and start contributing to PipeCD, please visit the [Contributor guide](../contribution-guidelines/) docs. From 506a65ec82fa037da308ee140e6266d01150e108 Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Wed, 15 Oct 2025 14:22:48 +0530 Subject: [PATCH 3/9] docs-v1/ add migrate doc Signed-off-by: Eeshaan Sawant --- .../migrating-from-v0-to-v1/_index.md | 313 ++++++++++++++---- 1 file changed, 242 insertions(+), 71 deletions(-) diff --git a/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md b/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md index 2f85cb5dc0..2e1d92acc3 100644 --- a/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md +++ b/docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md @@ -1,25 +1,29 @@ --- -title: "Mirgrating from v0 to v1" -linkTitle: "Mirgrating from v0 to v1" -weight: 9 +title: "Migrate to PipeCD V1" +linkTitle: "Migrate to PipeCD V1" +weight: 90 description: > - Documentation on migrating PipeCD v0 deployments to PipeCD v1 + Documentation on migrating your application from PipeCD V0 to V1 --- -This page explains how to migrate your existing PipeCD system to **piped v1**, the new plugin-based architecture that brings modularity and extensibility to PipeCD. +This page explains how to safely migrate your existing PipeCD System to the RC version of **PipeCD V1**, the new plugin-based architecture that brings modularity and extensibility to PipeCD. + +Incase you are using PipeCD V0, follow the setps on this page to migrate to **PipeCD V1**. ## Overview -PipeCD v1 (internally referred to as *pipedv1*) introduces a **pluggable architecture** that allows developers to add and maintain custom deployment and operational plugins without modifying the core system of PipeCD. +PipeCD V1 introduces a **pluggable architecture** that allows developers to add and maintain custom deployment and operational plugins without modifying the core system of PipeCD. -Migration from v0 is designed to be **safe** and **incremental**, allowing you to switch between piped and pipedv1 during the process with minimal disruption. +Migration from v0 is designed to be **safe** and **incremental**, allowing you to switch to PipeCD V1 with minimal disruption. ## Components +The PipeCD System has 2 main components: + | Component | Description | Compatibility | |------------|--------------|----------------| | **Control Plane** | Manages projects, deployments, and applications. | Supports both piped and pipedv1 concurrently. | -| **Piped** | Manages the actual deployment and syncing of applications. | Backward compatible - You can switch between versions safely. | +| **Piped** | Manages the actual deployment and syncing of applications. | Backward compatible - You can switch back to old piped versions. | --- @@ -27,12 +31,12 @@ Migration from v0 is designed to be **safe** and **incremental**, allowing you t Before you start, ensure that: -- You are running PipeCD **v0.54.0-rc1 or later**. -- You have the **latest Control Plane** installed. -- You have **pipectl v0.54.0-rc1 or later**. -- You have access to your Control Plane with **API write permissions**. +- You are running the latest version of PipeCD **(v0.55.0)**. + - You have the **latest Control Plane** installed. + - You have the **latest version of `pipectl` and `piped`**. > **Note:** If you’re new to the plugin architecture, read: +> > - [Overview of the plan for plugin-enabled PipeCD](https://pipecd.dev/blog/2024/11/28/overview-of-the-plan-for-pluginnable-pipecd/) > - [What’s new in pipedv1](https://pipecd.dev/blog/2025/09/02/what-is-new-in-pipedv1-plugin-arch-piped/) @@ -42,91 +46,258 @@ Before you start, ensure that: The migration flow involves the following steps: -1. Update `piped` and `pipectl` binaries. -2. Convert application configurations to the v1 format. -3. Update the application model in the Control Plane database. -4. Update piped configuration for v1 (plugins). -5. Deploy and verify pipedv1. -6. Optionally, switch back to the old piped. +1. [Update `pipectl`](#1-update-pipectl) +2. [Convert application configurations to the v1 format](#2-convert-application-configurations-to-v1-format) +3. [Update the application model in the Control Plane database](#3-update-application-model-in-control-plane-database) +4. [Update piped configuration for v1](#4-update-piped-configuration-for-v1-plugin-definition) +5. [Deploy and verify pipedv1](#5-installing-pipedv1) --- -## 1. Update piped and pipectl +## 1. Update pipectl + +You can install or upgrade `pipectl` using **curl**, **Homebrew**, **aqua**, or other available methods. +For the full list of installation options, see the [`pipectl` installation guide](https://pipecd.dev/docs-v0.55.x/user-guide/command-line-tool/). -Install or upgrade to `piped` and `pipectl` **v0.54.0-rc1 or newer**: +Below is an example of upgrading pipectl using `curl`: ```bash # Example for upgrading pipectl -curl -Lo ./pipectl https://github.com/pipe-cd/pipecd/releases/download/v0.54.0-rc1/pipectl__ +curl -Lo ./pipectl https://github.com/pipe-cd/pipecd/releases/download/v0.55.0/pipectl__ chmod +x ./pipectl mv ./pipectl /usr/local/bin/ +``` +Verify the version: +```bash +pipectl version +``` +>**Note:** +>Replace `` and `` in the URL with your system values: +> +> - "OS: `linux` or `darwin`" +> - "ARCH: `amd64` or `arm64`" +> +>You can check all releases on the [Pipecd Releases](https://github.com/pipe-cd/pipecd/releases) page. +For more options of installing pipectl, checkout installing pipectl(link) -## What Is PipeCD? +## 2. Convert Application Configurations to v1 Format -{{% pageinfo %}} -PipeCD provides a unified continuous delivery solution for multiple application kinds on multi-cloud that empowers engineers to deploy faster with more confidence, a GitOps tool that enables doing deployment operations by pull request on Git. -{{% /pageinfo %}} +Convert your existing `app.pipecd.yaml` configurations to the new **v1 format**: -## Why PipeCD? +```bash +pipectl migrate application-config \ + --config-files=path/to/app1.pipecd.yaml,path/to/app2.pipecd.yaml +``` -- Simple, unified and easy to use but powerful pipeline definition to construct your deployment -- Same deployment interface to deploy applications of any platform, including Kubernetes, Terraform, GCP Cloud Run, AWS Lambda, AWS ECS -- No CRD or applications' manifest changes are required; Only need a pipeline definition along with your application manifests -- No deployment credentials are exposed or required outside the application cluster -- Built-in deployment analysis as part of the deployment pipeline to measure impact based on metrics, logs, emitted requests -- Easy to interact with any CI; The CI tests and builds artifacts, PipeCD takes the rest -- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance -- Designed to manage thousands of cross-platform applications in multi-cloud for company scale but also work well for small projects +Or specify an entire directory: -## PipeCD's Characteristics in detail +```bash +pipectl migrate application-config --dirs=path/to/apps/ +``` + +Here is an example for a simple app.pippcd.yaml file which demonstrates a kubernetes deployment and simulates a 30s wait: + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: Application +spec: + labels: + env: example + team: example + name: sample-pipecdv1-application-configuration + pipeline: + stages: + - name: K8S_CANARY_ROLLOUT + with: + replicas: 50% + - name: WAIT + with: + duration: 1m + - name: K8S_PRIMARY_ROLLOUT + plugins: + kubernetes: + input: + kubectlVersion: 1.32.2 + manifests: + - deployment.yaml +``` + +After conversion, your `app.pipecd.yaml` files will be compatible with both `piped` and `pipedv1`. +> **Recommended:** Trigger a deployment using the latest piped version after converting configurations to verify backward compatibility. + +## 3. Update Application Model in Control Plane Database + +Use `pipectl` to update the application models stored in your Control Plane database. + +You’ll need an API key with write permission. Check: + +- [Generating an API key](https://pipecd.dev/docs/user-guide/command-line-tool/#authentication) + +After obtaining your API key, Run: -**Visibility** -- Deployment pipeline UI shows clarify what is happening -- Separate logs viewer for each individual deployment -- Realtime visualization of application state -- Deployment notifications to slack, webhook endpoints -- Insights show metrics like lead time, deployment frequency, MTTR and change failure rate to measure delivery performance +```bash +pipectl migrate database \ + --address= \ + --api-key-file= \ + --applications=, +``` + +This adds the new `deployTargets` field to your application models, replacing the deprecated `platformProvider`. + +You can confirm success by checking the **Application Details** page in the Control Plane UI — the **Deploy Targets** field should now appear. + +## 4. Update piped Configuration for v1 (Plugin Definition) + +In pipedv1, **platform providers** have been replaced by **plugins**. Each plugin defines its deploy targets and configuration. + +### Example (Old piped config) + +Your exisiting `piped` config may look similar to the following: + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: Piped +spec: + projectID: dev + pipedID: piped-id + pipedKeyData: piped-key-data + apiAddress: controlplane.pipecd.dev:443 + git: + sshKeyFile: /etc/piped-secret/ssh-key + repositories: + - repoId: examples + remote: https://github.com/pipe-cd/examples.git + branch: master + syncInterval: 1m + platformProviders: + - name: kubernetes-dev + type: KUBERNETES + config: + kubectlVersion: 1.32.4 + kubeConfigPath: /users/home/.kube/config +``` + +### Example (New pipedv1 config) + +```yaml +apiVersion: pipecd.dev/v1beta1 +kind: Piped +spec: + projectID: dev + pipedID: piped-id + pipedKeyData: piped-key-data + apiAddress: controlplane.pipecd.dev:443 + git: + sshKeyFile: /etc/piped-secret/ssh-key + repositories: + - repoId: examples + remote: https://github.com/pipe-cd/examples.git + branch: master + syncInterval: 1m + plugins: + - name: kubernetes + port: 7001 + url: https://github.com/pipe-cd/pipecd/releases/download/k8s-plugin + deployTargets: + - name: local + config: + kubectlVersion: 1.32.4 + kubeConfigPath: /users/home/.kube/config + - name: wait + port: 7002 + url: https://github.com/pipe-cd/pipecd/releases/download/wait-plugin +``` + +**Changes:** + +- The contents of `platformProviders[].config` are now defined under `plugins[].deployTargets[].config`. +- The contents of `analysisProviders` are now defined under `plugins[analysis].config.analysisProviders`. +- Each plugin requires a `url` field that specifies where to download the plugin binary. +- Officially released plugins can be found on the [PipeCD releases page](https://github.com/pipe-cd/pipecd/releases). + +- Some examples: + - [Kubernetes Plugin v0.1.0](https://github.com/pipe-cd/pipecd/releases/tag/pkg%2Fapp%2Fpipedv1%2Fplugin%2Fkubernetes%2Fv0.1.0) + +## 5. Installing pipedv1 + +Once your configuration is updated and validated, you're ready to install the pipedv1 binary. You can install the latest stable or any specific release of `pipedv1` depending on your deployment needs. + +All official builds are published under the [Pipecd Releases](https://github.com/pipe-cd/pipecd/releases) page. + +Example: + +- [v1.0.0-rc6](https://github.com/pipe-cd/pipecd/releases/tag/pipedv1%2Fexp%2Fv1.0.0-rc6) +- [v1.0.0-rc5](https://github.com/pipe-cd/pipecd/releases/tag/pipedv1%2Fexp%2Fv1.0.0-rc5) +- [v1.0.0-rc3](https://github.com/pipe-cd/pipecd/releases/tag/pipedv1%2Fexp%2Fv1.0.0-rc3) + +>**Warning:** +> Before switching to `pipedv1`, stop your existing Piped process to avoid conflicts, as both versions use the same `piped-id`. + +Once you have prepared your pipedv1 configuration, there are a few different ways to deploy it. + +### Option 1 - Deploy via Helm (Kubernetes) + +If you are deploying Piped as a pod in a Kubernetes cluster, use the following Helm command: + +```bash +helm upgrade -i pipedv1-exp oci://ghcr.io/pipe-cd/chart/pipedv1-exp \ + --version=v1.0.0-rc6 \ + --namespace= \ + --create-namespace \ + --set-file config.data= \ + --set-file secret.data.ssh-key= +``` -**Automation** -- Automated deployment analysis to measure deployment impact based on metrics, logs, emitted requests -- Automatically roll back to the previous state as soon as analysis or a pipeline stage fails -- Automatically detect configuration drift to notify and render the changes -- Automatically trigger a new deployment when a defined event has occurred (e.g. container image pushed, helm chart published, etc) +### Option 2 - Run the `pipedv1` as a Standalone Binary -**Safety and Security** -- Support single sign-on and role-based access control -- Credentials are not exposed outside the cluster and not saved in the Control Plane -- Piped makes only outbound requests and can run inside a restricted network -- Built-in secrets management +You can also run the `pipedv1` binary directly in your local environment: + +```bash +# Download pipedv1 binary +# OS: "darwin" or "linux" | CPU_ARCH: "arm64" or "amd64" +curl -Lo ./piped https://github.com/pipe-cd/pipecd/releases/download/pipedv1%2Fexp%2Fv1.0.0-rc6/pipedv1_v1.0.0-rc6__ +chmod +x ./piped -**Multi-provider & Multi-Tenancy** -- Support multiple application kinds on multi-cloud including Kubernetes, Terraform, Cloud Run, AWS Lambda, Amazon ECS -- Support multiple analysis providers including Prometheus, Datadog, Stackdriver, and more -- Easy to operate multi-cluster, multi-tenancy by separating Control Plane and Piped +# Run piped binary +./piped piped --config-file= --tools-dir=/tmp/piped-bin +``` -**Open Source** +If your Control Plane is running locally, append the `--insecure=true` flag to skip TLS certificate verification: + +```bash +./piped piped --config-file= --tools-dir=/tmp/piped-bin --insecure=true +``` + +### Option 3 - Run `pipedv1` as a Container + +In addtion to running piped using Helm or as a standalone binary, you can also run it as a container. This is useful for environments such as CloudRun, ECS Fargate or more. + +A prebuilt container image of `pipedv1` is available on GitHub Container Registry: + +```bash +docker pull ghcr.io/pipe-cd/pipedv1-exp: +``` + +> **Note:** +> You can find the list of published versions here: +> [ghcr.io/pipe-cd/pipedv1-exp](https://github.com/pipe-cd/pipecd/pkgs/container/pipedv1-exp) + +--- -- Released as an Open Source project -- Under APACHE 2.0 license, see [LICENSE](https://github.com/pipe-cd/pipecd/blob/master/LICENSE) +## Want to switch back? -## Where should I go next? +If you need to roll back to using PipeCD V0, you can do so safely at any time. -For a good understanding of the PipeCD's components. -- [Concepts](../concepts): describes each components. -- [FAQ](../faq): describes the difference between PipeCD and other tools. +Simply **stop** the running `pipedv1` instance, then **start** the `pipedv0` service as you normally would. -If you are an **operator** wanting to install and configure PipeCD for other developers. -- [Quickstart](../quickstart/) -- [Managing Control Plane](../user-guide/managing-controlplane/) -- [Managing Piped](../user-guide/managing-piped/) +> **Warning:** +> The configuration files for `piped` and `pipedv1` are **not interchangeable**. +> Make sure to restore or reference the correct configuration file before restarting pipedv0. -If you are a **user** using PipeCD to deploy your application/infrastructure: -- [User Guide](../user-guide/) -- [Examples](../user-guide/examples) +Once restarted, the old `pipedv0` should resume operation using its previous configuration and state. Happy Pipe-CDing! -If you want to be a **contributor**: -- [Contributor Guide](../contribution-guidelines/) +--- \ No newline at end of file From 926f6019d5778d8939520c4e28b5dd176e868c51 Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Wed, 15 Oct 2025 14:27:24 +0530 Subject: [PATCH 4/9] update gen-docs.sh Signed-off-by: Eeshaan Sawant --- hack/gen-release-docs.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hack/gen-release-docs.sh b/hack/gen-release-docs.sh index b9bce3fb86..c90e702505 100755 --- a/hack/gen-release-docs.sh +++ b/hack/gen-release-docs.sh @@ -51,7 +51,7 @@ then fi # Update docs/config.toml -LINE_NUM=$(($(grep -Fn "# Append the release versions here." docs/config.toml | cut -f1 -d ':')+5)) +LINE_NUM=$(($(grep -Fn "# Append the release versions here." docs/config.toml | cut -f1 -d ':')+9)) head -n $LINE_NUM docs/config.toml >> docs/config.toml.tmp cat <> docs/config.toml.tmp [[params.versions]] From d8671f9852784fdbd8d449b0905606d0e6d03049 Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Thu, 16 Oct 2025 17:15:43 +0530 Subject: [PATCH 5/9] update _index.html Signed-off-by: Eeshaan Sawant --- docs/content/en/_index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/content/en/_index.html b/docs/content/en/_index.html index b6c5447430..9edf0acab0 100644 --- a/docs/content/en/_index.html +++ b/docs/content/en/_index.html @@ -24,7 +24,7 @@ GitHub - + PipeCD v1 From 5c8166385b4b57c2daa9f5bff94806d56424d320 Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Fri, 17 Oct 2025 13:13:35 +0530 Subject: [PATCH 6/9] update _index.html/ styling change Signed-off-by: Eeshaan Sawant --- docs/content/en/_index.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/content/en/_index.html b/docs/content/en/_index.html index 9edf0acab0..065e98c006 100644 --- a/docs/content/en/_index.html +++ b/docs/content/en/_index.html @@ -10,7 +10,7 @@ The One CD for All {applications, platforms, operations}

- A GitOps style continuous delivery platform that provides
consistent deployment and operations experience for any applications + A GitOps style continuous delivery platform that provides
consistent deployment and operations experience for any application.

@@ -25,14 +25,14 @@ GitHub - PipeCD v1 + Learn about PipeCD v1 {{< /blocks/cover >}} From 41d758399d517ad4ed1dbcb9219ccf9793b2a76a Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Mon, 20 Oct 2025 10:25:31 +0530 Subject: [PATCH 7/9] rm docs/concept Signed-off-by: Eeshaan Sawant --- .../content/en/docs-v1.0.x/concepts/_index.md | 75 ------------------- 1 file changed, 75 deletions(-) delete mode 100644 docs/content/en/docs-v1.0.x/concepts/_index.md diff --git a/docs/content/en/docs-v1.0.x/concepts/_index.md b/docs/content/en/docs-v1.0.x/concepts/_index.md deleted file mode 100644 index 2501c19c7c..0000000000 --- a/docs/content/en/docs-v1.0.x/concepts/_index.md +++ /dev/null @@ -1,75 +0,0 @@ ---- -title: "Concepts" -linkTitle: "Concepts" -weight: 2 -description: > - This page describes several core concepts in PipeCD. ---- - -![](/images/architecture-overview.png) -

-Component Architecture -

- -### 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. From d12d0ec1e8550fda90e6787d790f43bc921d5f88 Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Mon, 20 Oct 2025 10:28:34 +0530 Subject: [PATCH 8/9] update docs/_index.html Signed-off-by: Eeshaan Sawant --- docs/content/en/_index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/en/_index.html b/docs/content/en/_index.html index 065e98c006..d96587dc48 100644 --- a/docs/content/en/_index.html +++ b/docs/content/en/_index.html @@ -24,8 +24,8 @@ GitHub - - Learn about PipeCD v1 + From 6812fefb552337e1b7259c865b4bc41b7a99e2af Mon Sep 17 00:00:00 2001 From: Eeshaan Sawant Date: Mon, 20 Oct 2025 10:30:18 +0530 Subject: [PATCH 9/9] update docs/_index.html Signed-off-by: Eeshaan Sawant --- docs/content/en/_index.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/content/en/_index.html b/docs/content/en/_index.html index d96587dc48..04fdf4f613 100644 --- a/docs/content/en/_index.html +++ b/docs/content/en/_index.html @@ -25,8 +25,8 @@ GitHub - + Learn about PipeCD v1 + -->