Skip to content

Commit c6f138a

Browse files
Merge branch 'master' into feat/add-dependabot-govulncheck
Signed-off-by: Mohammed Firdous <124298708+mohammedfirdouss@users.noreply.github.com>
2 parents 1f81585 + faa25da commit c6f138a

File tree

11 files changed

+333
-85
lines changed

11 files changed

+333
-85
lines changed

.github/workflows/first-time-contributor.yaml

Lines changed: 43 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -36,18 +36,49 @@ jobs:
3636
return;
3737
}
3838
39-
const body = [
40-
`👋 Hi @${prAuthor}, thanks for opening your first pull request to **PipeCD**!`,
41-
'',
42-
'Here are a few helpful resources to get started:',
43-
'- Contributing guide: `CONTRIBUTING.md`',
44-
'- Common commands:',
45-
' - `make test`',
46-
' - `make lint`',
47-
'',
48-
'If you have any questions, feel free to ask in this PR.',
49-
'Thanks for contributing!'
50-
].join('\n');
39+
const body = `👋 Hi @${prAuthor}, welcome to **PipeCD** and thanks for opening your first pull request!
40+
41+
We’re really happy to have you here 🚀
42+
Before your PR gets merged, please check a few important things below.
43+
44+
---
45+
46+
### Helpful resources
47+
- Contributing guide: https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md
48+
- Development setup: https://github.com/pipe-cd/pipecd/blob/master/CONTRIBUTING.md#development
49+
50+
---
51+
52+
### DCO Sign-off
53+
All commits must include a \`Signed-off-by\` line to comply with the Developer Certificate of Origin (DCO).
54+
55+
For the last commit:
56+
\`\`\`bash
57+
git commit --amend --signoff
58+
git push --force-with-lease
59+
\`\`\`
60+
61+
For multiple commits:
62+
\`\`\`bash
63+
git rebase --signoff origin/master
64+
git push --force-with-lease
65+
\`\`\`
66+
67+
---
68+
69+
### Run checks locally
70+
\`\`\`bash
71+
make check
72+
\`\`\`
73+
74+
---
75+
76+
### 💬 Need help?
77+
Feel free to ask in this PR or join **#pipecd** on CNCF Slack:
78+
https://communityinviter.com/apps/cloud-native/cncf
79+
80+
Thanks for contributing to PipeCD! ❤️
81+
`;
5182
5283
await github.rest.issues.createComment({
5384
owner,

CODEOWNERS

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,3 +3,6 @@
33

44
# Web dir
55
/web/ @pipe-cd/pipecd-approvers-web @pipe-cd/pipecd-approvers
6+
7+
# Docs dir
8+
/docs/ @pipe-cd/pipecd-approvers-docs @pipe-cd/pipecd-approvers

MAINTAINERS.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
| Yoshiki Fujikane | [@ffjlabo](https://github.com/ffjlabo) | ffjlabo@gmail.com |
88
| Shinnosuke Sawada-Dazai | [@Warashi](https://github.com/Warashi) | shin@warashi.dev |
99
| Tetsuya Kikuchi | [@t-kikuc](https://github.com/t-kikuc) | tkikuchi07f@gmail.com |
10+
| Eeshaan Sawant | [eeshaanSA](https://github.com/eeshaanSA) | eeshaans1@gmail.com |
1011

1112

1213
E-mail addresses are expected to be used for reporting security issues. ref [SECURITY.md](./SECURITY.md) \

docs/config.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,6 @@ defaultContentLanguageInSubdir = false
1616
# Useful when translating.
1717
enableMissingTranslationPlaceholders = true
1818

19-
disableKinds = ["taxonomy", "taxonomyTerm"]
20-
2119
# Highlighting config
2220
pygmentsCodeFences = true
2321
pygmentsUseClasses = false
Lines changed: 137 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,137 @@
1+
---
2+
date: 2026-01-15
3+
title: "How to set up a local development environment"
4+
linkTitle: "How to set up a local development environment"
5+
weight: 990
6+
author: Shivansh Sahu ([@shivansh-gohem](https://github.com/shivansh-gohem))
7+
categories: ["Tutorial", "Contributing"]
8+
tags: ["Local Development", "Go", "Kubernetes", "Dev Setup"]
9+
---
10+
11+
12+
## Why do you need a Local Development Environment?
13+
14+
If you plan to contribute code, fix bugs, or add new plugins to PipeCD, you should run the control plane and Piped agent directly from the source code. This local development setup lets you test your Go changes live before submitting a pull request.
15+
16+
This guide walks through building and running the components from source so you can iterate quickly and confidently.
17+
18+
**Estimated setup time: 20–30 minutes**
19+
20+
## Prerequisites
21+
22+
Make sure you have the following installed and configured:
23+
24+
- **Go** (v1.21 or higher)
25+
- **Docker**
26+
- **kubectl**
27+
- **Kind** (required to create the local cluster)
28+
- **Node.js and Yarn** (required to build the web UI)
29+
- **A fork of the PipeCD repository**
30+
31+
To contribute to PipeCD, we recommend setting up a fork:
32+
33+
1. Fork `pipe-cd/pipecd` on GitHub.
34+
2. Clone your fork locally:
35+
```bash
36+
git clone https://github.com/<YOUR_USERNAME>/pipecd.git
37+
cd pipecd
38+
```
39+
## 1. Prepare and Start the Local Cluster
40+
41+
This step prepares a local Kubernetes cluster and container registry required for running the PipeCD control plane locally.
42+
43+
### Update dependencies
44+
45+
Run these commands to ensure your local Go modules and web dependencies are up to date. Starting the environment may fail if these are outdated.
46+
```bash
47+
make update/go-deps
48+
make update/web-deps
49+
```
50+
51+
### Start local registry and cluster
52+
53+
A helper command starts a local kind cluster and a container registry. This command also automatically creates the `pipecd` namespace where the components will run.
54+
```bash
55+
make up/local-cluster
56+
```
57+
After the cluster starts, export the kubeconfig to ensure kubectl can communicate with it:
58+
59+
```bash
60+
kind export kubeconfig --name pipecd
61+
```
62+
## 2. Run the PipeCD Control Plane (from source)
63+
64+
The control plane provides the web UI, API, and metadata storage. Running it from source ensures you are testing your latest changes.
65+
66+
### Start the control plane
67+
68+
This command compiles the Go code, builds the web assets, and starts the control plane server locally.
69+
```bash
70+
make run/pipecd
71+
```
72+
### Access the UI
73+
74+
Once the control plane is running, forward the port to access the UI from your browser. Open a new terminal and run:
75+
```bash
76+
kubectl port-forward -n pipecd svc/pipecd 8080
77+
```
78+
Then open your browser:
79+
80+
- URL: <http://localhost:8080?project=quickstart>
81+
- Username: `hello-pipecd`
82+
- Password: `hello-pipecd`
83+
84+
## 3. Configure and Run the Piped Agent (from source)
85+
86+
The Piped agent connects the control plane to your local Kubernetes cluster. You will run this agent from source as well.
87+
88+
### Register Piped in the UI
89+
90+
1. Go to **Settings → Piped** (or open <http://localhost:8080/settings/piped?project=quickstart>).
91+
2. Click **+ ADD**, give it a name (for example, `dev`), and save.
92+
3. **Crucial step:** Copy the generated **Piped ID** and **Base64 encoded key** immediately.
93+
94+
### Create the Piped configuration
95+
96+
Create a file named `piped-config.yaml` in your repo root:
97+
```yaml
98+
apiVersion: pipecd.dev/v1beta1
99+
kind: Piped
100+
spec:
101+
projectID: quickstart
102+
# Replace here with your piped ID.
103+
pipedID: <COPIED_PIPED_ID>
104+
# Base64 encoded string of the piped private key.
105+
# Replace here with your piped base64 key.
106+
pipedKeyData: <COPIED_ENCODED_PIPED_KEY>
107+
apiAddress: localhost:8080
108+
repositories:
109+
- repoId: example
110+
remote: git@github.com:pipe-cd/examples.git
111+
branch: master
112+
syncInterval: 1m
113+
platformProviders:
114+
- name: example-kubernetes
115+
type: KUBERNETES
116+
config:
117+
# Replace here with your kubeconfig absolute file path.
118+
kubeConfigPath: /path/to/.kube/config
119+
```
120+
121+
### Run Piped from source
122+
123+
Use your local code and the config file you just created:
124+
```bash
125+
make run/piped CONFIG_FILE=piped-config.yaml INSECURE=true
126+
```
127+
128+
## Cleaning Up
129+
130+
To stop and remove the local cluster and registry when you are done, run:
131+
132+
```bash
133+
make down/local-cluster
134+
```
135+
## Next Steps
136+
137+
Once Piped starts and shows as connected in the UI, your local development environment is ready. You can now build and test your local changes.

docs/content/en/docs-v1.0.x/concepts/_index.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -14,13 +14,15 @@ Component Architecture
1414

1515
### Control Plane
1616

17-
The Control Plane is the centralized management service of PipeCD. It coordinates all activities between users, projects, and piped instances.
17+
The Control Plane is the centralized management service of PipeCD. It coordinates all activities between users, projects, and `piped` instances.
1818

1919
The Control Plane remains the backbone of the system but is now fully plugin-aware. Instead of directly handling deployment logic for specific platforms, it interacts with `piped` agents that run plugin binaries, allowing the Control Plane to manage deployments across any platform supported by plugins.
2020

21-
### Piped
21+
For more detailed information about Control Plane architecture and components, see [Architecture overview of Control Plane](../user-guide/managing-controlplane/architecture-overview/).
2222

23-
'`piped`' is a binary, agent component responsible for executing deployments in PipeCD. `Piped` now adopts **plugin-based** **architecture**, transforming from a single-purpose executor into a lightweight runtime capable of runnning any deployment logic defined by plugins. The `piped` component is designed to be stateless.
23+
### piped
24+
25+
`piped` is a binary, agent component responsible for executing deployments in PipeCD. `piped` now adopts **plugin-based** **architecture**, transforming from a single-purpose executor into a lightweight runtime capable of running any deployment logic defined by plugins. The `piped` component is designed to be stateless.
2426

2527
### Plugins
2628

@@ -48,7 +50,7 @@ Projects use role-based access control (RBAC) to manage permissions:
4850

4951
- Viewer – can view applications and deployments within the project.
5052
- Editor – includes Viewer permissions and can perform actions that modify state, such as triggering or cancelling deployments.
51-
- Admin – includes Editor permissions and can manage project settings, members, and associated piped instances.
53+
- Admin – includes Editor permissions and can manage project settings, members, and associated `piped` instances.
5254

5355
### Application
5456

@@ -82,6 +84,4 @@ Depending on your deployment workflow, you can choose from one of the following
8284

8385
- Pipeline Sync: A customizable, step-by-step sync process that follows the pipeline you define in your application configuration file. Use Pipeline Sync when you need more control over how updates are rolled out.
8486

85-
- Auto Sync: When you trigger a sync without specifying a strategy, piped automatically selects the most appropriate method based on your application configuration.
86-
87-
Git stored configuration.
87+
- Auto Sync: When you trigger a sync without specifying a strategy, `piped` automatically selects the most appropriate method based on your application configuration.

docs/content/en/docs-v1.0.x/contribution-guidelines/architectural-overview.md

Lines changed: 0 additions & 36 deletions
This file was deleted.

docs/content/en/docs-v1.0.x/migrating-from-v0-to-v1/_index.md

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
11
---
2-
title: "Migrate to PipeCD V1"
3-
linkTitle: "Migrate to PipeCD V1"
2+
title: "Migrate to PipeCD v1"
3+
linkTitle: "Migrate to PipeCD v1"
44
weight: 90
55
description: >
6-
Documentation on migrating your application from PipeCD V0 to V1
6+
Documentation on migrating your application from PipeCD v0 to v1
77
---
88

9-
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.
9+
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.
1010

11-
Incase you are using PipeCD V0, follow the setps on this page to migrate to **PipeCD V1**.
11+
In case you are using PipeCD v0, follow the steps on this page to migrate to **PipeCD v1**.
1212

1313
## Overview
1414

15-
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.
15+
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.
1616

17-
Migration from v0 is designed to be **safe** and **incremental**, allowing you to switch to PipeCD V1 with minimal disruption.
17+
Migration from v0 is designed to be **safe** and **incremental**, allowing you to switch to PipeCD v1 with minimal disruption.
1818

1919
## Components
2020

@@ -82,7 +82,7 @@ pipectl version
8282
>
8383
>You can check all releases on the [Pipecd Releases](https://github.com/pipe-cd/pipecd/releases) page.
8484
85-
For more options of installing pipectl, checkout installing pipectl(link)
85+
For more options of installing pipectl, check out the [installing pipectl](https://pipecd.dev/docs-v1.0.x/user-guide/command-line-tool/) guide.
8686

8787
## 2. Convert Application Configurations to v1 Format
8888

@@ -99,7 +99,7 @@ Or specify an entire directory:
9999
pipectl migrate application-config --dirs=path/to/apps/
100100
```
101101

102-
Here is an example for a simple app.pipecd.yaml file which demonstrates a kubernetes deployment and simulates a 30s wait:
102+
Here is an example for a simple app.pipecd.yaml file which demonstrates a Kubernetes deployment and simulates a 1m wait:
103103

104104
```yaml
105105
apiVersion: pipecd.dev/v1beta1
@@ -137,7 +137,7 @@ You’ll need an API key with write permission. Check:
137137

138138
- [Generating an API key](https://pipecd.dev/docs/user-guide/command-line-tool/#authentication)
139139

140-
After obtaining your API key, Run:
140+
After obtaining your API key, run:
141141

142142
```bash
143143
pipectl migrate database \
@@ -156,7 +156,7 @@ In pipedv1, **platform providers** have been replaced by **plugins**. Each plugi
156156

157157
### Example (Old piped config)
158158

159-
Your exisiting `piped` config may look similar to the following:
159+
Your existing `piped` config may look similar to the following:
160160

161161
```yaml
162162
apiVersion: pipecd.dev/v1beta1
@@ -274,7 +274,7 @@ If your Control Plane is running locally, append the `--insecure=true` flag to s
274274

275275
### Option 3 - Run `pipedv1` as a Container
276276

277-
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.
277+
In addition 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.
278278

279279
A prebuilt container image of `pipedv1` is available on GitHub Container Registry:
280280

@@ -290,7 +290,7 @@ docker pull ghcr.io/pipe-cd/pipedv1-exp:<version>
290290

291291
## Want to switch back?
292292

293-
If you need to roll back to using PipeCD V0, you can do so safely at any time.
293+
If you need to roll back to using PipeCD v0, you can do so safely at any time.
294294

295295
Simply **stop** the running `pipedv1` instance, then **start** the `pipedv0` service as you normally would.
296296

0 commit comments

Comments
 (0)