Skip to content

Commit

Permalink
Release v0.23.0 (#2998)
Browse files Browse the repository at this point in the history
**What this PR does / why we need it**:

**Which issue(s) this PR fixes**:

Fixes #

**Does this PR introduce a user-facing change?**:
<!--
If no, just write "NONE" in the release-note block below.
-->
```release-note
NONE
```

This PR was merged by Kapetanios.
  • Loading branch information
nghialv committed Jan 4, 2022
1 parent cd8121f commit 8daaaa6
Show file tree
Hide file tree
Showing 103 changed files with 6,119 additions and 102 deletions.
4 changes: 4 additions & 0 deletions docs/config.toml
Expand Up @@ -166,6 +166,10 @@ no = 'Sorry to hear that. Please <a href="https://github.com/pipe-cd/pipe/issues
githubbranch = "master"
url = "/docs-dev/"

[[params.versions]]
version = "v0.23.x"
url = "/docs-v0.23.x/"

[[params.versions]]
version = "v0.22.x"
url = "/docs-v0.22.x/"
Expand Down
112 changes: 112 additions & 0 deletions docs/content/en/blog/releases/v0.23.0.md
@@ -0,0 +1,112 @@
---
title: "Release v0.23.0"
linkTitle: "Release v0.23.0"
date: 2022-01-04
description: >
Release v0.23.0
---

## Changelog since v0.22.0

### New Features

* Introduce [Deployment Chain](https://pipecd.dev/docs/user-guide/deployment-chain/) which allows rolling out to multiple clusters gradually or promoting across environments

* Introduce a [better way](https://pipecd.dev/docs/user-guide/adding-an-application/#from-the-application-configuration-in-your-git-repository-recommended) to add applications just by a few clicks. Pipeds now start watching your Git repositories to find unregistered applications to suggest to add from the web console.

* The piped connection status is now showing in the piped tab on the setting page ([#2896](https://github.com/pipe-cd/pipe/pull/2896))

### Notable Changes

* Ingress manifest in the control-plane chart has been migrated to `networking.k8s.io/v1` API version ([#2981](https://github.com/pipe-cd/pipe/pull/2981))
* Environment is no longer required for Piped and application registration ([#2945](https://github.com/pipe-cd/pipe/pull/2945))
* The default application configuration name to "app.pipecd.yaml" from ".pipe.yaml" ([#2950](https://github.com/pipe-cd/pipe/pull/2950))
* The config filename is now required when you add an app on the web UI. ([#2951](https://github.com/pipe-cd/pipe/pull/2951))
* The concept that used to be "Deployment Configuration" is now "Application Confguration" ([#2928](https://github.com/pipe-cd/pipe/pull/2928))
* Updating application information via the Web UI is no longer possible ([#2910](https://github.com/pipe-cd/pipe/pull/2910))
* Remove the old Piped stats mechanism. Piped before v0.14.0 will be no longer working from this control plane version. ([#2892](https://github.com/pipe-cd/pipe/pull/2892))
* The predefined secrets in Piped chart have been removed ([#2878](https://github.com/pipe-cd/pipe/pull/2878))

### Internal Changes

* Revise adding application guide ([#2997](https://github.com/pipe-cd/pipe/pull/2997))
* Add inchain applications configurations ([#2993](https://github.com/pipe-cd/pipe/pull/2993))
* Enable to handle query parameter as an array even only one ([#2996](https://github.com/pipe-cd/pipe/pull/2996))
* Add link to deployment chain in feature status page ([#2992](https://github.com/pipe-cd/pipe/pull/2992))
* Fix the location of doc for deployment chain ([#2991](https://github.com/pipe-cd/pipe/pull/2991))
* Add required indexes for deploymentchain and deployment model ([#2990](https://github.com/pipe-cd/pipe/pull/2990))
* Fix warning wrong format for interface value ([#2989](https://github.com/pipe-cd/pipe/pull/2989))
* Introduce deployment chain controller in ops ([#2986](https://github.com/pipe-cd/pipe/pull/2986))
* Remove unneeded explanation in the quickstart guide ([#2988](https://github.com/pipe-cd/pipe/pull/2988))
* Simplify quickstart by removing unneeded step ([#2984](https://github.com/pipe-cd/pipe/pull/2984))
* Add a missing required field to ingress manifest for control-plane chart ([#2985](https://github.com/pipe-cd/pipe/pull/2985))
* Add using filestore as database to feature status page ([#2983](https://github.com/pipe-cd/pipe/pull/2983))
* Add missing bazel rules needed to push images to local registry ([#2980](https://github.com/pipe-cd/pipe/pull/2980))
* Fix stale command options in docs ([#2979](https://github.com/pipe-cd/pipe/pull/2979))
* Translate triggering-a-deployment.md into Japanese ([#2977](https://github.com/pipe-cd/pipe/pull/2977))
* Add the navigation link to the doc covering to add app from Git ([#2975](https://github.com/pipe-cd/pipe/pull/2975))
* Update bazel and rules_docker to latest version ([#2972](https://github.com/pipe-cd/pipe/pull/2972))
* Fix wrong image used in quickstart docs ([#2971](https://github.com/pipe-cd/pipe/pull/2971))
* Add Nanaken san to contributors list ([#2970](https://github.com/pipe-cd/pipe/pull/2970))
* Fix missing screenshot for quickstart ([#2969](https://github.com/pipe-cd/pipe/pull/2969))
* Remove deployment chain model updating logic called in piped_api ([#2967](https://github.com/pipe-cd/pipe/pull/2967))
* Change default interval to scan app config files ([#2966](https://github.com/pipe-cd/pipe/pull/2966))
* Add doc that covers how to add an app from Git ([#2935](https://github.com/pipe-cd/pipe/pull/2935))
* Make it possible to register labels via app config ([#2963](https://github.com/pipe-cd/pipe/pull/2963))
* Add status to deployment chain model ([#2965](https://github.com/pipe-cd/pipe/pull/2965))
* Update the Piped definition in docs ([#2961](https://github.com/pipe-cd/pipe/pull/2961))
* Simplify the quickstart steps ([#2953](https://github.com/pipe-cd/pipe/pull/2953))
* Add Piped installation link to user guide index ([#2962](https://github.com/pipe-cd/pipe/pull/2962))
* Add docs on pipectl available commands ([#2960](https://github.com/pipe-cd/pipe/pull/2960))
* Switch to use Stepper component to add app from Git ([#2956](https://github.com/pipe-cd/pipe/pull/2956))
* Revise piped connection status UI color ([#2958](https://github.com/pipe-cd/pipe/pull/2958))
* Fix miss kind in docs ([#2957](https://github.com/pipe-cd/pipe/pull/2957))
* Make sure appconfigreporter to scan configs first ([#2955](https://github.com/pipe-cd/pipe/pull/2955))
* Update kapetanios to assign all reviewers ([#2954](https://github.com/pipe-cd/pipe/pull/2954))
* Translate rolling-back-a-deployment.md into Japanese ([#2952](https://github.com/pipe-cd/pipe/pull/2952))
* Ensure to inspect unregistered apps even no new commit ([#2949](https://github.com/pipe-cd/pipe/pull/2949))
* Don't show env when there isn't ([#2948](https://github.com/pipe-cd/pipe/pull/2948))
* Add name field to all example app configs ([#2946](https://github.com/pipe-cd/pipe/pull/2946))
* Add deployment chain list simple mock page ([#2944](https://github.com/pipe-cd/pipe/pull/2944))
* Make Environment optional when adding an app from Git ([#2942](https://github.com/pipe-cd/pipe/pull/2942))
* Remove function no longer needed ([#2943](https://github.com/pipe-cd/pipe/pull/2943))
* Return PermissionDenied status instead of InvalidArgument in case access to resources of not permitted project ([#2940](https://github.com/pipe-cd/pipe/pull/2940))
* Add DeploymentChain gRPCs ([#2923](https://github.com/pipe-cd/pipe/pull/2923))
* Make environment fields optional ([#2939](https://github.com/pipe-cd/pipe/pull/2939))
* Fix miss running make gazellel ([#2937](https://github.com/pipe-cd/pipe/pull/2937))
* Make in chain application matcher works with ApplicationKind ([#2934](https://github.com/pipe-cd/pipe/pull/2934))
* Disable onChain trigger by default ([#2932](https://github.com/pipe-cd/pipe/pull/2932))
* Update contributor list ([#2930](https://github.com/pipe-cd/pipe/pull/2930))
* Remove an RPC that no longer exist from the auth list ([#2927](https://github.com/pipe-cd/pipe/pull/2927))
* Add sivchari and eltociear to the contributor list ([#2926](https://github.com/pipe-cd/pipe/pull/2926))
* Update trigger docs ([#2924](https://github.com/pipe-cd/pipe/pull/2924))
* Fix typo in piped_api.go ([#2922](https://github.com/pipe-cd/pipe/pull/2922))
* fix misspell ([#2921](https://github.com/pipe-cd/pipe/pull/2921))
* Unify Piped select UI with add manyally form ([#2920](https://github.com/pipe-cd/pipe/pull/2920))
* Undo Env to mandatory again in App config ([#2918](https://github.com/pipe-cd/pipe/pull/2918))
* Fix what only one unregistered application is shown ([#2916](https://github.com/pipe-cd/pipe/pull/2916))
* Add the page in Japanese to the doc ([#2889](https://github.com/pipe-cd/pipe/pull/2889))
* Remove unused PipedStats model ([#2911](https://github.com/pipe-cd/pipe/pull/2911))
* Fetch piped list in setting page intervally ([#2908](https://github.com/pipe-cd/pipe/pull/2908))
* Fix CHAIN_SYNC_APPLICATION command leaked from should trigger checking list ([#2907](https://github.com/pipe-cd/pipe/pull/2907))
* Avoid trigger disabled application in chain ([#2906](https://github.com/pipe-cd/pipe/pull/2906))
* Fix launcher to use valid Printf verbs ([#2905](https://github.com/pipe-cd/pipe/pull/2905))
* Ensure to list unregistered apps whenever the add from git form got shown ([#2904](https://github.com/pipe-cd/pipe/pull/2904))
* Allow Viewer to call ListUnregisteredApplications ([#2903](https://github.com/pipe-cd/pipe/pull/2903))
* Remove unneeded data in secret manifest of Piped chart ([#2902](https://github.com/pipe-cd/pipe/pull/2902))
* Lint web codebase ([#2901](https://github.com/pipe-cd/pipe/pull/2901))
* Add a form to add an app from Git ([#2894](https://github.com/pipe-cd/pipe/pull/2894))
* Using piped stat info to determine connection status ([#2895](https://github.com/pipe-cd/pipe/pull/2895))
* Cancel deployments of the same block in case the block finished with FAILURE or CANCELLED status ([#2893](https://github.com/pipe-cd/pipe/pull/2893))
* Download the latest version of pipectl ([#2856](https://github.com/pipe-cd/pipe/pull/2856))
* Stop deployments of applications in case its chain is stopped ([#2866](https://github.com/pipe-cd/pipe/pull/2866))
* Eliminate dependence on specific cryptographic algorithm from doc ([#2891](https://github.com/pipe-cd/pipe/pull/2891))
* Fix missing bazel import ([#2886](https://github.com/pipe-cd/pipe/pull/2886))
* Apply tabs to app adding form to add from Git ([#2871](https://github.com/pipe-cd/pipe/pull/2871))
* Unify how to write whether it is required depends on the conditions ([#2883](https://github.com/pipe-cd/pipe/pull/2883))
* Make sure to use the helper method to get app config file path ([#2882](https://github.com/pipe-cd/pipe/pull/2882))
* Fix required field for ChartRepository struct in Piped config reference ([#2881](https://github.com/pipe-cd/pipe/pull/2881))
* Fix appconfigreporter to handle app that config file is empty ([#2879](https://github.com/pipe-cd/pipe/pull/2879))
* Revert "Temporarily disable appconfig reporter in Piped" ([#2880](https://github.com/pipe-cd/pipe/pull/2880))
* Update plan-preview to use pipectl v0.22.0 ([#2876](https://github.com/pipe-cd/pipe/pull/2876))
* Add knanao to reviewer list ([#2875](https://github.com/pipe-cd/pipe/pull/2875))
5 changes: 5 additions & 0 deletions docs/content/en/docs-v0.23.x/_index.md
@@ -0,0 +1,5 @@
---
title: "Welcome to PipeCD"
linkTitle: "Documentation [v0.23.x]"
type: docs
---
81 changes: 81 additions & 0 deletions docs/content/en/docs-v0.23.x/concepts/_index.md
@@ -0,0 +1,81 @@
---
title: "Concepts"
linkTitle: "Concepts"
weight: 2
description: >
This page describes several core concepts in PipeCD.
---

### 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 gPRC 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`...

### Environment

An environment is a logical group of applications of a project. A project can have multiple environments.
Each application must belong to one and only one environment. While each piped must belong to at least one environment.

### 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 synced with the desired state specified in the target commit.

### Application Configuration

A yaml file that contains configuration data to define how to deploy the application.
Each application requires one application configuration file at application directory 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.

### Quick Sync

Quick sync is a fast way to sync application to the state specified in a Git commit without any progressive strategy or manual approving. Its pipeline contains just only one predefined `SYNC` stage. For examples:
- quick sync a Kubernetes application is just applying all manifests
- quick sync a Terraform application is automatically applying all detected changes
- quick sync a CloudRun/Lambda application is rolling out the new version and routing all traffic to it

### Pipeline

A list of stages specified by user in the application configuration file that tells `piped` how the application should be deployed. If the pipeline is not specified, the application will be deployed by Quick Sync way.

### Stage

A temporary middle state between current state and desired state of a deployment process.

### Cloud Provider

PipeCD supports multiple clouds and multiple kinds of applications.
Cloud Provider defines which cloud and where application should be deployed to.

Currently, PipeCD is supporting these five cloud 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](/docs/user-guide/automated-deployment-analysis/) context.
@@ -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!
---
@@ -0,0 +1,33 @@
---
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 gPRC 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.
- `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`
@@ -0,0 +1,33 @@
---
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!

## Contributor License Agreement

Contributions to this project must be accompanied by a Contributor License Agreement ("CLA") described at [pipe-cd/pipe/master/CLA.md](https://github.com/pipe-cd/pipe/blob/master/CLA.md). You (or your employer) retain the copyright to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project.

You generally only need to sign a CLA once, so if you've already signed one, you probably don't need to do it again.

In case you have not signed yet, [pipecd-bot](https://github.com/pipecd-bot) will guide you to sign the CLA _when you send the first pull request to [pipe-cd/pipe](https://github.com/pipe-cd/pipe) repository_.

## Creating an issue

If you've found a problem, please create an issue in the [pipe-cd/pipe](https://github.com/pipe-cd/pipe/issues) repository.

## Creating a pull request

Look at our [help wanted issues](https://github.com/pipe-cd/pipe/issues?q=is%3Aissue+is%3Aopen+label%3A"help+wanted") or our [good first issues](https://github.com/pipe-cd/pipe/issues?q=is%3Aissue+is%3Aopen+label%3A"good+first+issue") for finding some good issues for your first pull request.

### Small tips

The pull request title is used to generate our release changelog. Therefore, it would be great if you write the title that is easier to understand from the user's point of view.

## Code reviews

All submissions, including submissions by project members, require review. We use GitHub pull requests for this purpose. Consult [GitHub Help](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/about-pull-requests) for more information on using pull requests.

0 comments on commit 8daaaa6

Please sign in to comment.