Single-pod StatefulSet running gluetun (appVersion 3.41.1) as Wireguard VPN gateway with qbittorrent, prowlarr, flaresolverr, radarr, recyclarr, sonarr, seerr and bazarr sharing its network namespace. Config volumes via volumeClaimTemplates, media libraries as existing claims, per-app enable/ingress toggles, computed FIREWALL_INPUT_PORTS, hardened security contexts with documented per-image deviations. Wires up publish workflow, change-app-version choice, install-test exclusion and README overview.
39 lines
1.2 KiB
YAML
39 lines
1.2 KiB
YAML
{{- $apps := list }}
|
|
{{- range $app := include "freesailarr.uiApps" . | fromJsonArray }}
|
|
{{- if (index $.Values $app.name).ingress.enabled }}
|
|
{{- $apps = append $apps $app }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- if and .Values.ingress.enabled (gt (len $apps) 0) }}
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: {{ .Release.Name }}-{{ .Chart.Name }}-ingress
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: {{ required "A Cluster-Issuer must be provided" .Values.ingress.clusterIssuer }}
|
|
{{- with .Values.ingress.annotations }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
ingressClassName: {{ .Values.ingress.className }}
|
|
rules:
|
|
{{- range $apps }}
|
|
- host: {{ .name }}.{{ required "A Domain/Host must be provided" $.Values.ingress.domain }}
|
|
http:
|
|
paths:
|
|
- backend:
|
|
service:
|
|
name: {{ $.Release.Name }}-{{ $.Chart.Name }}-service
|
|
port:
|
|
name: {{ .name }}
|
|
path: /
|
|
pathType: Prefix
|
|
{{- end }}
|
|
tls:
|
|
- hosts:
|
|
{{- range $apps }}
|
|
- {{ .name }}.{{ $.Values.ingress.domain }}
|
|
{{- end }}
|
|
secretName: tls-{{ .Release.Name }}-{{ .Chart.Name }}-ingress
|
|
{{- end }}
|