Aleksei SviridkinandClaude 9e5d0b8b2e 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>
9e5d0b8b2e · 2025-11-08 17:33:22 +03:00
166 Commits
2024-05-20 17:24:10 -06:00
2024-05-20 17:23:21 -06:00

Jellyfin Helm Charts Repository

This repository contains Helm charts for the jellyfin project.

Repository Structure

Each Helm chart is stored in its own directory. Each chart follows the standard Helm chart structure:

jellyfin-helm/
├── jellyfin/
│   ├── Chart.yaml
│   ├── values.yaml
│   ├── templates/
│   └── ...
├── chart2/
│   ├── Chart.yaml
│   ├── values.yaml
│   ├── templates/
│   └── ...
└── ...
  • Chart.yaml: Contains metadata about the chart (name, version, app version, etc.).
  • values.yaml: Default configuration values for the chart.
  • templates/: The Kubernetes resource templates (YAML files) that Helm uses to deploy the chart.

How to Use the Charts

1. Add this Repository

To use the charts in this repository, first add the repository to Helm:

helm repo add jellyfin https://jellyfin.github.io/jellyfin-helm
helm repo update

2. Install a Chart

To install a chart from this repository, use the following command:

helm install <release-name> jellyfin/<chart-name>

3. Customize Installation

You can customize the installation by passing in custom values via the --set flag or by using a values.yaml file:

helm install <release-name> jellyfin/<chart-name> --set key=value

or

helm install <release-name> jellyfin/<chart-name> -f custom-values.yaml

Contributing

Feel free to contribute to this repository by:

  • Submitting new charts.
  • Fixing bugs or issues.
  • Improving documentation.

To contribute, fork this repository, create a new branch, and submit a pull request with your changes.

License

This repository is licensed under the MIT License. See the LICENSE file for more details.

S
Description
Kubernetes Helm Chart for Jellyfin
Readme GPL-2.0
541 KiB
0 Stars 1 Watchers 0 Forks
Languages
Smarty 100%