Commit Graph
2 Commits
  • fix(charts): add automountServiceAccountToken and fix schema validations
    - Add automountServiceAccountToken to deployment.yaml template (was missing)
    - Fix image.repository pattern in schema to allow registry with port (e.g., registry.example.com:5000)
    - Add ExternalName to service.type enum in schema
    - Remove ExternalName tests from service_test.yaml and validation_mutual_exclusions_test.yaml (not implemented in template)
    - Fix integration test: change persistence.media.type from 'nfs' to 'hostPath' (nfs not supported)
    
    These fixes address test failures related to schema validation and missing template fields.
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Signed-off-by: Aleksei Sviridkin <f@lex.la>
  • 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>