Compare commits

...
12 Commits
8 changed files with 4 additions and 298 deletions

No files matched your search

-2
View File
@@ -1,2 +0,0 @@
owner: jellyfin
release-name-template: "{{ .Name }}-{{ .Version }}"
-13
View File
@@ -1,13 +0,0 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": ["github>jellyfin/.github//renovate-presets/default"],
"customManagers": [
{
"customType": "regex",
"fileMatch": ["charts/jellyfin/Chart.yaml"],
"matchStrings": ["appVersion: (?<currentValue>.*?)\\n"],
"datasourceTemplate": "docker",
"depNameTemplate": "jellyfin/jellyfin"
}
]
}
-78
View File
@@ -1,78 +0,0 @@
name: Bump Helm Chart Version
on:
push:
branches:
- main
workflow_dispatch:
inputs:
jellyfin_version:
description: 'Application version to set in Chart.yaml'
required: true
default: '1.0.0'
jobs:
bump-version:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
persist-credentials: false
- name: Set up Python
uses: actions/setup-python@e797f83bcb11b83ae66e0230d6156d7c80228e7c # v6
with:
python-version: 3.x
- name: Bump chart version and set appVersion
id: bump_version
run: |
# Read the current version from the Chart.yaml
current_version=$(grep '^version:' charts/jellyfin/Chart.yaml | awk '{print $2}')
echo "Current version: $current_version"
# Split the version by dot and increment the minor version
major=$(echo "$current_version" | cut -d '.' -f 1)
minor=$(echo "$current_version" | cut -d '.' -f 2)
patch=$(echo "$current_version" | cut -d '.' -f 3)
new_version="$major.$((minor+1)).0"
echo "New chart version: $new_version"
# Get the app version passed as an input
jellyfin_version="${{ github.event.inputs.jellyfin_version }}"
echo "Setting appVersion to: $jellyfin_version"
# Update the Chart.yaml with the new version and appVersion
sed -i "s/^version:.*/version: $new_version/" charts/jellyfin/Chart.yaml
sed -i "s/^appVersion:.*/appVersion: $jellyfin_version/" charts/jellyfin/Chart.yaml
# Output the new chart version for further use
echo "new_version=$new_version" >> $GITHUB_OUTPUT
- name: Commit changes
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git add charts/jellyfin/Chart.yaml
git commit -m "chore(jellyfin): Bump chart version to ${{ steps.bump_version.outputs.new_version }} and set appVersion to ${{ github.event.inputs.jellyfin_version }}"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.JF_BOT_TOKEN }}
- name: Create Git tag
id: create_tag
run: |
new_version="${{ steps.bump_version.outputs.new_version }}"
git tag "$new_version"
echo "Tag created: $new_version"
- name: Push changes
uses: ad-m/github-push-action@master
with:
github_token: ${{ secrets.JF_BOT_TOKEN }}
tags: true
-28
View File
@@ -1,28 +0,0 @@
name: Docs Update
on:
push:
branches:
- master
permissions:
contents: write
packages: write
jobs:
generate-docs:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
- name: Helm Docs GitHub Action
uses: losisin/helm-docs-github-action@a57fae5676e4c55a228ea654a1bcaec8dd3cf5b5 # v1.6.2
with:
git-push: true
git-commit-message: "docs(charts): :memo: write updated reademe"
- name: Push changes
run: git push
-159
View File
@@ -1,159 +0,0 @@
name: Release
on:
push:
tags:
- '*'
permissions:
contents: write
packages: write
jobs:
release:
# depending on default permission settings for your org (contents being read-only or read-write for workloads), you will have to add permissions
# see: https://docs.github.com/en/actions/security-guides/automatic-token-authentication#modifying-the-permissions-for-the-github_token
permissions:
contents: write
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5
with:
fetch-depth: 0
- name: Configure Git
run: |
git config --global user.name "jellyfin-bot"
git config --global user.email "team@jellyfin.org"
- name: Install Helm
uses: azure/setup-helm@1a275c3b69536ee54be43f2070a358922e12c8d4 # v4
env:
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
uses: helm/chart-releaser-action@cae68fefc6b5f367a0275617c9f83181ba54714f # v1.7.0
env:
CR_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
with:
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"
+1 -1
View File
@@ -9,7 +9,7 @@ keywords:
- media - media
- self-hosted - self-hosted
version: 3.0.0 version: 3.0.0
appVersion: 10.11.2 appVersion: 10.11.5
annotations: annotations:
artifacthub.io/changes: | artifacthub.io/changes: |
- kind: deprecated - kind: deprecated
+2 -2
View File
@@ -1,6 +1,6 @@
# jellyfin # jellyfin
![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.11.2](https://img.shields.io/badge/AppVersion-10.11.2-informational?style=flat-square) ![Version: 3.0.0](https://img.shields.io/badge/Version-3.0.0-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 10.11.5](https://img.shields.io/badge/AppVersion-10.11.5-informational?style=flat-square)
A Helm chart for Jellyfin Media Server A Helm chart for Jellyfin Media Server
@@ -73,7 +73,7 @@ helm install my-jellyfin jellyfin/jellyfin -f values.yaml
| jellyfin.args | list | `[]` | Additional arguments for the entrypoint command. | | jellyfin.args | list | `[]` | Additional arguments for the entrypoint command. |
| jellyfin.command | list | `[]` | Custom command to use as container entrypoint. | | jellyfin.command | list | `[]` | Custom command to use as container entrypoint. |
| jellyfin.enableDLNA | bool | `false` | Enable DLNA. Requires host network. See: https://jellyfin.org/docs/general/networking/dlna.html | | jellyfin.enableDLNA | bool | `false` | Enable DLNA. Requires host network. See: https://jellyfin.org/docs/general/networking/dlna.html |
| jellyfin.env | list | `[]` | Additional environment variables for the container. Example: env: - name: JELLYFIN_CACHE_DIR value: /cache | | jellyfin.env | list | `[]` | Additional environment variables for the container. Example: Workaround for inotify limits (see Troubleshooting section in README) Example: env: - name: JELLYFIN_CACHE_DIR value: /cache |
| jellyfin.envFrom | list | `[]` | Load environment variables from ConfigMap or Secret. See: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables Example: envFrom: - configMapRef: name: jellyfin-config - secretRef: name: jellyfin-secrets | | jellyfin.envFrom | list | `[]` | Load environment variables from ConfigMap or Secret. See: https://kubernetes.io/docs/tasks/configure-pod-container/configure-pod-configmap/#configure-all-key-value-pairs-in-a-configmap-as-container-environment-variables Example: envFrom: - configMapRef: name: jellyfin-config - secretRef: name: jellyfin-secrets |
| livenessProbe | object | `{"httpGet":{"path":"/health","port":"http"},"initialDelaySeconds":10}` | Configure liveness probe for Jellyfin. This probe is disabled during startup (startup probe handles initial checks). Uses httpGet for compatibility with both IPv4 and IPv6. | | livenessProbe | object | `{"httpGet":{"path":"/health","port":"http"},"initialDelaySeconds":10}` | Configure liveness probe for Jellyfin. This probe is disabled during startup (startup probe handles initial checks). Uses httpGet for compatibility with both IPv4 and IPv6. |
| metrics | object | `{"enabled":false,"serviceMonitor":{"enabled":false,"interval":"30s","labels":{},"metricRelabelings":[],"namespace":"","path":"/metrics","port":8096,"relabelings":[],"scheme":"http","scrapeTimeout":"30s","targetLabels":[],"tlsConfig":{}}}` | Configuration for metrics collection and monitoring | | metrics | object | `{"enabled":false,"serviceMonitor":{"enabled":false,"interval":"30s","labels":{},"metricRelabelings":[],"namespace":"","path":"/metrics","port":8096,"relabelings":[],"scheme":"http","scrapeTimeout":"30s","targetLabels":[],"tlsConfig":{}}}` | Configuration for metrics collection and monitoring |
+1 -15
View File
@@ -124,27 +124,13 @@ HTTPRoute (Gateway API) is ENABLED:
Access Jellyfin via Gateway API at: Access Jellyfin via Gateway API at:
{{- if .Values.httpRoute.hostnames }} {{- if .Values.httpRoute.hostnames }}
{{- range .Values.httpRoute.hostnames }} {{- range .Values.httpRoute.hostnames }}
https://{{ . }}{{ (index $.Values.httpRoute.rules 0).matches 0 .path.value }} https://{{ . }}{{ with (index $.Values.httpRoute.rules 0) }}{{ with (index .matches 0) }}{{ .path.value }}{{ end }}{{ end }}
{{- end }} {{- end }}
{{- else }} {{- else }}
(Configure httpRoute.hostnames for external access) (Configure httpRoute.hostnames for external access)
{{- end }} {{- end }}
Note: Ensure your Gateway API CRDs are installed and Gateway is configured. Note: Ensure your Gateway API CRDs are installed and Gateway is configured.
{{- else if .Values.ingress.enabled }}
{{- 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 }} {{- end }}
{{- if .Values.networkPolicy.enabled }} {{- if .Values.networkPolicy.enabled }}