Skip to content

feat(helm): add initial Helm chart and CI workflow#3719

Open
stigglor wants to merge 5 commits into
mainfrom
feat/helm
Open

feat(helm): add initial Helm chart and CI workflow#3719
stigglor wants to merge 5 commits into
mainfrom
feat/helm

Conversation

@stigglor

Copy link
Copy Markdown

What

Adds an initial (templated) Helm chart under helm/ for deploying Logflare to Kubernetes, plus a Helm Chart GitHub Actions workflow to validate chart changes.

Why

Gives us a versioned, testable deployment artifact for Kubernetes and enforces basic quality gates so chart changes can't merge broken or without a version bump.

Workflow behavior

Runs only on pull requests, and only when the diff touches helm/**:

  • Installs Helm (azure/setup-helm) and the helm-unittest plugin
  • helm lint the chart
  • Runs unit tests (helm unittest -f '*_test.yaml' helm)
  • Renders the chart with default values (helm template helm)
  • Fails if version in helm/Chart.yaml has not been bumped above the base branch (skips this check when no chart exists on the base yet)

@stigglor stigglor changed the title ci(helm): add initial Helm chart and CI workflow feat(helm): add initial Helm chart and CI workflow Jul 21, 2026
Ziinc and others added 3 commits July 22, 2026 20:47
Add a templated Helm chart under helm/ for deploying Logflare to
Kubernetes, along with a GitHub Actions workflow that gates chart
changes on pull requests.

The workflow runs only on PRs that touch helm/**, and it:
- installs Helm and the helm-unittest plugin
- lints the chart
- runs the chart unit tests
- renders the chart with default values via helm template
- verifies the chart version in Chart.yaml has been bumped above main
@Ziinc
Ziinc marked this pull request as ready for review July 22, 2026 14:45
uses: azure/setup-helm@v4

- name: Install helm-unittest plugin
run: helm plugin install --verify=false https://github.com/helm-unittest/helm-unittest

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.

🟡 Severity: MEDIUM

The --verify=false flag explicitly disables cryptographic signature verification when downloading the helm-unittest plugin from GitHub. If the upstream repository or release artifacts are compromised, a malicious plugin binary would be installed and executed with full CI runner privileges without any integrity check.
Helpful? Add 👍 / 👎

💡 Fix Suggestion

Suggestion: Remove the --verify=false flag from the helm plugin install command so that Helm performs its default cryptographic signature verification when downloading and installing the helm-unittest plugin. This ensures the integrity of the plugin binary is validated before execution in the CI runner.

⚠️ Experimental Feature: This code suggestion is automatically generated. Please review carefully.

Suggested change
run: helm plugin install --verify=false https://github.com/helm-unittest/helm-unittest
run: helm plugin install https://github.com/helm-unittest/helm-unittest

Comment thread helm/templates/secret.yaml Outdated
fetch-depth: 0

- name: Set up Helm
uses: azure/setup-helm@v4

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.

🟡 Severity: MEDIUM

The azure/setup-helm action is pinned to the mutable tag v4 rather than an immutable full-length commit SHA. If the v4 tag is moved — e.g. after a supply chain compromise of the upstream repo — a malicious action version would execute with full CI runner privileges and access to all workflow secrets.
Helpful? Add 👍 / 👎

💡 Fix Suggestion

Suggestion: Pin the azure/setup-helm action to an immutable full-length commit SHA instead of the mutable v4 tag. This prevents a tag move or supply-chain compromise from silently replacing the action with malicious code. The current commit SHA behind the v4 tag is 1a275c3b69536ee54be43f2070a358922e12c8d4. Keep the # v4 comment so the human-readable version is still visible. Additionally, note that actions/checkout@v6 on line 17 has the same problem and should also be pinned to its immutable SHA.

⚠️ Experimental Feature: This code suggestion is automatically generated. Please review carefully.

Suggested change
uses: azure/setup-helm@v4
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants