Skip to content

Commit

Permalink
Release v0.20.0 (#2634)
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 Oct 14, 2021
1 parent f21c3c7 commit 408d0a1
Show file tree
Hide file tree
Showing 88 changed files with 6,028 additions and 88 deletions.
4 changes: 4 additions & 0 deletions docs/config.toml
Original file line number Diff line number Diff line change
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.20.0"
url = "/docs-v0.20.0/"

[[params.versions]]
version = "v0.18.0"
url = "/docs-v0.18.0/"
109 changes: 109 additions & 0 deletions docs/content/en/blog/releases/v0.20.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,109 @@
---
title: "Release v0.20.0"
linkTitle: "Release v0.20.0"
date: 2021-10-14
description: >
Release v0.20.0
---

## Changelog since v0.18.0

### New Features

* Piped Operation
- Remote upgrade - ability to upgrade Piped from the web console ([Doc]((https://pipecd.dev/docs/operator-manual/piped/remote-upgrade-remote-config/#remote-upgrade)))
- Remote config - watch and reload configuration from a remote location such as a Git repository ([Doc](](https://pipecd.dev/docs/operator-manual/piped/remote-upgrade-remote-config/#remote-upgrade)))

* Automated Deployment Analysis
- Add ability to perform ADA using dynamic data ([Doc](https://pipecd.dev/docs/user-guide/automated-deployment-analysis/#strategies))

* Lambda Deployment
- Add ability to deploy Lambda application from source code ([Doc](https://pipecd.dev/docs/user-guide/configuring-deployment/lambda/#deploy-source-code-directly-as-lambda-function))
- Add ability to deploy Lambda zip packing function code stored in AWS S3 ([Doc](https://pipecd.dev/docs/user-guide/configuring-deployment/lambda/#deploy-zip-file-archives-as-lambda-function))


### Notable Changes

* Fix a bug that not allowed users can approve the WAIT_APPROVAL stage ([#2602](https://github.com/pipe-cd/pipe/pull/2602))
* Add `Mention to` field to the Slack notification ([#2578](https://github.com/pipe-cd/pipe/pull/2578))
* Show piped name in Piped notification ([#2541](https://github.com/pipe-cd/pipe/pull/2541))
* The way of attaching sensitive data to the Secret manifest while installing Piped via Helm chart was changed. This change makes it possible to specify any data to it instead of just predefined ones. ([#2559](https://github.com/pipe-cd/pipe/pull/2559))

### Internal Changes

* Enable to a specific project to login to by project query params in the URL ([#2543](https://github.com/pipe-cd/pipe/pull/2543))
* Avoid showing an empty view in case of access to an invalid path ([#2548](https://github.com/pipe-cd/pipe/pull/2548))
* Introduce launcher a component to manage Piped agent ([#2557](https://github.com/pipe-cd/pipe/pull/2557))
* Do not overwrite the previous value of different keys in deployment's metadata ([#2633](https://github.com/pipe-cd/pipe/pull/2633))
* Add some tests and fix a bug that error occurs when approvers are nil ([#2629](https://github.com/pipe-cd/pipe/pull/2629))
* Add docs for remote-upgrade and remote-config ([#2631](https://github.com/pipe-cd/pipe/pull/2631))
* Add missing ecs default livestate store ([#2632](https://github.com/pipe-cd/pipe/pull/2632))
* Fix display wrong value for version selector box ([#2630](https://github.com/pipe-cd/pipe/pull/2630))
* Add guide to enable remote-upgrade and auto-config features of Piped in Kubernetes ([#2613](https://github.com/pipe-cd/pipe/pull/2613))
* Add docs for Lambda function from source code feature ([#2615](https://github.com/pipe-cd/pipe/pull/2615))
* Add docs on pipectl encrypt command ([#2610](https://github.com/pipe-cd/pipe/pull/2610))
* Update the docs to show how to use dynamic ADA ([#2562](https://github.com/pipe-cd/pipe/pull/2562))
* Add ability to view documentation by version ([#2628](https://github.com/pipe-cd/pipe/pull/2628))
* Fix the error message that a user is not included in approvers ([#2626](https://github.com/pipe-cd/pipe/pull/2626))
* Update the helth description for non-built-in resources ([#2624](https://github.com/pipe-cd/pipe/pull/2624))
* Update user guide examples' index ([#2619](https://github.com/pipe-cd/pipe/pull/2619))
* Make SourceCode.Path not required as Lambda function manifest configuration ([#2625](https://github.com/pipe-cd/pipe/pull/2625))
* Update determine version for source code packing lambda deployment ([#2623](https://github.com/pipe-cd/pipe/pull/2623))
* Upgrade docsy to fix a bug related to offline search ([#2621](https://github.com/pipe-cd/pipe/pull/2621))
* Update docsy to latest version ([#2620](https://github.com/pipe-cd/pipe/pull/2620))
* Remove ioutil package from Pipecd's dependencies ([#2616](https://github.com/pipe-cd/pipe/pull/2616))
* Update Kapetanios build to use latest Hugo image ([#2618](https://github.com/pipe-cd/pipe/pull/2618))
* Update hugo image to use hugo 0.88.1 ([#2617](https://github.com/pipe-cd/pipe/pull/2617))
* Update docs by removing doc for sealed-secret and adding missing config references ([#2614](https://github.com/pipe-cd/pipe/pull/2614))
* Be more clear about what dynamic ADA does ([#2586](https://github.com/pipe-cd/pipe/pull/2586))
* Fix formatting errors ([#2612](https://github.com/pipe-cd/pipe/pull/2612))
* Add sub-command to encrypt data with the registered public key ([#2600](https://github.com/pipe-cd/pipe/pull/2600))
* Support mentioning users in the TRIGGERED event for other than k8s ([#2608](https://github.com/pipe-cd/pipe/pull/2608))
* Avoid panic while triggering deployment for the kind that not k8s ([#2606](https://github.com/pipe-cd/pipe/pull/2606))
* Fix small parts of the log message ([#2603](https://github.com/pipe-cd/pipe/pull/2603))
* Add the Overview page with translating in Japanese to the document ([#2604](https://github.com/pipe-cd/pipe/pull/2604))
* Empower all commands to handle input to stdin ([#2598](https://github.com/pipe-cd/pipe/pull/2598))
* Add an API to encrypt using the registered public key ([#2595](https://github.com/pipe-cd/pipe/pull/2595))
* Fix missing flags of ignoring list in Launcher ([#2597](https://github.com/pipe-cd/pipe/pull/2597))
* Tiny fix on the secret management docs ([#2596](https://github.com/pipe-cd/pipe/pull/2596))
* Rename some parameters for Piped chart ([#2594](https://github.com/pipe-cd/pipe/pull/2594))
* Fix wrong format of Envs passed to Git client ([#2593](https://github.com/pipe-cd/pipe/pull/2593))
* Tiny fix on pipectl documentation ([#2592](https://github.com/pipe-cd/pipe/pull/2592))
* Disable host key checking while cloning source in Launcher ([#2589](https://github.com/pipe-cd/pipe/pull/2589))
* Update determine version for s3 stored zip packing lambda deployment ([#2588](https://github.com/pipe-cd/pipe/pull/2588))
* Fix several warnings while compiling source code due to unneeded imports ([#2591](https://github.com/pipe-cd/pipe/pull/2591))
* Send DEPLOYMENT_APPROVED event to Slack ([#2590](https://github.com/pipe-cd/pipe/pull/2590))
* Add ability to notify `DEPLOYMENT_APPROVED` event to Slack ([#2587](https://github.com/pipe-cd/pipe/pull/2587))
* Refactor the logic of getting mentioned accounts and avoid panic there ([#2582](https://github.com/pipe-cd/pipe/pull/2582))
* Enable to mention users in Piped notification when TRIGGERED event is fired ([#2581](https://github.com/pipe-cd/pipe/pull/2581))
* Refactor the logic of getting config of the repository ([#2584](https://github.com/pipe-cd/pipe/pull/2584))
* Add missing ssh-key arg to Piped helm chart ([#2585](https://github.com/pipe-cd/pipe/pull/2585))
* Add small tips for contributors to the document ([#2583](https://github.com/pipe-cd/pipe/pull/2583))
* Add configuration for Launcher in Piped chart ([#2579](https://github.com/pipe-cd/pipe/pull/2579))
* Fix to pass piped-id to ensure valid application ([#2580](https://github.com/pipe-cd/pipe/pull/2580))
* Prevent a panic by checking if notification is not nil ([#2576](https://github.com/pipe-cd/pipe/pull/2576))
* Add examples and docs for Lambda zip packing s3 stored function code ([#2575](https://github.com/pipe-cd/pipe/pull/2575))
* Enable to mention users in Piped notification when a DEPLOYMENT_PLANNED event is triggered ([#2552](https://github.com/pipe-cd/pipe/pull/2552))
* Add Lambda function runtime to function manifest ([#2574](https://github.com/pipe-cd/pipe/pull/2574))
* Ensure to default values within a map ([#2573](https://github.com/pipe-cd/pipe/pull/2573))
* Add explanations to guide users to create the new PIPED key ([#2569](https://github.com/pipe-cd/pipe/pull/2569))
* Make git client accept environment variables for git command ([#2568](https://github.com/pipe-cd/pipe/pull/2568))
* Break launcher into a separate binary ([#2566](https://github.com/pipe-cd/pipe/pull/2566))
* Update contributor list ([#2563](https://github.com/pipe-cd/pipe/pull/2563))
* Add the checkbox column to show which events are supported events. ([#2555](https://github.com/pipe-cd/pipe/pull/2555))
* Show desired version in piped list page if it is different from the currently running one ([#2554](https://github.com/pipe-cd/pipe/pull/2554))
* Add RPC to update the desired version for a list of pipeds ([#2553](https://github.com/pipe-cd/pipe/pull/2553))
* Add apiregistration.k8s.io/* API to the default watching the list of Kubernetes ([#2438](https://github.com/pipe-cd/pipe/pull/2438))
* Enable to mention users in Piped notification when a DeploymentCompleted related event is triggered ([#2545](https://github.com/pipe-cd/pipe/pull/2545))
* Add authorization.k8s.io/* API to the default watching the list of Kubernetes ([#2443](https://github.com/pipe-cd/pipe/pull/2443))
* Fix to not validate configuration when using AnalysisTemplate ([#2547](https://github.com/pipe-cd/pipe/pull/2547))
* Fix unable to back from login form ([#2546](https://github.com/pipe-cd/pipe/pull/2546))
* Ensure to validate ADA configurations on loading ([#2544](https://github.com/pipe-cd/pipe/pull/2544))
* Retrieve Piped name from control-plane ([#2536](https://github.com/pipe-cd/pipe/pull/2536))
* Add RPC to retrieve desired Piped version ([#2535](https://github.com/pipe-cd/pipe/pull/2535))
* Always add the project as pipecd URL query params ([#2534](https://github.com/pipe-cd/pipe/pull/2534))
* Add the note about hugo installation ([#2533](https://github.com/pipe-cd/pipe/pull/2533))
* Remove unneeded ADA evaluator ([#2532](https://github.com/pipe-cd/pipe/pull/2532))
* Use metrics analyzer to perform ADA for each strategy ([#2531](https://github.com/pipe-cd/pipe/pull/2531))
* Update feature status ([#2527](https://github.com/pipe-cd/pipe/pull/2527))
* Fix ADA examples to not use threshold ([#2530](https://github.com/pipe-cd/pipe/pull/2530))
5 changes: 5 additions & 0 deletions docs/content/en/docs-v0.20.0/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
---
title: "Welcome to PipeCD"
linkTitle: "Documentation [v0.20.0]"
type: docs
---
80 changes: 80 additions & 0 deletions docs/content/en/docs-v0.20.0/concepts/_index.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
---
title: "Concepts"
linkTitle: "Concepts"
weight: 2
description: >
This page describes several core concepts in PipeCD.
---

### Piped

`piped` (the ’d’ is short for ’daemon’) is a single binary component you run 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.

### Deployment Configuration

A `.pipe.yaml` yaml file that contains configuration data to define how to deploy the application.
Each application requires one deployment configuration file at application directory in the Git repository.

### Application Directory

A directory in Git repository containing deployment configuration file (`.pipe.yaml`) 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 deployment 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.
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: "Contributor Guide"
linkTitle: "Contributor Guide"
weight: 6
description: >
This guide is for anyone who want to contribute to PipeCD project. We are so excited to have you!
---
Original file line number Diff line number Diff line change
@@ -0,0 +1,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`
Original file line number Diff line number Diff line change
@@ -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.
Loading

0 comments on commit 408d0a1

Please sign in to comment.