pipecd icon indicating copy to clipboard operation
pipecd copied to clipboard

Add first pipedv1 example - Kubernetes simple app

Open shivansh-gohem opened this issue 1 month ago • 9 comments

Description

This is the first example for PipeCD v1 demonstrating the new plugin architecture.

As requested in issue #6266, I'm creating working examples to help users understand how to use pipedv1.

Changes

  • Added examples/pipedv1/kubernetes-simple/ directory with first pipedv1 example
  • Demonstrates new kind: Application format (vs old kind: KubernetesApp)
  • Shows kubernetes plugin configuration
  • Includes K8S_SYNC pipeline stage
  • Added comprehensive README explaining differences from piped v0
  • Validated YAML syntax and Kubernetes manifests

Files Added

  • .app.yaml - PipeCD v1 Application configuration
  • deployment.yaml - Kubernetes Deployment manifest
  • service.yaml - Kubernetes Service manifest
  • README.md - Documentation

Next Steps

Once reviewed, I can create additional examples for:

  • Canary deployments
  • Helm charts
  • Other plugins (terraform, cloudrun, lambda, ecs)

Addresses #6266

shivansh-gohem avatar Nov 02 '25 06:11 shivansh-gohem

Hi, @khanhtc1202 I've fixed the issues as requested:

Renamed file to app.pipecd.yaml (required suffix)

Fixed plugins format from list to map structure

Added proper kubernetes input configuration

I've validated the YAML and Kubernetes manifests locally. However, my environment experiences network timeouts when downloading PipeCD plugins from GitHub, which prevents completing full end-to-end testing with a live PipeCD v1 instance.

The fixes address your feedback. Please review and let me know if you'd like me to pursue further testing or if you have suggestions for the network issue.

shivansh-gohem avatar Nov 06 '25 18:11 shivansh-gohem

Hi, @Warashi , @khanhtc1202 , @eeshaanSA could you please review !!

shivansh-gohem avatar Nov 10 '25 16:11 shivansh-gohem

Done! Removed the old .app.yaml file. The PR now only includes app.pipecd.yaml with the correct format (plugins as map structure with proper suffix).

shivansh-gohem avatar Nov 12 '25 08:11 shivansh-gohem

Hey @shivansh-gohem. Thanks for this!

Quick question, did you try to deploy this example using PipeCD? Maybe using a local build?

eeshaanSA avatar Nov 14 '25 10:11 eeshaanSA

Hi @eeshaanSA! I attempted to test with a local PipeCD v1 setup following the quickstart guide. However, I encountered network timeouts when the piped agent tried to download the Kubernetes plugin from GitHub releases. This prevented me from completing the full end-to-end deployment test.

I've validated the YAML syntax and Kubernetes manifests locally to ensure correctness. If you have suggestions for testing in an environment with restricted external network access, I'd be happy to try again!

shivansh-gohem avatar Nov 14 '25 10:11 shivansh-gohem

Hi @eeshaanSA! Good news - I successfully tested this example with a local PipeCD v1 setup:

Testing Environment:

  • PipeCD v1.0.0-alpha1 control plane
  • Piped agent with Kubernetes plugin v0.3.0
  • kind cluster (local Kubernetes)

Results: ✅ Application registered successfully via PipeCD UI ✅ K8S_SYNC pipeline stage executed without errors ✅ Deployment and Service manifests applied correctly ✅ 2 nginx pods running (verified with kubectl get pods -n pipecd) ✅ Deployment status shows "SUCCESS" in PipeCD dashboard

The example works as expected with PipeCD v1! Previously had network issues downloading plugins, but resolved with stable connection.

Ready for your review!

shivansh-gohem avatar Nov 15 '25 11:11 shivansh-gohem

Hi @eeshaanSA! Good news - I successfully tested this example with a local PipeCD v1 setup:

Testing Environment:

  • PipeCD v1.0.0-alpha1 control plane
  • Piped agent with Kubernetes plugin v0.3.0
  • kind cluster (local Kubernetes)

Results: ✅ Application registered successfully via PipeCD UI ✅ K8S_SYNC pipeline stage executed without errors ✅ Deployment and Service manifests applied correctly ✅ 2 nginx pods running (verified with kubectl get pods -n pipecd) ✅ Deployment status shows "SUCCESS" in PipeCD dashboard

The example works as expected with PipeCD v1! Previously had network issues downloading plugins, but resolved with stable connection.

Ready for your review!

Sounds great, @shivansh-gohem! Can you share some screenshots of your deployment? So we know everything is working perfectly?

eeshaanSA avatar Nov 20 '25 11:11 eeshaanSA

@eeshaanSA Updated! Changes made:

  • ✅ Removed "Next Steps" section
  • ✅ Changed "platform provider" to "deploy target" throughout
  • ✅ Fixed wording: "directory" → "repository"

Here's the deployment screenshot from my testing - showing successful K8S_SYNC execution with PipeCD v1:

Screenshot 2025-11-15 164433

The deployment completed successfully:

  • ✅ Application registered via PipeCD UI
  • ✅ K8S_SYNC pipeline stage executed without errors
  • ✅ Both manifests (Deployment and Service) applied correctly
  • ✅ Deployment status shows "SUCCESS"

Ready for your review!

shivansh-gohem avatar Nov 20 '25 17:11 shivansh-gohem

@shivansh-gohem

https://github.com/pipe-cd/pipecd/pull/6353#issuecomment-3569971432

eeshaanSA avatar Nov 24 '25 10:11 eeshaanSA

Hi , @eeshaanSA @khanhtc1202 could you please review this PR

shivansh-gohem avatar Dec 11 '25 17:12 shivansh-gohem

Hey @shivansh-gohem, As mentioned, please take a look at my comment in the other PR that you have opened.

We appreciate the use of AI for contributions, but we cannot keep reviewing poorly filed PRs and commits, which are purely AI generated, and do not make sense.

As previously told, if you want to make quality contributions (like this PR), I highly encourage you to understand the working of PipeCD and its codebase first, because the examples you write will be seen and used directly by the users and adopters of PipeCD, and we would not want them to go wrong.

Thanks!

eeshaanSA avatar Dec 11 '25 17:12 eeshaanSA

Thanks for the clear feedback, @eeshaanSA. I understand your concern about AI-heavy PRs and I agree that some of my earlier ones were not up to the expected quality. For this PR I set up a full local PipeCD v1 environment, deployed the example, and verified the K8S_SYNC pipeline end-to-end to make sure the docs and example actually work. Going forward I’ll slow down, spend more time understanding the PipeCD architecture and codebase, and only open PRs that I’ve fully tested and can clearly justify, using AI only as a helper. I appreciate your patience and will keep improving the quality of my contributions.

shivansh-gohem avatar Dec 11 '25 17:12 shivansh-gohem