TestingOpsDocumentation

Kubernetes installation (manifests)

Install without Helm using rendered manifests

When Helm is not allowed in the cluster, render the chart once and apply the manifests with kubectl (or commit them to your GitOps repository).

kubectl create namespace testingops
# registry and application secrets: same as the Helm guide, step 1
helm template testingops deploy/helm/cunda -n testingops -f values.yaml > testingops.yaml
kubectl apply -n testingops -f testingops.yaml
kubectl -n testingops get pods -w

The rendered file contains, in apply order: the PVCs, the MinIO deployment and service (if enabled), the migration Job, the application Deployment and Service, and the Ingress.

Upgrade

Render again with the new image.tag, delete the previous migration job (jobs are immutable) and apply:

kubectl -n testingops delete job -l app.kubernetes.io/component=migrate
kubectl apply -n testingops -f testingops.yaml

Storage

The application PVC needs a StorageClass that can be re-attached on another node; MinIO (or an external S3 endpoint via TESTINGOPS_STORAGE_PROVIDER=s3) holds run evidence. See storage for the S3 variables.

Ingress

The chart renders an Ingress for the NGINX or Traefik controller (ingress.className). The controller must forward the Host header unchanged; the application rejects requests whose host does not match app.publicUrl.