From 719051a010831ff94e9f98df13f4c368d9a3c805 Mon Sep 17 00:00:00 2001 From: Swordsteel Date: Sat, 23 Aug 2025 10:35:48 +0200 Subject: [PATCH] initialize heimdall --- .helmignore | 23 +++++++++++++ Chart.yaml | 6 ++++ templates/_helpers.tpl | 17 ++++++++++ templates/persistentvolumeclaims.yaml | 10 ++++++ templates/service.yaml | 20 ++++++++++++ templates/servicesvc-headless.yaml | 17 ++++++++++ templates/statefulset.yaml | 47 +++++++++++++++++++++++++++ values.yaml | 37 +++++++++++++++++++++ 8 files changed, 177 insertions(+) create mode 100644 .helmignore create mode 100644 Chart.yaml create mode 100644 templates/_helpers.tpl create mode 100644 templates/persistentvolumeclaims.yaml create mode 100644 templates/service.yaml create mode 100644 templates/servicesvc-headless.yaml create mode 100644 templates/statefulset.yaml create mode 100644 values.yaml diff --git a/.helmignore b/.helmignore new file mode 100644 index 0000000..0e8a0eb --- /dev/null +++ b/.helmignore @@ -0,0 +1,23 @@ +# Patterns to ignore when building packages. +# This supports shell glob matching, relative path matching, and +# negation (prefixed with !). Only one pattern per line. +.DS_Store +# Common VCS dirs +.git/ +.gitignore +.bzr/ +.bzrignore +.hg/ +.hgignore +.svn/ +# Common backup files +*.swp +*.bak +*.tmp +*.orig +*~ +# Various IDEs +.project +.idea/ +*.tmproj +.vscode/ diff --git a/Chart.yaml b/Chart.yaml new file mode 100644 index 0000000..4dc9548 --- /dev/null +++ b/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: heimdall +description: A Helm chart for Heimdall (linuxserver/heimdall) +type: application +version: 0.1.0 +appVersion: "2.7.4" diff --git a/templates/_helpers.tpl b/templates/_helpers.tpl new file mode 100644 index 0000000..6741ff6 --- /dev/null +++ b/templates/_helpers.tpl @@ -0,0 +1,17 @@ +{{/* +Return the name of the chart +*/}} +{{- define "heimdall.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" -}} +{{- end -}} + +{{/* +Return the full name of the release +*/}} +{{- define "heimdall.fullname" -}} +{{- if .Values.fullnameOverride -}} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" -}} +{{- else -}} +{{- printf "%s-%s" .Release.Name (include "heimdall.name" .) | trunc 63 | trimSuffix "-" -}} +{{- end -}} +{{- end -}} \ No newline at end of file diff --git a/templates/persistentvolumeclaims.yaml b/templates/persistentvolumeclaims.yaml new file mode 100644 index 0000000..09f229c --- /dev/null +++ b/templates/persistentvolumeclaims.yaml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: {{ include "heimdall.fullname" . }} +spec: + accessModes: {{ .Values.persistence.accessModes }} + resources: + requests: + storage: {{ .Values.persistence.size }} + storageClassName: {{ .Values.persistence.storageClass | quote }} diff --git a/templates/service.yaml b/templates/service.yaml new file mode 100644 index 0000000..9a29ec3 --- /dev/null +++ b/templates/service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "heimdall.fullname" . }} + labels: + app: {{ include "heimdall.name" . }} +spec: + type: {{ .Values.service.type }} + {{- if and .Values.service.loadBalancerIP (ne .Values.service.loadBalancerIP "") }} + loadBalancerIP: {{ .Values.service.loadBalancerIP }} + {{- end }} + selector: + app: {{ include "heimdall.name" . }} + ports: + - name: http + port: {{ .Values.service.portHttp }} + targetPort: 80 + - name: https + port: {{ .Values.service.portHttps }} + targetPort: 443 \ No newline at end of file diff --git a/templates/servicesvc-headless.yaml b/templates/servicesvc-headless.yaml new file mode 100644 index 0000000..14bb636 --- /dev/null +++ b/templates/servicesvc-headless.yaml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "heimdall.fullname" . }}-headless + labels: + app: {{ include "heimdall.name" . }} +spec: + clusterIP: None + selector: + app: {{ include "heimdall.name" . }} + ports: + - name: http + port: 80 + targetPort: 80 + - name: https + port: 443 + targetPort: 443 \ No newline at end of file diff --git a/templates/statefulset.yaml b/templates/statefulset.yaml new file mode 100644 index 0000000..08fbf21 --- /dev/null +++ b/templates/statefulset.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: {{ include "heimdall.fullname" . }} + labels: + app: {{ include "heimdall.name" . }} +spec: + serviceName: {{ include "heimdall.fullname" . }} + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + app: {{ include "heimdall.name" . }} + template: + metadata: + labels: + app: {{ include "heimdall.name" . }} + spec: + containers: + - name: heimdall + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + env: + {{- range $key, $value := .Values.env }} + - name: {{ $key }} + value: "{{ $value }}" + {{- end }} + ports: + - name: http + containerPort: 80 + - name: https + containerPort: 443 + volumeMounts: + - name: config + mountPath: /config + resources: + {{- toYaml .Values.resources | nindent 12 }} + volumeClaimTemplates: + - metadata: + name: config + spec: + accessModes: {{ .Values.persistence.accessModes }} + resources: + requests: + storage: {{ .Values.persistence.size }} + {{- if .Values.persistence.storageClass }} + storageClassName: "{{ .Values.persistence.storageClass }}" + {{- end }} diff --git a/values.yaml b/values.yaml new file mode 100644 index 0000000..cf4dbae --- /dev/null +++ b/values.yaml @@ -0,0 +1,37 @@ +replicaCount: 1 + +image: + repository: lscr.io/linuxserver/heimdall + tag: 2.7.4 + pullPolicy: IfNotPresent + +service: + type: ClusterIP + portHttp: 80 + portHttps: 443 + +persistence: + enabled: true + size: 1Gi + storageClass: "" + accessModes: + - ReadWriteOnce + +resources: + requests: + cpu: "100m" + memory: "128Mi" + limits: + cpu: "250m" + memory: "256Mi" + +nodeSelector: {} +tolerations: [] +affinity: [] + +# Environment variables +env: + PUID: "1000" + PGID: "1000" + TZ: "Etc/UTC" + ALLOW_INTERNAL_REQUESTS: "false"