Skip to content

Commit 4d616f6

Browse files
authored
Release v0.40.0 (#4023)
* Release v0.40.0 * Update readme * Update release note * Add docs for v0.40.x
1 parent 9d1ddf4 commit 4d616f6

75 files changed

Lines changed: 6226 additions & 2 deletions

File tree

Some content is hidden

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

RELEASE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
tag: v0.39.0
1+
tag: v0.40.0
22

33
releaseNoteGenerator:
44
showCommitter: false

docs/config.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,10 @@ no = 'Sorry to hear that. Please <a href="https://github.com/pipe-cd/pipecd/issu
163163
githubbranch = "master"
164164
url = "/docs-dev/"
165165

166+
[[params.versions]]
167+
version = "v0.40.x"
168+
url = "/docs-v0.40.x/"
169+
166170
[[params.versions]]
167171
version = "v0.39.x"
168172
url = "/docs-v0.39.x/"
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
---
2+
title: "Release v0.40.0"
3+
linkTitle: "Release v0.40.0"
4+
date: 2022-11-30
5+
description: >
6+
Release v0.40.0
7+
---
8+
9+
## Changes since v0.39.0
10+
### Notable Changes
11+
12+
* Enable to restart Piped from the PipeCD console [#3988](https://github.com/pipe-cd/pipecd/pull/3988)
13+
* Allow config MySQL database via config URL ([#4017](https://github.com/pipe-cd/pipecd/pull/4017))
14+
* Fix K8s resources are not pruned even if running Quick Sync ([#3991](https://github.com/pipe-cd/pipecd/pull/3991))
15+
16+
### Internal Changes
17+
18+
* Release v0.40.0
19+
* Update web dependencies ([#4031](https://github.com/pipe-cd/pipecd/pull/4031))
20+
* Fix the invalid link ([#4027](https://github.com/pipe-cd/pipecd/pull/4027))
21+
* Bump glob-parent from 5.1.1 to 5.1.2 in /web ([#4030](https://github.com/pipe-cd/pipecd/pull/4030))
22+
* Bump follow-redirects from 1.11.0 to 1.15.2 in /web ([#4028](https://github.com/pipe-cd/pipecd/pull/4028))
23+
* Bump nanoid from 3.1.29 to 3.3.4 in /docs ([#4029](https://github.com/pipe-cd/pipecd/pull/4029))
24+
* Bump node-fetch from 2.6.1 to 2.6.7 in /web ([#3380](https://github.com/pipe-cd/pipecd/pull/3380))
25+
* Bump ansi-regex from 5.0.0 to 5.0.1 in /web ([#4026](https://github.com/pipe-cd/pipecd/pull/4026))
26+
* Bump terser from 5.6.1 to 5.16.0 in /web ([#4025](https://github.com/pipe-cd/pipecd/pull/4025))
27+
* Update examples readme ([#4022](https://github.com/pipe-cd/pipecd/pull/4022))
28+
* Update web dependencies ([#4021](https://github.com/pipe-cd/pipecd/pull/4021))
29+
* Add readme to manifests directory ([#4020](https://github.com/pipe-cd/pipecd/pull/4020))
30+
* Add docs for upgrading control plane ([#4019](https://github.com/pipe-cd/pipecd/pull/4019))
31+
* Sync docs ([#4018](https://github.com/pipe-cd/pipecd/pull/4018))
32+
* Add frontend implementation for Insights feature ([#4010](https://github.com/pipe-cd/pipecd/pull/4010))
33+
* Bump path-parse from 1.0.6 to 1.0.7 in /web ([#4013](https://github.com/pipe-cd/pipecd/pull/4013))
34+
* Bump ajv from 6.12.2 to 6.12.6 in /web ([#4016](https://github.com/pipe-cd/pipecd/pull/4016))
35+
* Bump ws from 6.2.1 to 6.2.2 in /web ([#4015](https://github.com/pipe-cd/pipecd/pull/4015))
36+
* Bump browserslist from 4.14.7 to 4.21.4 in /web ([#4014](https://github.com/pipe-cd/pipecd/pull/4014))
37+
* Bump dns-packet from 1.3.1 to 1.3.4 in /web ([#4012](https://github.com/pipe-cd/pipecd/pull/4012))
38+
* Bump tmpl from 1.0.4 to 1.0.5 in /web ([#4011](https://github.com/pipe-cd/pipecd/pull/4011))
39+
* Bump websocket-extensions from 0.1.3 to 0.1.4 in /web ([#4009](https://github.com/pipe-cd/pipecd/pull/4009))
40+
* Bump y18n from 4.0.0 to 4.0.3 in /web ([#4008](https://github.com/pipe-cd/pipecd/pull/4008))
41+
* Make it possible to use labels to filter insight data ([#4007](https://github.com/pipe-cd/pipecd/pull/4007))
42+
* Fix to escape the user-provided value for ops ([#4006](https://github.com/pipe-cd/pipecd/pull/4006))
43+
* Update web dependencies ([#4005](https://github.com/pipe-cd/pipecd/pull/4005))
44+
* Migrate from legacy loaders to asset module ([#4004](https://github.com/pipe-cd/pipecd/pull/4004))
45+
* Make it possible to specify InsightStep in GetInsightData RPC ([#4003](https://github.com/pipe-cd/pipecd/pull/4003))
46+
* Add GetInsightData RPC under a feature flag ([#4002](https://github.com/pipe-cd/pipecd/pull/4002))
47+
* Add web components for Insights feature ([#4000](https://github.com/pipe-cd/pipecd/pull/4000))
48+
* Add fix lint web command ([#4001](https://github.com/pipe-cd/pipecd/pull/4001))
49+
* Add missing json tags for application data ([#3999](https://github.com/pipe-cd/pipecd/pull/3999))
50+
* Add missing indexes for insights and minor fixes ([#3998](https://github.com/pipe-cd/pipecd/pull/3998))
51+
* Add backend implementation for Insights feature ([#3993](https://github.com/pipe-cd/pipecd/pull/3993))
52+
* Update Go version to v1.19 ([#3997](https://github.com/pipe-cd/pipecd/pull/3997))
53+
* Fix the wrong link for registering a piped docs ([#3996](https://github.com/pipe-cd/pipecd/pull/3996))
54+
* Add code of conduct ([#3994](https://github.com/pipe-cd/pipecd/pull/3994))
55+
* Add maintainers list ([#3992](https://github.com/pipe-cd/pipecd/pull/3992))
56+
* Add restart piped UI ([#3990](https://github.com/pipe-cd/pipecd/pull/3990))
57+
* Fix the invalid link ([#3989](https://github.com/pipe-cd/pipecd/pull/3989))
58+
* Bump minimatch from 3.0.4 to 3.1.2 in /web ([#3987](https://github.com/pipe-cd/pipecd/pull/3987))
59+
* Bump loader-utils from 1.4.1 to 1.4.2 in /web ([#3986](https://github.com/pipe-cd/pipecd/pull/3986))
60+
* Fix to use the relative path for the docs ([#3985](https://github.com/pipe-cd/pipecd/pull/3985))
61+
* Update quickstart docs ([#3983](https://github.com/pipe-cd/pipecd/pull/3983))
62+
* Fix all links for dev docs ([#3984](https://github.com/pipe-cd/pipecd/pull/3984))
63+
* Remove the old docs ([#3982](https://github.com/pipe-cd/pipecd/pull/3982))
64+
* Update release v0.39.0 blog ([#3979](https://github.com/pipe-cd/pipecd/pull/3979))
65+
* Bump loader-utils from 1.4.0 to 1.4.1 in /web ([#3981](https://github.com/pipe-cd/pipecd/pull/3981))
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
title: "Welcome to PipeCD"
3+
linkTitle: "Documentation [v0.40.x]"
4+
type: docs
5+
---
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
---
2+
title: "Concepts"
3+
linkTitle: "Concepts"
4+
weight: 2
5+
description: >
6+
This page describes several core concepts in PipeCD.
7+
---
8+
9+
![](/images/architecture-overview.png)
10+
<p style="text-align: center;">
11+
Component Architecture
12+
</p>
13+
14+
### Piped
15+
16+
`piped` is a single binary component you run as an agent in your cluster, your local network to handle the deployment tasks.
17+
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
18+
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.
19+
20+
### Control Plane
21+
22+
A centralized component managing deployment data and provides gPRC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
23+
authentication, showing deployment list/details, application list/details, delivery insights...
24+
25+
### Project
26+
27+
A project is a logical group of applications to be managed by a group of users.
28+
Each project can have multiple `piped` instances from different clouds or environments.
29+
30+
There are three types of project roles:
31+
32+
- **Viewer** has only permissions of viewing to deployment and application in the project.
33+
- **Editor** has all viewer permissions, plus permissions for actions that modify state such as manually trigger/cancel the deployment.
34+
- **Admin** has all editor permissions, plus permissions for managing project data, managing project `piped`.
35+
36+
### Application
37+
38+
A collect of resources (containers, services, infrastructure components...) and configurations that are managed together.
39+
PipeCD supports multiple kinds of applications such as `KUBERNETES`, `TERRAFORM`, `ECS`, `CLOUDRUN`, `LAMBDA`...
40+
41+
### Application Configuration
42+
43+
A YAML file that contains information to define and configure application.
44+
Each application requires one file at application directory stored in the Git repository.
45+
The default file name is `app.pipecd.yaml`.
46+
47+
### Application Directory
48+
49+
A directory in Git repository containing application configuration file and application manifests.
50+
Each application must have one application directory.
51+
52+
### Deployment
53+
54+
A deployment is a process that does transition from the current state (running state) to the desired state (specified state in Git) of a specific application.
55+
When the deployment is success, it means the running state is being synced with the desired state specified in the target commit.
56+
57+
### Sync Strategy
58+
59+
There are 3 strategies that PipeCD supports while syncing your application state with its configuration stored in Git. Which are:
60+
- Quick Sync: a fast way to make the running application state as same as its Git stored configuration. The generated pipeline contains only one predefined `SYNC` stage.
61+
- Pipeline Sync: sync the running application state with its Git stored configuration through a pipeline defined in its application configuration.
62+
- Auto Sync: depends on your defined application configuration, `piped` will decide the best way to sync your application state with its Git stored configuration.
63+
64+
### Platform Provider
65+
66+
Note: The previous name of this concept was Cloud Provider.
67+
68+
PipeCD supports multiple platforms and multiple kinds of applications.
69+
Platform Provider defines which platform, cloud and where application should be deployed to.
70+
71+
Currently, PipeCD is supporting these five platform providers: `KUBERNETES`, `ECS`, `TERRAFORM`, `CLOUDRUN`, `LAMBDA`.
72+
73+
### Analysis Provider
74+
An external product that provides metrics/logs to evaluate deployments, such as `Prometheus`, `Datadog`, `Stackdriver`, `CloudWatch` and so on.
75+
It is mainly used in the [Automated deployment analysis](../user-guide/managing-application/customizing-deployment/automated-deployment-analysis/) context.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
title: "Contributor Guide"
3+
linkTitle: "Contributor Guide"
4+
weight: 6
5+
description: >
6+
This guide is for anyone who want to contribute to PipeCD project. We are so excited to have you!
7+
---
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
title: "Architectural overview"
3+
linkTitle: "Architectural overview"
4+
weight: 3
5+
description: >
6+
This page describes the architecture of PipeCD.
7+
---
8+
9+
![](/images/architecture-overview.png)
10+
<p style="text-align: center;">
11+
Component Architecture
12+
</p>
13+
14+
### Piped
15+
16+
A single binary component runs in your cluster, your local network to handle the deployment tasks.
17+
It can be run inside a Kubernetes cluster by simply starting a Pod or a Deployment.
18+
This component is designed to be stateless, so it can also be run in a single VM or even your local machine.
19+
20+
### Control Plane
21+
22+
A centralized component manages deployment data and provides gPRC API for connecting `piped`s as well as all web-functionalities of PipeCD such as
23+
authentication, showing deployment list/details, application list/details, delivery insights...
24+
25+
Control Plane contains the following components:
26+
- `server`: a service to provide api for piped, web and serve static assets for web.
27+
- `ops`: a service to provide administrative features for Control Plane owner like adding/managing projects.
28+
- `cache`: a redis cache service for caching internal data.
29+
- `datastore`: data storage for storing deployment, application data
30+
- this can be a fully-managed service such as `Firestore`, `Cloud SQL`...
31+
- or a self-managed such as `MySQL`
32+
- `filestore`: file storage for storing logs, application states
33+
- this can a fully-managed service such as `GCS`, `S3`...
34+
- or a self-managed service such as `Minio`
35+
36+
For more information, see [Architecture overview of Control Plane](../../user-guide/managing-controlplane/architecture-overview/).
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
title: "Contributing"
3+
linkTitle: "Contributing"
4+
weight: 1
5+
description: >
6+
This page describes how to contribute to PipeCD.
7+
---
8+
9+
PipeCD is an open source project that anyone in the community can use, improve, and enjoy. We'd love you to join us!
10+
11+
## Contributor License Agreement
12+
13+
Contributions to this project must be accompanied by a Contributor License Agreement ("CLA") described at [pipe-cd/pipecd/master/CLA.md](https://github.com/pipe-cd/pipecd/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.
14+
15+
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.
16+
17+
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/pipecd](https://github.com/pipe-cd/pipecd) repository_.
18+
19+
## Creating an issue
20+
21+
If you've found a problem, please create an issue in the [pipe-cd/pipecd](https://github.com/pipe-cd/pipecd/issues) repository.
22+
23+
## Creating a pull request
24+
25+
Look at our [help wanted issues](https://github.com/pipe-cd/pipecd/issues?q=is%3Aissue+is%3Aopen+label%3A"help+wanted") or our [good first issues](https://github.com/pipe-cd/pipecd/issues?q=is%3Aissue+is%3Aopen+label%3A"good+first+issue") for finding some good issues for your first pull request.
26+
27+
### Small tips
28+
29+
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.
30+
31+
## Code reviews
32+
33+
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.
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
title: "Development"
3+
linkTitle: "Development"
4+
weight: 2
5+
description: >
6+
This page describes how to build, test PipeCD source code at your local environment.
7+
---
8+
9+
## Prerequisites
10+
11+
- [Go 1.19](https://go.dev/)
12+
- [Docker Decktop](https://www.docker.com/products/docker-desktop/)
13+
- [kind](https://kind.sigs.k8s.io/docs/user/quick-start/#installation) (If you want to run Control Plane locally)
14+
15+
## Repositories
16+
- [pipecd](https://github.com/pipe-cd/pipecd): contains all source code and documentation of PipeCD project.
17+
- [examples](https://github.com/pipe-cd/examples): contains various generated examples to demonstrate how to use PipeCD.
18+
19+
## Commands
20+
21+
- `make build/go`: builds all go modules including pipecd, piped, pipectl.
22+
- `make build/web`: builds the static files for web.
23+
24+
- `make test/go`: runs all unit tests of go modules.
25+
- `make test/web`: runs all unit tests of web.
26+
- `make test/integration`: runs integration tests.
27+
28+
- `make run/piped`: runs Piped locally (for more information, see [here](#how-to-run-piped-agent-locally)).
29+
- `make run/site`: runs PipeCD site locally (requires [hugo](https://github.com/gohugoio/hugo) with `_extended` version `0.92.1` or later to be installed).
30+
31+
- `make gen/code`: generate Go and Typescript code from protos and mock configs. You need to run it if you modified any proto or mock definition files.
32+
33+
For the full list of available commands, please see the Makefile at the root of repository.
34+
35+
## How to run Control Plane locally
36+
37+
1. Start running a Kubernetes cluster
38+
39+
``` console
40+
make kind-up
41+
```
42+
43+
Once it is no longer used, run `make kind-down` to delete it.
44+
45+
2. Install Control Plane into the local cluster
46+
47+
``` console
48+
make run/pipecd
49+
```
50+
51+
Once all components are running up, use `kubectl port-forward` to expose the installed Control Plane on your localhost:
52+
53+
``` console
54+
kubectl -n pipecd port-forward svc/pipecd 8080
55+
```
56+
57+
3. Access to the local Control Plane web console
58+
59+
Point your web browser to [http://localhost:8080](http://localhost:8080) to login with the configured static admin account: project = `quickstart`, username = `hello-pipecd`, password = `hello-pipecd`.
60+
61+
## How to run Piped agent locally
62+
63+
1. Prepare the piped configuration file `piped-config.yaml`
64+
65+
2. Ensure that your `kube-context` is connecting to the right kubernetes cluster
66+
67+
3. Run the following command to start running `piped` (if you want to connect Piped to a locally running Control Plane, add `INSECURE=true` option)
68+
69+
``` console
70+
make run/piped CONFIG_FILE=piped-config.yaml
71+
```
72+
73+
## Docs and workaround with docs
74+
75+
PipeCD official site contains multiple versions of documentation, all placed under the `/docs/content/en` directory, which are:
76+
- `/docs`: stable version docs, usually synced with the latest released version docs.
77+
- `/docs-dev`: experimental version docs, contains docs for not yet released features or changes.
78+
- `/docs-v0.x.x`: contains docs for specified version family (a version family is all versions which in the same major release).
79+
80+
Basically, we have two simple rules:
81+
- Do not touch to the `/docs` content directly.
82+
- Keep stable docs version synced with the latest released docs version.
83+
84+
Here are the flow of docs contribution regard some known scenarios:
85+
1. Update docs that are related to a specified version (which is not the latest released version):
86+
In such case, update the docs under `/docs-v0.x.x` is enough.
87+
2. Update docs for not yet released features or changes:
88+
In such case, update the docs under `/docs-dev` is enough.
89+
3. Update docs that are related to the latest released docs version:
90+
- Change the docs' content that fixes the issue under `/docs-dev` and `/docs-v0.x.x`, they share the same file structure so you should find the right files in both directories.
91+
- Use `make gen/stable-docs` command to sync the latest released version docs under `/docs-v0.x.x` to `/docs`
92+
93+
If you find any issues related to the docs, we're happy to accept your help.

0 commit comments

Comments
 (0)