Commit Graph
5 Commits
  • ci(release): format release notes with changelog and emojis
    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>
  • test(deployment): add revisionHistoryLimit tests and deployment notes
    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>
  • feat(deployment): add revisionHistoryLimit parameter for rollback history control
    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>
  • test(probes): add startup probe tests and deployment notes
    Add helm-unittest tests for startup probe:
    - Default configuration verification (tcpSocket, timing)
    - Custom timing parameters (initialDelaySeconds, periodSeconds, failureThreshold)
    - Alternative probe types (httpGet)
    - Custom port support
    - Timeout window calculation
    
    Add NOTES.txt with startup probe information:
    - Display max startup time calculation
    - Explain startup probe purpose for large libraries
    - Warning for very long startup timeouts
    
    Tests ensure startup probe works correctly for slow initial startup scenarios.
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Signed-off-by: Aleksei Sviridkin <f@lex.la>
  • feat(probes): add startup probe for handling slow initial startup
    Add startupProbe to give Jellyfin sufficient time to start, especially
    with large media libraries or slow storage. This prevents Kubernetes
    from killing the pod during initial startup phase.
    
    Changes:
    - Add startupProbe configuration in values.yaml with sensible defaults
      - failureThreshold: 30 (allows up to 5 minutes for startup)
      - periodSeconds: 10
      - Uses tcpSocket check on http port
    - Update deployment.yaml to include startupProbe from values
    - Bump chart version 2.5.0 -> 2.5.1
    - Add changelog annotation for Artifact Hub
    
    Benefits:
    - Prevents pod restarts during slow initial startup (large media libraries)
    - Liveness and readiness probes remain responsive after successful startup
    - Fully configurable and can be disabled by setting startupProbe: null
    - No breaking changes, backward compatible
    
    The startup probe gives Jellyfin up to 5 minutes (30 attempts * 10 seconds)
    to complete initialization. After the first success, liveness and readiness
    probes take over with their normal timing.
    
    Co-Authored-By: Claude <noreply@anthropic.com>
    Signed-off-by: Aleksei Sviridkin <f@lex.la>