Skip to content

test: add unit and e2e tests to the helm chart#2233

Open
kevintijssen wants to merge 2 commits intosiderolabs:mainfrom
kevintijssen:feat/unittesting
Open

test: add unit and e2e tests to the helm chart#2233
kevintijssen wants to merge 2 commits intosiderolabs:mainfrom
kevintijssen:feat/unittesting

Conversation

@kevintijssen
Copy link
Member

@kevintijssen kevintijssen commented Jan 30, 2026

1

fix: unify helm chart services and ingresses, remove JSON schema

Merge the separate gRPC service and ingress into the main service using h2c (HTTP/2 cleartext), since the backend already demuxes HTTP and gRPC on the same port. Split out the Kubernetes proxy into its own service because it doesn't support h2c. Remove the dedicated gRPC GatewayAPI route. Add hostNetwork support for environments where NET_ADMIN is insufficient for WireGuard. Remove the JSON schema in favor of values file comments and validation template.

2

test: add unit and e2e tests to the helm chart

Add helm unit tests (via helm-unittest) covering services, ingresses, HTTPRoutes, secrets, PrometheusRules and ServiceAccounts. Add a helm-based e2e test workflow that deploys Omni on a Talos cluster with Traefik and etcd, runs integration tests including workload proxy, and verifies the full stack end-to-end. Add a configurable TestOptions struct to the workload proxy test to allow running with smaller scale in helm e2e.

@CLAassistant
Copy link

CLAassistant commented Jan 30, 2026

CLA assistant check
All committers have signed the CLA.

@talos-bot talos-bot moved this to In Review in Planning Jan 30, 2026
@utkuozdemir utkuozdemir self-assigned this Jan 30, 2026
@smira
Copy link
Member

smira commented Jan 30, 2026

@kevintijssen please make your org membership public

@kevintijssen
Copy link
Member Author

@kevintijssen please make your org membership public

Done

@smira smira changed the title feat: unittesting feat: helm chart unittesting Feb 3, 2026
@utkuozdemir utkuozdemir changed the title feat: helm chart unittesting test: add unit and e2e tests to the helm chart Feb 6, 2026
@utkuozdemir utkuozdemir requested a review from Copilot February 6, 2026 09:22
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR adds comprehensive testing infrastructure to the Omni Helm chart, including unit tests using helm-unittest and end-to-end tests using KUTTL. It also removes the values.schema.json file, which was reportedly causing issues.

Changes:

  • Added 7 helm-unittest test files covering ServiceAccount, Services, Secrets, PrometheusRule, Ingress, and HTTPRoute resources
  • Added complete KUTTL E2E test suite with 7 test steps validating full Omni deployment and functionality
  • Removed values.schema.json file (947 lines) to resolve breaking issues

Reviewed changes

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

Show a summary per file
File Description
deploy/helm/v2/omni/values.schema.json Removed schema file that was causing breaking issues
deploy/helm/v2/omni/tests/serviceaccount.yaml Unit tests for ServiceAccount creation, naming, annotations, and token automounting
deploy/helm/v2/omni/tests/service.yaml Unit tests for main, gRPC, metrics, and WireGuard services, plus ServiceMonitor
deploy/helm/v2/omni/tests/secret-etcd.yaml Unit tests for etcd encryption key secret creation and content validation
deploy/helm/v2/omni/tests/secret-config.yaml Unit tests for Omni configuration secret
deploy/helm/v2/omni/tests/prometheusrule.yaml Unit tests for PrometheusRule creation and configuration
deploy/helm/v2/omni/tests/ingress.yaml Unit tests for UI, gRPC, K8s proxy, and SideroLink API ingress resources
deploy/helm/v2/omni/tests/httproute.yaml Unit tests for Gateway API HTTPRoute resources
deploy/helm/e2e/kuttl-test.yaml KUTTL test suite configuration
deploy/helm/e2e/README.md Comprehensive documentation for E2E tests
deploy/helm/e2e/tests/01-omni/*.yaml E2E test steps: prerequisites, namespace, TLS cert, installation, deployment validation, SA key extraction, and functional testing
deploy/helm/e2e/_crds/.gitkeep Placeholder for CRDs directory
deploy/helm/e2e/_manifests/.gitkeep Placeholder for manifests directory

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@utkuozdemir
Copy link
Member

Closes #2278.

@github-project-automation github-project-automation bot moved this from In Review to Approved in Planning Feb 6, 2026
Merge the separate gRPC service and ingress into the main service using h2c (HTTP/2 cleartext), since the backend already demuxes HTTP and gRPC on the same port. Split out the Kubernetes proxy into its own service because it doesn't support h2c. Remove the dedicated gRPC GatewayAPI route. Add hostNetwork support for environments where NET_ADMIN is insufficient for WireGuard. Remove the JSON schema in favor of values file comments and validation template.

Signed-off-by: Kevin Tijssen <kevin.tijssen@siderolabs.com>
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Add helm unit tests (via helm-unittest) covering services, ingresses, HTTPRoutes, secrets, PrometheusRules and ServiceAccounts. Add a helm-based e2e test workflow that deploys Omni on a Talos cluster with Traefik and etcd, runs integration tests including workload proxy, and verifies the full stack end-to-end. Add a configurable TestOptions struct to the workload proxy test to allow running with smaller scale in helm e2e.

Signed-off-by: Kevin Tijssen <kevin.tijssen@siderolabs.com>
Signed-off-by: Utku Ozdemir <utku.ozdemir@siderolabs.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Status: Approved

Development

Successfully merging this pull request may close these issues.

5 participants