Merge branch 'master-vnext' into feature/add-network-policy
This commit is contained in:
commit
1cf3d1130c
6 files changed
+182
No files matched your search
@@ -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"
|
||||||
@@ -19,3 +19,5 @@ annotations:
|
|||||||
url: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
url: https://kubernetes.io/docs/concepts/services-networking/network-policies/
|
||||||
- kind: added
|
- kind: added
|
||||||
description: "Add NOTES.txt with deployment status and NetworkPolicy configuration summary"
|
description: "Add NOTES.txt with deployment status and NetworkPolicy configuration summary"
|
||||||
|
- kind: added
|
||||||
|
description: Add revisionHistoryLimit parameter to control rollback history retention (defaults to 3 instead of Kubernetes default 10)
|
||||||
@@ -86,3 +86,14 @@ Network Policy is ENABLED:
|
|||||||
Network Policy is DISABLED (default).
|
Network Policy is DISABLED (default).
|
||||||
To enable network isolation, set networkPolicy.enabled=true in your values.
|
To enable network isolation, set networkPolicy.enabled=true in your values.
|
||||||
{{- end }}
|
{{- 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
|
||||||
@@ -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: []
|
||||||
|
|||||||
Reference in new issue
Block a user