Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion charts/servarr/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ maintainers:
url: https://kubito.dev
apiVersion: v2
appVersion: 1.3.0
version: 1.5.2
version: 1.6.0
description: Kubito Servarr Helm Chart
home: https://github.com/kubitodev/helm/tree/main/charts/servarr
icon: https://kubito.dev/images/kubito.svg
Expand All @@ -21,5 +21,6 @@ keywords:
- prowlarr
- cleanuparr
- lidatube
- sabnzbd
sources:
- https://github.com/Servarr
55 changes: 55 additions & 0 deletions charts/servarr/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,61 @@ The command removes all the Kubernetes components associated with the chart and
| `qbittorrent.persistence.additionalVolumes` | Additional volumes to add to the pod. | `[]` |
| `qbittorrent.persistence.additionalMounts` | Additional volume mounts to add to the pod. | `[]` |

### SABnzbd parameters

| Name | Description | Value |
| ------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------- |
| `sabnzbd.enabled` | Whether to enable SABnzbd. | `true` |
| `sabnzbd.replicaCount` | The number of replicas to deploy. | `1` |
| `sabnzbd.image.repository` | The Docker repository to pull the image from. | `lscr.io/linuxserver/sabnzbd` |
| `sabnzbd.image.tag` | The image tag to use. | `4.5.4` |
| `sabnzbd.image.pullPolicy` | The logic of image pulling. | `IfNotPresent` |
| `sabnzbd.imagePullSecrets` | The image pull secrets to use. | `[]` |
| `sabnzbd.deployment.strategy.type` | The deployment strategy to use. | `Recreate` |
| `sabnzbd.serviceAccount.create` | Whether to create a service account. | `true` |
| `sabnzbd.serviceAccount.annotations` | Additional annotations to add to the service account. | `{}` |
| `sabnzbd.serviceAccount.name` | The name of the service account to use. If not set and create is true, a new service account will be created with a generated name. | `""` |
| `sabnzbd.podAnnotations` | Additional annotations to add to the pod. | `{}` |
| `sabnzbd.podSecurityContext` | The security context to use for the pod. | `{}` |
| `sabnzbd.securityContext` | The security context to use for the container. | `{}` |
| `sabnzbd.initContainers` | Additional init containers to add to the pod. | `[]` |
| `sabnzbd.service.type` | The type of service to create. | `ClusterIP` |
| `sabnzbd.service.port` | The port on which the service will run. | `8080` |
| `sabnzbd.service.nodePort` | The nodePort to use for the service. Only used if service.type is NodePort. | `""` |
| `sabnzbd.ingress.enabled` | Whether to create an ingress for the service. | `false` |
| `sabnzbd.ingress.className` | The ingress class name to use. | `""` |
| `sabnzbd.ingress.annotations` | Additional annotations to add to the ingress. | `{}` |
| `sabnzbd.ingress.hosts[0].host` | The host to use for the ingress. | `chart-example.local` |
| `sabnzbd.ingress.hosts[0].paths[0].path` | The path to use for the ingress. | `/` |
| `sabnzbd.ingress.hosts[0].paths[0].pathType` | The path type to use for the ingress. | `ImplementationSpecific` |
| `sabnzbd.ingress.tls` | The TLS configuration for the ingress. | `[]` |
| `sabnzbd.resources` | The resources to use for the pod. | `{}` |
| `sabnzbd.startupProbe` | Startup probe configuration. Leave empty to disable. | `{}` |
| `sabnzbd.livenessProbe` | Liveness probe configuration. Leave empty to disable. | `{}` |
| `sabnzbd.readinessProbe` | Readiness probe configuration. Leave empty to disable. | `{}` |
| `sabnzbd.autoscaling.enabled` | Whether to enable autoscaling. | `false` |
| `sabnzbd.autoscaling.minReplicas` | The minimum number of replicas to scale to. | `1` |
| `sabnzbd.autoscaling.maxReplicas` | The maximum number of replicas to scale to. | `100` |
| `sabnzbd.autoscaling.targetCPUUtilizationPercentage` | The target CPU utilization percentage to use for autoscaling. | `80` |
| `sabnzbd.autoscaling.targetMemoryUtilizationPercentage` | The target memory utilization percentage to use for autoscaling. | `80` |
| `sabnzbd.priorityClassName` | Kubernetes PriorityClass name for pod eviction priority. Leave empty to inherit the cluster's globalDefault PriorityClass. | `""` |
| `sabnzbd.nodeSelector` | The node selector to use for the pod. | `{}` |
| `sabnzbd.podLabels` | Additional labels to add to the pod template. | `{}` |
| `sabnzbd.tolerations` | The tolerations to use for the pod. | `[]` |
| `sabnzbd.topologySpreadConstraints` | Control how pods are spread across your cluster among failure-domains such as regions, zones, nodes, and other user-defined topology domains. | `[]` |
| `sabnzbd.affinity` | The affinity to use for the pod. | `{}` |
| `sabnzbd.env.PUID` | The user ID to use for the pod. | `1000` |
| `sabnzbd.env.PGID` | The group ID to use for the pod. | `1000` |
| `sabnzbd.env.TZ` | The timezone to use for the pod. | `Europe/London` |
| `sabnzbd.persistence.enabled` | Whether to enable persistence. | `true` |
| `sabnzbd.persistence.path` | The path to use for the persistence. Don't use slashes. | `downloads` |
| `sabnzbd.persistence.storageClass` | The storage class to use for the persistence. | `""` |
| `sabnzbd.persistence.existingClaim` | The name of an existing claim to use for the persistence. | `""` |
| `sabnzbd.persistence.accessMode` | The access mode to use for the persistence. | `ReadWriteOnce` |
| `sabnzbd.persistence.size` | The size to use for the persistence. | `1Gi` |
| `sabnzbd.persistence.additionalVolumes` | Additional volumes to add to the pod. | `[]` |
| `sabnzbd.persistence.additionalMounts` | Additional volume mounts to add to the pod. | `[]` |

### Prowlarr parameters

| Name | Description | Value |
Expand Down
128 changes: 128 additions & 0 deletions charts/servarr/templates/sabnzbd/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,128 @@
{{- if .Values.sabnzbd.enabled }}
apiVersion: apps/v1
kind: Deployment
metadata:
name: {{ .Release.Name }}-sabnzbd
labels:
app.kubernetes.io/name: sabnzbd
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
spec:
{{- if not .Values.sabnzbd.autoscaling.enabled }}
replicas: {{ .Values.sabnzbd.replicaCount }}
{{- end }}
strategy:
{{- .Values.sabnzbd.deployment.strategy | toYaml | nindent 4 }}
selector:
matchLabels:
app.kubernetes.io/name: sabnzbd
app.kubernetes.io/instance: {{ .Release.Name }}
template:
metadata:
{{- with .Values.sabnzbd.podAnnotations }}
annotations:
{{- toYaml . | nindent 8 }}
{{- end }}
labels:
app.kubernetes.io/name: sabnzbd
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
{{- with .Values.sabnzbd.podLabels }}
{{- toYaml . | nindent 8 }}
{{- end }}
spec:
{{- with .Values.sabnzbd.imagePullSecrets }}
imagePullSecrets:
{{- toYaml . | nindent 8 }}
{{- end }}
serviceAccountName: {{ .Values.sabnzbd.serviceAccount.name | default (printf "%s-sabnzbd" .Release.Name) }}
securityContext:
{{- toYaml .Values.sabnzbd.podSecurityContext | nindent 8 }}
{{- if .Values.sabnzbd.initContainers }}
initContainers:
{{- toYaml .Values.sabnzbd.initContainers | nindent 8 }}
{{- end }}
volumes:
- name: config
{{- if .Values.sabnzbd.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ .Values.sabnzbd.persistence.existingClaim | default (printf "%s-sabnzbd" .Release.Name) }}
{{- else }}
emptyDir: { }
{{- end }}
- name: media
{{- if and .Values.jellyfin.enabled .Values.jellyfin.persistence.media.enabled .Values.sabnzbd.persistence.enabled }}
persistentVolumeClaim:
claimName: {{ if .Values.jellyfin.persistence.media.existingClaim }}{{ .Values.jellyfin.persistence.media.existingClaim }}{{- else }}{{ .Release.Name }}-jellyfin-media{{- end }}
{{- else }}
emptyDir: { }
{{- end }}
{{- if .Values.sabnzbd.persistence.additionalVolumes }}
{{- .Values.sabnzbd.persistence.additionalVolumes | toYaml | nindent 8}}
{{- end }}
containers:
- name: {{ .Chart.Name }}
securityContext:
{{- toYaml .Values.sabnzbd.securityContext | nindent 12 }}
image: "{{ .Values.sabnzbd.image.repository }}:{{ .Values.sabnzbd.image.tag | default .Chart.AppVersion }}"
imagePullPolicy: {{ .Values.sabnzbd.image.pullPolicy }}
volumeMounts:
- mountPath: /config
name: config
{{- if and .Values.jellyfin.enabled .Values.jellyfin.persistence.media.enabled .Values.sabnzbd.persistence.enabled }}
- mountPath: "/media/{{ .Values.sabnzbd.persistence.path }}"
name: media
subPath: {{ .Values.sabnzbd.persistence.path }}
{{- end }}
{{- if .Values.sabnzbd.persistence.additionalMounts }}
{{- .Values.sabnzbd.persistence.additionalMounts | toYaml | nindent 12 }}
{{- end }}
ports:
- name: http
containerPort: {{ .Values.sabnzbd.service.port | default 8080 }}
protocol: TCP
env:
{{- range $k, $v := .Values.sabnzbd.env }}
- name: {{ $k }}
{{- if kindIs "map" $v }}
{{- toYaml $v | nindent 14 }}
{{- else }}
value: {{ $v | quote }}
{{- end }}
{{- end }}
{{- with .Values.sabnzbd.startupProbe }}
startupProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.sabnzbd.livenessProbe }}
livenessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
{{- with .Values.sabnzbd.readinessProbe }}
readinessProbe:
{{- toYaml . | nindent 12 }}
{{- end }}
resources:
{{- toYaml .Values.sabnzbd.resources | nindent 12 }}
{{- with .Values.sabnzbd.priorityClassName }}
priorityClassName: {{ . | quote }}
{{- end }}
{{- with .Values.sabnzbd.nodeSelector }}
nodeSelector:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.sabnzbd.affinity }}
affinity:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.sabnzbd.tolerations }}
tolerations:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- with .Values.sabnzbd.topologySpreadConstraints }}
topologySpreadConstraints:
{{- toYaml . | nindent 8 }}
{{- end }}
{{- end }}
31 changes: 31 additions & 0 deletions charts/servarr/templates/sabnzbd/hpa.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{{- if and .Values.sabnzbd.enabled .Values.sabnzbd.autoscaling.enabled }}
apiVersion: autoscaling/v2beta1
kind: HorizontalPodAutoscaler
metadata:
name: {{ .Release.Name }}-sabnzbd
labels:
app.kubernetes.io/name: sabnzbd
app.kubernetes.io/instance: {{ .Release.Name | quote }}
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
app.kubernetes.io/managed-by: {{ .Release.Service | quote }}
spec:
scaleTargetRef:
apiVersion: apps/v1
kind: Deployment
name: {{ .Release.Name }}-sabnzbd
minReplicas: {{ .Values.sabnzbd.autoscaling.minReplicas }}
maxReplicas: {{ .Values.sabnzbd.autoscaling.maxReplicas }}
metrics:
{{- if .Values.sabnzbd.autoscaling.targetCPUUtilizationPercentage }}
- type: Resource
resource:
name: cpu
targetAverageUtilization: {{ .Values.sabnzbd.autoscaling.targetCPUUtilizationPercentage }}
{{- end }}
{{- if .Values.sabnzbd.autoscaling.targetMemoryUtilizationPercentage }}
- type: Resource
resource:
name: memory
targetAverageUtilization: {{ .Values.sabnzbd.autoscaling.targetMemoryUtilizationPercentage }}
{{- end }}
{{- end }}
Loading