Automatically extract and format changelog from artifacthub.io/changes
annotations in Chart.yaml and update GitHub release notes.
Changes:
- Install yq for YAML parsing
- Add step to extract changelog from Chart.yaml
- Format changelog with emojis based on change kind (added, fixed, etc.)
- Build comprehensive release notes with:
- Chart and app versions
- Formatted changelog
- Installation and upgrade instructions
- Links to documentation
- Update release notes after chart-releaser creates the release
This addresses the issue where releases only contained "A Helm chart for
Jellyfin Media Server" without any information about what changed.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Add helm-unittest tests for revisionHistoryLimit:
- Default value (3) verification
- Custom values support (0, 1, 5, 100)
- Ability to disable revision history
Add NOTES.txt with revisionHistoryLimit information:
- Show configured revision history limit
- Warning when disabled (0)
- Note for minimal history (1)
- Rollback command example for normal values
This parameter controls how many old ReplicaSets are retained
for rollback purposes, reducing etcd storage usage.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Add revisionHistoryLimit parameter to control how many old ReplicaSets are
retained for rollback purposes, reducing etcd storage usage compared to
Kubernetes default of 10.
Changes:
- Add revisionHistoryLimit parameter in values.yaml (default: 3)
- Add revisionHistoryLimit to deployment.yaml spec
- Provide comprehensive documentation with recommendations
- Bump chart version 2.5.0 -> 2.5.1 (patch - minor enhancement)
- Add changelog annotation for Artifact Hub
Benefits:
- Reduce etcd storage usage (especially important in large clusters)
- Maintain reasonable rollback capability (3 previous versions)
- Allow customization based on deployment needs
- Can be set to null to use Kubernetes default (10)
Default rationale:
- 3 revisions provides sufficient rollback capability for most use cases
- Reduces cluster resource usage (etcd storage, API server load)
- Follows best practices from production Kubernetes deployments
- Users can override if they need more history
Example usage:
# Use default (3 revisions)
revisionHistoryLimit: 3
# Increase for critical deployments
revisionHistoryLimit: 10
# Use Kubernetes default (10)
revisionHistoryLimit: null
# Disable history (not recommended)
revisionHistoryLimit: 0
See: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#revision-history-limit
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Add helm-unittest tests for IPv6 and dual-stack Service configuration:
- Default behavior (no ipFamilyPolicy/ipFamilies set)
- SingleStack, PreferDualStack, RequireDualStack policies
- IPv4 only, IPv6 only configurations
- Dual-stack with IPv4 primary and IPv6 primary
- Combined policy and families configurations
Add NOTES.txt with IPv6/dual-stack information:
- Display configured IP family policy
- Show IP families list
- Warning when IPv6 is primary (probe compatibility note)
- Warning when IPv6 used without policy
Tests ensure IPv6 and dual-stack work correctly for all scenarios.
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Add dedicated cache volume configuration to reduce wear on SD cards and improve
performance by allowing cache to be stored on separate storage.
Changes:
- Add persistence.cache configuration in values.yaml with support for:
- PVC (default type when enabled)
- hostPath for direct host mount
- emptyDir (default when disabled)
- Add cache volume mount at /cache in deployment
- Add cache PersistentVolumeClaim template
- Support for existing PVC via existingClaim
- Configurable size (default 10Gi), accessMode, storageClass, and annotations
- Update Chart version from 2.5.0 to 2.5.1
- Add Artifact Hub changelog annotation
The cache volume is disabled by default to maintain backward compatibility.
Users can enable it via:
```yaml
persistence:
cache:
enabled: true
type: pvc
size: 10Gi
```
This addresses the use case mentioned in #62 where users want to avoid SD card
wear by storing cache on separate persistent storage.
Fixes: #62
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Change default health probes from tcpSocket to httpGet to fix issue #68
where pods fail to start in IPv6-only clusters due to incompatible health checks.
Changes:
- Change default livenessProbe and readinessProbe to use httpGet with /health endpoint
- Add comprehensive IPv6 and dual-stack configuration documentation
- Document ipFamilyPolicy options (SingleStack, PreferDualStack, RequireDualStack)
- Document ipFamilies configuration for IPv4-only, IPv6-only, and dual-stack setups
- Add IPv6 Configuration section to README with examples
- Update Chart version from 2.5.0 to 2.5.1
The httpGet probe works with both IPv4 and IPv6 out of the box, while tcpSocket
may fail in IPv6-only environments. Jellyfin's /health endpoint is specifically
designed for health checks and verifies both HTTP and database connectivity.
Fixes: #68
Co-Authored-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>