Merge branch 'master-vnext' into feature/fix-initcontainers-naming

This commit is contained in:
Aleksei Sviridkin authored and GitHub committed 2025-11-08 04:11:52 +03:00 Unverified
commit 06ebafb6cf
6 files changed
+200

No files matched your search

+119
View File
@@ -32,9 +32,128 @@ jobs:
env: env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}" GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- name: Install yq
run: |
# renovate: datasource=github-releases depName=mikefarah/yq
YQ_VERSION="4.44.3"
wget -q https://github.com/mikefarah/yq/releases/download/v${YQ_VERSION}/yq_linux_amd64 -O yq
chmod +x yq
sudo mv yq /usr/local/bin/yq
yq --version
- name: Run chart-releaser - name: Run chart-releaser
uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0 uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0
env: env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}" CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with: with:
config: .github/cr.yaml config: .github/cr.yaml
- name: Extract chart metadata and format release notes
id: release-notes
run: |
CHART_PATH="charts/jellyfin"
CHART_NAME=$(yq eval '.name' "${CHART_PATH}/Chart.yaml")
CHART_VERSION=$(yq eval '.version' "${CHART_PATH}/Chart.yaml")
APP_VERSION=$(yq eval '.appVersion' "${CHART_PATH}/Chart.yaml")
RELEASE_TAG="${CHART_NAME}-${CHART_VERSION}"
echo "tag=${RELEASE_TAG}" >> $GITHUB_OUTPUT
CHANGELOG_RAW=$(yq eval '.annotations."artifacthub.io/changes"' "${CHART_PATH}/Chart.yaml")
# Build changelog section
CHANGELOG_SECTION=""
if [ "$CHANGELOG_RAW" != "null" ] && [ -n "$CHANGELOG_RAW" ]; then
CHANGELOG_SECTION="## What's Changed
"
TEMP_FILE=$(mktemp)
SEPARATOR="|"
echo "$CHANGELOG_RAW" | yq eval ".[] | .kind + \"${SEPARATOR}\" + .description" - > "$TEMP_FILE"
while IFS="${SEPARATOR}" read -r kind description; do
case "$kind" in
"added")
emoji="✨"
label="Added"
;;
"changed")
emoji="🔄"
label="Changed"
;;
"deprecated")
emoji="⚠️"
label="Deprecated"
;;
"removed")
emoji="🗑️"
label="Removed"
;;
"fixed")
emoji="🐛"
label="Fixed"
;;
"security")
emoji="🔒"
label="Security"
;;
*)
emoji="📝"
label="Changed"
;;
esac
CHANGELOG_SECTION="${CHANGELOG_SECTION}- ${emoji} **${label}**: ${description}
"
done < "$TEMP_FILE"
rm -f "$TEMP_FILE"
CHANGELOG_SECTION="${CHANGELOG_SECTION}
"
fi
# Build release body
RELEASE_BODY="## Jellyfin Helm Chart v${CHART_VERSION}
**Application Version**: \`${APP_VERSION}\`
${CHANGELOG_SECTION}## Installation
Add the Jellyfin Helm repository:
\`\`\`bash
helm repo add jellyfin https://jellyfin.github.io/jellyfin-helm
helm repo update
\`\`\`
Install the chart:
\`\`\`bash
helm install my-jellyfin jellyfin/jellyfin --version ${CHART_VERSION}
\`\`\`
## Upgrade
\`\`\`bash
helm upgrade my-jellyfin jellyfin/jellyfin --version ${CHART_VERSION}
\`\`\`
---
📦 **Chart**: \`jellyfin\` v${CHART_VERSION}
🎬 **Jellyfin**: v${APP_VERSION}
📖 **Documentation**: https://github.com/jellyfin/jellyfin-helm/blob/main/charts/jellyfin/README.md
"
# Save to file
echo "$RELEASE_BODY" > release-notes.md
- name: Update release notes
env:
GH_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
run: |
RELEASE_TAG="${{ steps.release-notes.outputs.tag }}"
# Update release notes
gh release edit "$RELEASE_TAG" --notes-file release-notes.md
echo "✅ Updated release notes for $RELEASE_TAG"
+2
View File
@@ -18,3 +18,5 @@ annotations:
description: Fix extraInitContainers not working (was using wrong parameter name in template) description: Fix extraInitContainers not working (was using wrong parameter name in template)
- kind: added - kind: added
description: Add NOTES.txt with helpful post-installation information and deprecation warnings description: Add NOTES.txt with helpful post-installation information and deprecation warnings
- kind: added
description: Add revisionHistoryLimit parameter to control rollback history retention (defaults to 3 instead of Kubernetes default 10)
+29
View File
@@ -98,3 +98,32 @@ WARNING: Media persistence is disabled!
For more information and documentation: For more information and documentation:
Repository: https://github.com/jellyfin/jellyfin-helm Repository: https://github.com/jellyfin/jellyfin-helm
Jellyfin Docs: https://jellyfin.org/docs/ Jellyfin Docs: https://jellyfin.org/docs/
$ helm status {{ .Release.Name }}
$ helm get all {{ .Release.Name }}
{{- if .Values.ingress.enabled }}
Jellyfin is available via Ingress at:
{{- range .Values.ingress.hosts }}
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ .host }}{{ (index .paths 0).path }}
{{- end }}
{{- else }}
To access Jellyfin, you can use port-forwarding:
$ kubectl port-forward --namespace {{ .Release.Namespace }} svc/{{ include "jellyfin.fullname" . }} {{ .Values.service.port }}:{{ .Values.service.port }}
Then visit http://localhost:{{ .Values.service.port }} in your browser.
{{- end }}
Deployment Configuration:
Revision History Limit: {{ .Values.revisionHistoryLimit }}
{{- $limit := int .Values.revisionHistoryLimit }}
{{- if eq $limit 0 }}
⚠ WARNING: Revision history is disabled - rollback will not be possible!
{{- else if eq $limit 1 }}
⚠ NOTE: Only 1 revision kept - limited rollback capability
{{- else }}
You can rollback to any of the last {{ .Values.revisionHistoryLimit }} revisions using:
kubectl rollout undo deployment/{{ include "jellyfin.fullname" . }} --namespace {{ .Release.Namespace }}
{{- end }}
@@ -14,6 +14,9 @@ spec:
{{- toYaml . | trim | nindent 4 }} {{- toYaml . | trim | nindent 4 }}
{{- end }} {{- end }}
replicas: {{ .Values.replicaCount }} replicas: {{ .Values.replicaCount }}
{{- with .Values.revisionHistoryLimit }}
revisionHistoryLimit: {{ . }}
{{- end }}
selector: selector:
matchLabels: matchLabels:
{{- include "jellyfin.selectorLabels" . | nindent 6 }} {{- include "jellyfin.selectorLabels" . | nindent 6 }}
@@ -0,0 +1,41 @@
suite: test revision history limit
templates:
- deployment.yaml
tests:
- it: should set revisionHistoryLimit to 3 by default
asserts:
- equal:
path: spec.revisionHistoryLimit
value: 3
- it: should allow custom revisionHistoryLimit
set:
revisionHistoryLimit: 5
asserts:
- equal:
path: spec.revisionHistoryLimit
value: 5
- it: should allow revisionHistoryLimit of 0
set:
revisionHistoryLimit: 0
asserts:
- equal:
path: spec.revisionHistoryLimit
value: 0
- it: should allow revisionHistoryLimit of 1
set:
revisionHistoryLimit: 1
asserts:
- equal:
path: spec.revisionHistoryLimit
value: 1
- it: should allow large revisionHistoryLimit
set:
revisionHistoryLimit: 100
asserts:
- equal:
path: spec.revisionHistoryLimit
value: 100
+6
View File
@@ -4,6 +4,12 @@
# -- Number of Jellyfin replicas to start. Should be left at 1. # -- Number of Jellyfin replicas to start. Should be left at 1.
replicaCount: 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. # -- Image pull secrets to authenticate with private repositories.
# See: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ # See: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
imagePullSecrets: [] imagePullSecrets: []