Skip to content

Examples: Add v1 Kubernetes helm-local-chart example - #7280

Merged
mohammedfirdouss merged 1 commit into
pipe-cd:masterfrom
rahulshendre:examples-v1-k8s-helm-local-chart
Sep 3, 2026
Merged

Examples: Add v1 Kubernetes helm-local-chart example#7280
mohammedfirdouss merged 1 commit into
pipe-cd:masterfrom
rahulshendre:examples-v1-k8s-helm-local-chart

Conversation

@rahulshendre

Copy link
Copy Markdown
Contributor

What this PR does:
Adds the v1 Kubernetes helm-local-chart example under examples/v1/

Why we need it:
Adds examples to v1 directory

Which issue(s) this PR fixes:

Part of #6266

Does this PR introduce a user-facing change?:

  • How are users affected by this change:
  • Is this breaking change:
  • How to migrate (if breaking change):

Signed-off-by: rahulshendre <rahulshendre789@gmail.com>
Copilot AI lite review requested due to automatic review settings August 31, 2026 13:52
@rahulshendre
rahulshendre requested a review from a team as a code owner August 31, 2026 13:52
@netlify

netlify Bot commented Aug 31, 2026

Copy link
Copy Markdown

Deploy Preview for pipecd-site canceled.

Name Link
🔨 Latest commit cc9eb1d
🔍 Latest deploy log https://app.netlify.com/projects/pipecd-site/deploys/6a958705873e8d00086c0be8

@codecov

codecov Bot commented Aug 31, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 28.86%. Comparing base (20b475a) to head (cc9eb1d).

Additional details and impacted files
@@            Coverage Diff             @@
##           master    #7280      +/-   ##
==========================================
- Coverage   29.74%   28.86%   -0.89%     
==========================================
  Files         601      529      -72     
  Lines       64442    58381    -6061     
==========================================
- Hits        19166    16849    -2317     
+ Misses      43784    40166    -3618     
+ Partials     1492     1366     -126     
Flag Coverage Δ
. 23.58% <ø> (+0.01%) ⬆️
.-pkg-app-pipedv1-plugin-analysis 32.16% <ø> (ø)
.-pkg-app-pipedv1-plugin-ecs ?
.-pkg-app-pipedv1-plugin-kubernetes 58.39% <ø> (ø)
.-pkg-app-pipedv1-plugin-kubernetes_multicluster 59.62% <ø> (ø)
.-pkg-app-pipedv1-plugin-scriptrun ?
.-pkg-app-pipedv1-plugin-terraform ?
.-pkg-app-pipedv1-plugin-wait ?
.-pkg-app-pipedv1-plugin-waitapproval ?
.-pkg-plugin-sdk ?
.-tool-actions-gh-release ?
.-tool-actions-plan-preview 25.51% <ø> (ø)
.-tool-codegen-protoc-gen-auth ?

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.
  • 📦 JS Bundle Analysis: Save yourself from yourself by tracking and limiting bundle sizes in JS merges.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a PipeCD v1 (pipedv1 plugin-based) Kubernetes example showing how to deploy a Helm chart that lives in the same Git repository, under examples/v1/, aligning with the “Prepare examples for pipedv1” effort in #6266.

Changes:

  • Introduces a local Helm chart module (examples/v1/local-modules/helm-charts/helloworld) with standard templates.
  • Adds a v1 Application config and values for deploying that local chart via the Kubernetes plugin.
  • Provides Helm chart auxiliary files (NOTES, tests, helpers, ignore rules).

Reviewed changes

Copilot reviewed 12 out of 12 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
examples/v1/local-modules/helm-charts/helloworld/values.yaml Chart default values for the local “helloworld” Helm chart.
examples/v1/local-modules/helm-charts/helloworld/templates/tests/test-connection.yaml Helm test hook pod to validate service reachability.
examples/v1/local-modules/helm-charts/helloworld/templates/serviceaccount.yaml ServiceAccount template for the chart.
examples/v1/local-modules/helm-charts/helloworld/templates/service.yaml Service template exposing the app.
examples/v1/local-modules/helm-charts/helloworld/templates/NOTES.txt Post-install notes/instructions for accessing the app.
examples/v1/local-modules/helm-charts/helloworld/templates/ingress.yaml Optional Ingress template for exposing the service.
examples/v1/local-modules/helm-charts/helloworld/templates/deployment.yaml Deployment template for running the helloworld container.
examples/v1/local-modules/helm-charts/helloworld/templates/_helpers.tpl Shared helper templates (names, labels, service account name).
examples/v1/local-modules/helm-charts/helloworld/Chart.yaml Helm chart metadata for the local module chart.
examples/v1/local-modules/helm-charts/helloworld/.helmignore Files to ignore when packaging the chart.
examples/v1/kubernetes/helm-local-chart/values.yaml Example app-specific Helm values override for the deployment.
examples/v1/kubernetes/helm-local-chart/app.pipecd.yaml PipeCD v1 Application spec demonstrating helmChart.path usage.
Suppressed comments (1)

examples/v1/local-modules/helm-charts/helloworld/templates/NOTES.txt:20

  • The port-forward command forwards to pod port 80, but the container exposes port 9085 (named http) in templates/deployment.yaml. This makes the NOTES instructions fail when users follow them.
  kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 9085:80

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +7 to +10
image:
repository: gcr.io/pipecd/helloworld
pullPolicy: IfNotPresent

Comment on lines +35 to +38
- path: {{ . }}
backend:
serviceName: {{ $fullName }}
servicePort: {{ $svcPort }}
Comment on lines +57 to +63
{{- define "helloworld.serviceAccountName" -}}
{{- if .Values.serviceAccount.create -}}
{{ default (include "helloworld.fullname" .) .Values.serviceAccount.name }}
{{- else -}}
{{ default "default" .Values.serviceAccount.name }}
{{- end -}}
{{- end -}}
Comment on lines +4 to +8
{{- if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
apiVersion: networking.k8s.io/v1beta1
{{- else -}}
apiVersion: extensions/v1beta1
{{- end }}
echo http://$NODE_IP:$NODE_PORT
{{- else if contains "LoadBalancer" .Values.service.type }}
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "helloworld.fullname" . }}'
trigger:
onCommit:
paths:
- local-modules/helm-charts/helloworld/*

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

These are all from the upstream Helm chart scaffold, carried over as-is from the v0 example - this is a straight v0 -> v1 port.
The example deploys cleanly (image.tag comes from the app-level values.yaml, ingress is disabled by default)

@mohammedfirdouss
mohammedfirdouss merged commit dd0f5b4 into pipe-cd:master Sep 3, 2026
97 of 100 checks passed
@github-actions

github-actions Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor

Thank you for contributing to PipeCD, @rahulshendre! The changes in this pull request will be part of the upcoming release!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants