test(charts): add integration scenarios and regression tests
Phase 4: Create integration tests for real-world scenarios and regression
tests to lock down all default values.
New test files:
- integration_common_configs_test.yaml: 12 real-world deployment scenarios
including DLNA home server, secure production, Prometheus monitoring,
IPv6-only/dual-stack, cloud providers (AWS IRSA, GCP WI), air-gapped,
minimal resource-constrained, Gateway API HTTPRoute (50+ tests)
- regression_defaults_test.yaml: Comprehensive verification of all default
values across all resources to prevent accidental changes. Covers
deployment, service, serviceAccount, persistence, probes, labels,
API versions, critical defaults (80+ tests)
Integration scenarios tested:
1. DLNA Home Media Server (hostNetwork, NodePort, NAS storage)
2. Secure Production (NetworkPolicy, security contexts, resources, ingress+TLS)
3. Kubernetes with Prometheus (metrics, ServiceMonitor, custom NetworkPolicy)
4. IPv6-only cluster (SingleStack IPv6)
5. Dual-stack networking (IPv4+IPv6, LoadBalancer)
6. Development environment (emptyDir, latest tag, debug logging)
7. High Availability attempt (multiple replicas, ReadWriteMany, pod anti-affinity)
8. AWS with IRSA (EKS role annotations, gp3 storage, NLB, ALB ingress)
9. GCP with Workload Identity (GKE service account annotations)
10. Air-gapped environment (private registry, restrictive NetworkPolicy)
11. Minimal resource-constrained (low CPU/memory limits, emptyDir)
12. Gateway API (HTTPRoute with multiple hostnames)
Regression tests lock down:
- All default values: replicas=1, revisionHistoryLimit=3, ClusterIP service,
port 8096, IfNotPresent pullPolicy, ClusterFirst dnsPolicy
- Persistence defaults: config 5Gi, media 25Gi, cache emptyDir
- Probe defaults: startup (tcpSocket, 0/10/30), liveness/readiness (httpGet)
- Feature flags: DLNA off, metrics off, NetworkPolicy off, ServiceMonitor off
- API versions and naming patterns
- Critical invariants that must never change
Total: 2 new test files, 130+ new test cases
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>