Docs V1: Add plugin tutorial Chapter 2 - Setup, plugin types, and project scaffold - #7151
Docs V1: Add plugin tutorial Chapter 2 - Setup, plugin types, and project scaffold#7151rahulshendre wants to merge 7 commits into
Conversation
…t scaffold Signed-off-by: rahulshendre <rahulshendre789@gmail.com>
| - **Config** is configuration shared across the plugin, written in the `piped` configuration. | ||
| - **DeployTargetConfig** is configuration for a single deploy target, such as the connection details for a cluster. | ||
| - **ApplicationConfigSpec** is per-application configuration, such as the files an application deploys. |
There was a problem hiding this comment.
Could be better if we have example for each type config or link to the examples/next chapter examples
There was a problem hiding this comment.
thanks @khanhtc1202, I have linked the three config types to Chapter 3
Signed-off-by: rahulshendre <rahulshendre789@gmail.com>
✅ Deploy Preview for pipecd-site ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #7151 +/- ##
==========================================
+ Coverage 29.74% 35.98% +6.24%
==========================================
Files 601 100 -501
Lines 64408 8548 -55860
==========================================
- Hits 19158 3076 -16082
+ Misses 43758 5301 -38457
+ Partials 1492 171 -1321
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
There was a problem hiding this comment.
Pull request overview
Adds Chapter 2 to the Docs V1 “Creating a Plugin” tutorial, guiding readers through initializing a plugin Go module, adding the PipeCD plugin SDK, and understanding where their plugin fits in the SDK’s plugin-type model.
Changes:
- Introduces Chapter 2 documentation covering project setup and SDK installation.
- Explains SDK plugin type categories and summarizes the
DeploymentPlugininterface surface area.
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| `piped` does not define separate kinds of plugins on its own. For convenience, the SDK groups plugins by the interface they implement: | ||
|
|
||
| - **StagePlugin** provides stages that are useful during a deployment but has nothing of its own to deploy. The `wait` plugin, which pauses a pipeline for a set time, is a StagePlugin. | ||
| - **DeploymentPlugin** has something to deploy and syncs it. The `kubernetes` plugin is a DeploymentPlugin. A DeploymentPlugin also provides everything a StagePlugin does. | ||
| - **LivestatePlugin** reports the live state of deployed resources, so the web UI can show the difference between what is running and what is defined in Git. It is often implemented alongside a DeploymentPlugin. |
| - **DeployTargetConfig** is configuration for a single deploy target, such as the connection details for a cluster. | ||
| - **ApplicationConfigSpec** is per-application configuration, such as the files an application deploys. | ||
|
|
||
| The file plugin needs neither plugin-wide nor deploy-target configuration, so its Config and DeployTargetConfig are empty. You define all three types in the [next chapter](../chapter-03-config-types-and-empty-implementation/#define-the-configuration-types). |
There was a problem hiding this comment.
@rahulshendre can you work on the suggestions by copilot.
There was a problem hiding this comment.
@mohammedfirdouss, done
I have skipped making this change as we are progressively merging chapters, so it's better to keep the link there
Signed-off-by: rahulshendre <rahulshendre789@gmail.com>
What this PR does:
Adds Chapter 2 of the Creating a Plugin tutorial, which has sections: creating the project, adding the plugin SDK, and learning which plugin type you are building.
Why we need it:
2nd chapter of the tutorial
Which issue(s) this PR fixes:
Part of #6679
Does this PR introduce a user-facing change?: