From 68ebc46dbdc5f28fa1351019aa617c506d36ba88 Mon Sep 17 00:00:00 2001 From: Aleksei Sviridkin Date: Thu, 6 Nov 2025 13:36:47 +0300 Subject: [PATCH] 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 Signed-off-by: Aleksei Sviridkin --- charts/jellyfin/Chart.yaml | 6 +++++- charts/jellyfin/templates/deployment.yaml | 3 +++ charts/jellyfin/values.yaml | 6 ++++++ 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/charts/jellyfin/Chart.yaml b/charts/jellyfin/Chart.yaml index 96a351b..5c24a48 100644 --- a/charts/jellyfin/Chart.yaml +++ b/charts/jellyfin/Chart.yaml @@ -8,5 +8,9 @@ keywords: - jellyfin - media - self-hosted -version: 2.5.0 +version: 2.5.1 appVersion: 10.11.2 +annotations: + artifacthub.io/changes: | + - kind: added + description: Add revisionHistoryLimit parameter to control rollback history retention (defaults to 3 instead of Kubernetes default 10) diff --git a/charts/jellyfin/templates/deployment.yaml b/charts/jellyfin/templates/deployment.yaml index c235001..0c4ea9a 100644 --- a/charts/jellyfin/templates/deployment.yaml +++ b/charts/jellyfin/templates/deployment.yaml @@ -14,6 +14,9 @@ spec: {{- toYaml . | trim | nindent 4 }} {{- end }} replicas: {{ .Values.replicaCount }} + {{- with .Values.revisionHistoryLimit }} + revisionHistoryLimit: {{ . }} + {{- end }} selector: matchLabels: {{- include "jellyfin.selectorLabels" . | nindent 6 }} diff --git a/charts/jellyfin/values.yaml b/charts/jellyfin/values.yaml index 068c0ef..9ea02d5 100644 --- a/charts/jellyfin/values.yaml +++ b/charts/jellyfin/values.yaml @@ -4,6 +4,12 @@ # -- Number of Jellyfin replicas to start. Should be left at 1. replicaCount: 1 +# -- Number of old ReplicaSets to retain for rollback history. +# Set to 0 to disable revision history (not recommended). +# If not specified, Kubernetes defaults to 10. +# See: https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#revision-history-limit +revisionHistoryLimit: 3 + # -- Image pull secrets to authenticate with private repositories. # See: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ imagePullSecrets: []