add qbittorrent
This commit is contained in:
@ -3,7 +3,7 @@ entries:
|
||||
jackett:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.421399+02:00"
|
||||
created: "2025-05-10T17:17:56.406645+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: cb583d90a982e50cb0028e2d8d2afce93ef8f64dc202ddffd59262a74ff33fe1
|
||||
name: jackett
|
||||
@ -14,7 +14,7 @@ entries:
|
||||
overseerr:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.421902+02:00"
|
||||
created: "2025-05-10T17:17:56.407314+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: ac634ebbb7000644e02606157bedbc8ab6e3dd59d22d8ee699093d0f683a2899
|
||||
name: overseerr
|
||||
@ -25,7 +25,7 @@ entries:
|
||||
owncloud:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.4237+02:00"
|
||||
created: "2025-05-10T17:17:56.408806+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: 9a1724f504cc46baffa8dbaff5e3f5b7f3c07d64143643acb3f653b07868e963
|
||||
name: owncloud
|
||||
@ -36,7 +36,7 @@ entries:
|
||||
plex:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.424157+02:00"
|
||||
created: "2025-05-10T17:17:56.410833+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: 52d474c17f631c86fcc5d4eeeff6ec75d3121ea9317a00a9b200d5b7550281a0
|
||||
name: plex
|
||||
@ -47,7 +47,7 @@ entries:
|
||||
prowlarr:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.0.0
|
||||
created: "2025-05-10T02:15:34.42456+02:00"
|
||||
created: "2025-05-10T17:17:56.411341+02:00"
|
||||
description: A Helm chart for Prowlarr - indexer manager/proxy for Sonarr, Radarr,
|
||||
etc.
|
||||
digest: 18a3cb2ebdfa9c5f73c341e92b6a4f152e6143d77ad51f7efbc7215f9c88171c
|
||||
@ -58,10 +58,10 @@ entries:
|
||||
version: 0.1.0
|
||||
qbittorrent:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.425003+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: 962463c2a27832ad6dc9709a3be008f242e1b039d9da7579becfa0bb96f6e063
|
||||
appVersion: 4.5.2
|
||||
created: "2025-05-10T17:17:56.411643+02:00"
|
||||
description: A Helm chart for qBittorrent - Open-source BitTorrent client
|
||||
digest: 5e6a7b112faa6f61d697866bed64b8865a9ba31b36f71b572cd25bc8f2914530
|
||||
name: qbittorrent
|
||||
type: application
|
||||
urls:
|
||||
@ -70,7 +70,7 @@ entries:
|
||||
radarr:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.425508+02:00"
|
||||
created: "2025-05-10T17:17:56.412051+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: 78b75bd7d472fadde70016881f54f3359293b39d6ea964344131cc5572bb2b2f
|
||||
name: radarr
|
||||
@ -81,7 +81,7 @@ entries:
|
||||
readarr:
|
||||
- apiVersion: v2
|
||||
appVersion: 0.3.0
|
||||
created: "2025-05-10T02:15:34.426732+02:00"
|
||||
created: "2025-05-10T17:17:56.412498+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: 5f30c43141fba64f75c346f3ffb657f5d084ae2f941a42731092c91001aec4e4
|
||||
name: readarr
|
||||
@ -92,7 +92,7 @@ entries:
|
||||
sonarr:
|
||||
- apiVersion: v2
|
||||
appVersion: 1.16.0
|
||||
created: "2025-05-10T02:15:34.427103+02:00"
|
||||
created: "2025-05-10T17:17:56.412897+02:00"
|
||||
description: A Helm chart for Kubernetes
|
||||
digest: ba9b24a526270d72b33d1918755baa182095f97fb4f38df16b5a833c8138d6dc
|
||||
name: sonarr
|
||||
@ -100,4 +100,4 @@ entries:
|
||||
urls:
|
||||
- sonarr-0.1.0.tgz
|
||||
version: 0.1.0
|
||||
generated: "2025-05-10T02:15:34.420902+02:00"
|
||||
generated: "2025-05-10T17:17:56.405948+02:00"
|
||||
|
Binary file not shown.
14
README.md
14
README.md
@ -366,4 +366,16 @@ helm upgrade plex media-charts/plex
|
||||
|
||||
# Or upgrade with custom values
|
||||
helm upgrade plex media-charts/plex -f my-values.yaml
|
||||
```
|
||||
```
|
||||
|
||||
## Charts
|
||||
|
||||
The following charts are included in this repository:
|
||||
|
||||
- `plex` - Media server for streaming media
|
||||
- `radarr` - Movie collection management
|
||||
- `sonarr` - TV show collection management
|
||||
- `readarr` - Book and audiobook collection management
|
||||
- `prowlarr` - Indexer manager/proxy for arr applications
|
||||
- `qbittorrent` - BitTorrent client for download management
|
||||
- ... other charts
|
23
qbittorrent/.helmignore
Normal file
23
qbittorrent/.helmignore
Normal file
@ -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/
|
24
qbittorrent/Chart.yaml
Normal file
24
qbittorrent/Chart.yaml
Normal file
@ -0,0 +1,24 @@
|
||||
apiVersion: v2
|
||||
name: qbittorrent
|
||||
description: A Helm chart for qBittorrent - Open-source BitTorrent client
|
||||
|
||||
# A chart can be either an 'application' or a 'library' chart.
|
||||
#
|
||||
# Application charts are a collection of templates that can be packaged into versioned archives
|
||||
# to be deployed.
|
||||
#
|
||||
# Library charts provide useful utilities or functions for the chart developer. They're included as
|
||||
# a dependency of application charts to inject those utilities and functions into the rendering
|
||||
# pipeline. Library charts do not define any templates and therefore cannot be deployed.
|
||||
type: application
|
||||
|
||||
# This is the chart version. This version number should be incremented each time you make changes
|
||||
# to the chart and its templates, including the app version.
|
||||
# Versions are expected to follow Semantic Versioning (https://semver.org/)
|
||||
version: 0.1.0
|
||||
|
||||
# This is the version number of the application being deployed. This version number should be
|
||||
# incremented each time you make changes to the application. Versions are not expected to
|
||||
# follow Semantic Versioning. They should reflect the version the application is using.
|
||||
# It is recommended to use it with quotes.
|
||||
appVersion: "4.5.2"
|
79
qbittorrent/README.md
Normal file
79
qbittorrent/README.md
Normal file
@ -0,0 +1,79 @@
|
||||
# qBittorrent Helm Chart
|
||||
|
||||
This chart installs [qBittorrent](https://www.qbittorrent.org/), an open-source BitTorrent client, in a Kubernetes cluster.
|
||||
|
||||
## Prerequisites
|
||||
|
||||
- Kubernetes 1.16+
|
||||
- Helm 3.1.0+
|
||||
- PV provisioner support in the underlying infrastructure
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
# Add this repository
|
||||
helm repo add media-charts https://your-repo-url/
|
||||
|
||||
# Install the chart with the release name "qbittorrent"
|
||||
helm install qbittorrent media-charts/qbittorrent
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
The following table lists the configurable parameters for the qBittorrent chart and their default values.
|
||||
|
||||
| Parameter | Description | Default |
|
||||
|--------------------------------------|-----------------------------------------------|--------------------------|
|
||||
| `image.repository` | qBittorrent image repository | `linuxserver/qbittorrent`|
|
||||
| `image.tag` | qBittorrent image tag | `latest` |
|
||||
| `image.pullPolicy` | Image pull policy | `IfNotPresent` |
|
||||
| `service.type` | Service type | `NodePort` |
|
||||
| `service.webPort` | Web UI port | `8080` |
|
||||
| `service.btPort` | BitTorrent port | `6881` |
|
||||
| `service.webNodePort` | Node port for Web UI (if service.type=NodePort) | `30080` |
|
||||
| `service.btNodePort` | Node port for BitTorrent (if service.type=NodePort) | `30881` |
|
||||
| `persistence.config.claimName` | PVC name for config | `qbittorrent-config` |
|
||||
| `persistence.downloads.claimName` | PVC name for downloads | `qbittorrent-downloads` |
|
||||
|
||||
## Using with MyAnonamouse (MAM)
|
||||
|
||||
This chart is configured with NodePort service type by default, which allows your qBittorrent instance to be directly accessible from the internet. This is necessary for private trackers like MyAnonamouse to properly connect to your client.
|
||||
|
||||
### Setting up for MyAnonamouse
|
||||
|
||||
1. **Port Forwarding Setup**:
|
||||
- Ensure your router is configured to forward the BitTorrent port (default: 30881) to your Kubernetes node
|
||||
- The port must be open in any firewalls between your Kubernetes cluster and the internet
|
||||
|
||||
2. **Client Configuration**:
|
||||
- After installing qBittorrent, access the web UI
|
||||
- Go to Tools > Options > Connection
|
||||
- Set the "Port used for incoming connections" to match your service.btPort (default: 6881)
|
||||
- Verify that "Use UPnP / NAT-PMP port forwarding from my router" is checked
|
||||
|
||||
3. **Testing Connectivity**:
|
||||
- In qBittorrent, go to Tools > Options > Connection
|
||||
- Click the "Test Port" button to verify external connectivity
|
||||
- Alternatively, use an online port checking tool with your public IP and configured port
|
||||
|
||||
4. **MyAnonamouse Setup**:
|
||||
- Log into MyAnonamouse and visit the "Connectable" link
|
||||
- Your client should show as connectable with a green indicator
|
||||
- If it's not connectable, verify your port forwarding configuration
|
||||
|
||||
### Security Considerations
|
||||
|
||||
Using NodePort exposes your qBittorrent client directly to the internet. To enhance security:
|
||||
|
||||
1. Enable qBittorrent's web UI authentication (enabled by default)
|
||||
2. Consider using a VPN for additional privacy
|
||||
3. Regularly update the qBittorrent image to get security patches
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
If MyAnonamouse cannot connect to your client:
|
||||
|
||||
1. Verify that port forwarding is correctly set up on your router
|
||||
2. Check that any firewalls (including cloud provider firewalls) allow the BitTorrent port
|
||||
3. Ensure your Kubernetes node has a public IP or is properly NAT'ed
|
||||
4. Try using a different port, as some ISPs block common BitTorrent ports
|
22
qbittorrent/templates/NOTES.txt
Normal file
22
qbittorrent/templates/NOTES.txt
Normal file
@ -0,0 +1,22 @@
|
||||
1. Get the application URL by running these commands:
|
||||
{{- if .Values.ingress.enabled }}
|
||||
{{- range $host := .Values.ingress.hosts }}
|
||||
{{- range .paths }}
|
||||
http{{ if $.Values.ingress.tls }}s{{ end }}://{{ $host.host }}{{ .path }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- else if contains "NodePort" .Values.service.type }}
|
||||
export NODE_PORT=$(kubectl get --namespace {{ .Release.Namespace }} -o jsonpath="{.spec.ports[0].nodePort}" services {{ include "qbittorrent.fullname" . }})
|
||||
export NODE_IP=$(kubectl get nodes --namespace {{ .Release.Namespace }} -o jsonpath="{.items[0].status.addresses[0].address}")
|
||||
echo http://$NODE_IP:$NODE_PORT
|
||||
{{- else if contains "LoadBalancer" .Values.service.type }}
|
||||
NOTE: It may take a few minutes for the LoadBalancer IP to be available.
|
||||
You can watch the status of by running 'kubectl get --namespace {{ .Release.Namespace }} svc -w {{ include "qbittorrent.fullname" . }}'
|
||||
export SERVICE_IP=$(kubectl get svc --namespace {{ .Release.Namespace }} {{ include "qbittorrent.fullname" . }} --template "{{"{{ range (index .status.loadBalancer.ingress 0) }}{{.}}{{ end }}"}}")
|
||||
echo http://$SERVICE_IP:{{ .Values.service.webPort }}
|
||||
{{- else if contains "ClusterIP" .Values.service.type }}
|
||||
export POD_NAME=$(kubectl get pods --namespace {{ .Release.Namespace }} -l "app.kubernetes.io/name={{ include "qbittorrent.name" . }},app.kubernetes.io/instance={{ .Release.Name }}" -o jsonpath="{.items[0].metadata.name}")
|
||||
export CONTAINER_PORT=$(kubectl get pod --namespace {{ .Release.Namespace }} $POD_NAME -o jsonpath="{.spec.containers[0].ports[0].containerPort}")
|
||||
echo "Visit http://127.0.0.1:8080 to use your application"
|
||||
kubectl --namespace {{ .Release.Namespace }} port-forward $POD_NAME 8080:$CONTAINER_PORT
|
||||
{{- end }}
|
51
qbittorrent/templates/_helpers.tpl
Normal file
51
qbittorrent/templates/_helpers.tpl
Normal file
@ -0,0 +1,51 @@
|
||||
{{/*
|
||||
Expand the name of the chart.
|
||||
*/}}
|
||||
{{- define "qbittorrent.name" -}}
|
||||
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create a default fully qualified app name.
|
||||
We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec).
|
||||
If release name contains chart name it will be used as a full name.
|
||||
*/}}
|
||||
{{- define "qbittorrent.fullname" -}}
|
||||
{{- if .Values.fullnameOverride }}
|
||||
{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- $name := default .Chart.Name .Values.nameOverride }}
|
||||
{{- if contains $name .Release.Name }}
|
||||
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
||||
{{- else }}
|
||||
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Create chart name and version as used by the chart label.
|
||||
*/}}
|
||||
{{- define "qbittorrent.chart" -}}
|
||||
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Common labels
|
||||
*/}}
|
||||
{{- define "qbittorrent.labels" -}}
|
||||
helm.sh/chart: {{ include "qbittorrent.chart" . }}
|
||||
{{ include "qbittorrent.selectorLabels" . }}
|
||||
{{- if .Chart.AppVersion }}
|
||||
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
||||
{{- end }}
|
||||
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
||||
{{- end }}
|
||||
|
||||
{{/*
|
||||
Selector labels
|
||||
*/}}
|
||||
{{- define "qbittorrent.selectorLabels" -}}
|
||||
app.kubernetes.io/name: {{ include "qbittorrent.name" . }}
|
||||
app.kubernetes.io/instance: {{ .Release.Name }}
|
||||
{{- end }}
|
78
qbittorrent/templates/deployment.yaml
Normal file
78
qbittorrent/templates/deployment.yaml
Normal file
@ -0,0 +1,78 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "qbittorrent.fullname" . }}
|
||||
labels:
|
||||
{{- include "qbittorrent.labels" . | nindent 4 }}
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "qbittorrent.selectorLabels" . | nindent 6 }}
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "qbittorrent.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
{{- with .Values.imagePullSecrets }}
|
||||
imagePullSecrets:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
securityContext:
|
||||
{{- toYaml .Values.podSecurityContext | nindent 8 }}
|
||||
containers:
|
||||
- name: {{ .Chart.Name }}
|
||||
image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}"
|
||||
imagePullPolicy: {{ .Values.image.pullPolicy }}
|
||||
env:
|
||||
{{- range .Values.env }}
|
||||
- name: {{ .name }}
|
||||
value: {{ .value | quote }}
|
||||
{{- end }}
|
||||
ports:
|
||||
- name: web
|
||||
containerPort: {{ .Values.service.webPort }}
|
||||
protocol: TCP
|
||||
- name: bittorrent
|
||||
containerPort: {{ .Values.service.btPort }}
|
||||
protocol: TCP
|
||||
volumeMounts:
|
||||
- name: config
|
||||
mountPath: {{ .Values.persistence.config.mountPath }}
|
||||
- name: downloads
|
||||
mountPath: {{ .Values.persistence.downloads.mountPath }}
|
||||
{{- with .Values.volumeMounts }}
|
||||
{{- toYaml . | nindent 12 }}
|
||||
{{- end }}
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: web
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: web
|
||||
resources:
|
||||
{{- toYaml .Values.resources | nindent 12 }}
|
||||
volumes:
|
||||
- name: config
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.persistence.config.claimName }}
|
||||
- name: downloads
|
||||
persistentVolumeClaim:
|
||||
claimName: {{ .Values.persistence.downloads.claimName }}
|
||||
{{- with .Values.volumes }}
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.nodeSelector }}
|
||||
nodeSelector:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.affinity }}
|
||||
affinity:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
||||
{{- with .Values.tolerations }}
|
||||
tolerations:
|
||||
{{- toYaml . | nindent 8 }}
|
||||
{{- end }}
|
61
qbittorrent/templates/ingress.yaml
Normal file
61
qbittorrent/templates/ingress.yaml
Normal file
@ -0,0 +1,61 @@
|
||||
{{- if .Values.ingress.enabled -}}
|
||||
{{- $fullName := include "qbittorrent.fullname" . -}}
|
||||
{{- $svcPort := .Values.service.webPort -}}
|
||||
{{- if and .Values.ingress.className (not (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion)) }}
|
||||
{{- if not (hasKey .Values.ingress.annotations "kubernetes.io/ingress.class") }}
|
||||
{{- $_ := set .Values.ingress.annotations "kubernetes.io/ingress.class" .Values.ingress.className}}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1
|
||||
{{- else if semverCompare ">=1.14-0" .Capabilities.KubeVersion.GitVersion -}}
|
||||
apiVersion: networking.k8s.io/v1beta1
|
||||
{{- else -}}
|
||||
apiVersion: extensions/v1beta1
|
||||
{{- end }}
|
||||
kind: Ingress
|
||||
metadata:
|
||||
name: {{ $fullName }}
|
||||
labels:
|
||||
{{- include "qbittorrent.labels" . | nindent 4 }}
|
||||
{{- with .Values.ingress.annotations }}
|
||||
annotations:
|
||||
{{- toYaml . | nindent 4 }}
|
||||
{{- end }}
|
||||
spec:
|
||||
{{- if and .Values.ingress.className (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
|
||||
ingressClassName: {{ .Values.ingress.className }}
|
||||
{{- end }}
|
||||
{{- if .Values.ingress.tls }}
|
||||
tls:
|
||||
{{- range .Values.ingress.tls }}
|
||||
- hosts:
|
||||
{{- range .hosts }}
|
||||
- {{ . | quote }}
|
||||
{{- end }}
|
||||
secretName: {{ .secretName }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
rules:
|
||||
{{- range .Values.ingress.hosts }}
|
||||
- host: {{ .host | quote }}
|
||||
http:
|
||||
paths:
|
||||
{{- range .paths }}
|
||||
- path: {{ .path }}
|
||||
{{- if and .pathType (semverCompare ">=1.18-0" $.Capabilities.KubeVersion.GitVersion) }}
|
||||
pathType: {{ .pathType }}
|
||||
{{- end }}
|
||||
backend:
|
||||
{{- if semverCompare ">=1.19-0" $.Capabilities.KubeVersion.GitVersion }}
|
||||
service:
|
||||
name: {{ $fullName }}
|
||||
port:
|
||||
name: web
|
||||
{{- else }}
|
||||
serviceName: {{ $fullName }}
|
||||
servicePort: {{ $svcPort }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
||||
{{- end }}
|
27
qbittorrent/templates/pvc.yaml
Normal file
27
qbittorrent/templates/pvc.yaml
Normal file
@ -0,0 +1,27 @@
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ .Values.persistence.config.claimName }}
|
||||
labels:
|
||||
{{- include "qbittorrent.labels" . | nindent 4 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 1Gi
|
||||
storageClassName: standard
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: PersistentVolumeClaim
|
||||
metadata:
|
||||
name: {{ .Values.persistence.downloads.claimName }}
|
||||
labels:
|
||||
{{- include "qbittorrent.labels" . | nindent 4 }}
|
||||
spec:
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
requests:
|
||||
storage: 10Gi
|
||||
storageClassName: standard
|
25
qbittorrent/templates/service.yaml
Normal file
25
qbittorrent/templates/service.yaml
Normal file
@ -0,0 +1,25 @@
|
||||
apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: {{ include "qbittorrent.fullname" . }}
|
||||
labels:
|
||||
{{- include "qbittorrent.labels" . | nindent 4 }}
|
||||
spec:
|
||||
type: {{ .Values.service.type }}
|
||||
ports:
|
||||
- port: {{ .Values.service.webPort }}
|
||||
targetPort: web
|
||||
protocol: TCP
|
||||
name: web
|
||||
{{- if and (eq .Values.service.type "NodePort") .Values.service.webNodePort }}
|
||||
nodePort: {{ .Values.service.webNodePort }}
|
||||
{{- end }}
|
||||
- port: {{ .Values.service.btPort }}
|
||||
targetPort: bittorrent
|
||||
protocol: TCP
|
||||
name: bittorrent
|
||||
{{- if and (eq .Values.service.type "NodePort") .Values.service.btNodePort }}
|
||||
nodePort: {{ .Values.service.btNodePort }}
|
||||
{{- end }}
|
||||
selector:
|
||||
{{- include "qbittorrent.selectorLabels" . | nindent 4 }}
|
126
qbittorrent/values.yaml
Normal file
126
qbittorrent/values.yaml
Normal file
@ -0,0 +1,126 @@
|
||||
# Default values for qbittorrent.
|
||||
# This is a YAML-formatted file.
|
||||
# Declare variables to be passed into your templates.
|
||||
|
||||
replicaCount: 1
|
||||
|
||||
image:
|
||||
repository: linuxserver/qbittorrent
|
||||
pullPolicy: IfNotPresent
|
||||
tag: "latest"
|
||||
|
||||
imagePullSecrets: []
|
||||
nameOverride: ""
|
||||
fullnameOverride: ""
|
||||
|
||||
serviceAccount:
|
||||
# Specifies whether a service account should be created
|
||||
create: false
|
||||
# Automatically mount a ServiceAccount's API credentials?
|
||||
automount: false
|
||||
# Annotations to add to the service account
|
||||
annotations: {}
|
||||
# The name of the service account to use.
|
||||
# If not set and create is true, a name is generated using the fullname template
|
||||
name: ""
|
||||
|
||||
podAnnotations: {}
|
||||
podLabels: {}
|
||||
|
||||
podSecurityContext:
|
||||
runAsUser: 0
|
||||
runAsGroup: 0
|
||||
fsGroup: 0
|
||||
|
||||
securityContext:
|
||||
privileged: true
|
||||
capabilities:
|
||||
add:
|
||||
- CHOWN
|
||||
- FOWNER
|
||||
- SETUID
|
||||
- SETGID
|
||||
|
||||
service:
|
||||
type: NodePort
|
||||
webPort: 8080
|
||||
btPort: 6881
|
||||
webNodePort: 30080
|
||||
btNodePort: 30881
|
||||
|
||||
ingress:
|
||||
enabled: true
|
||||
className: "nginx"
|
||||
annotations:
|
||||
cert-manager.io/cluster-issuer: "letsencrypt"
|
||||
hosts:
|
||||
- host: qbittorrent.media.mumme-it.de
|
||||
paths:
|
||||
- path: /
|
||||
pathType: Prefix
|
||||
tls:
|
||||
- hosts:
|
||||
- qbittorrent.media.mumme-it.de
|
||||
secretName: qbittorrent-tls
|
||||
|
||||
resources:
|
||||
limits:
|
||||
cpu: 1000m
|
||||
memory: 1Gi
|
||||
requests:
|
||||
cpu: 200m
|
||||
memory: 256Mi
|
||||
|
||||
livenessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: web
|
||||
readinessProbe:
|
||||
httpGet:
|
||||
path: /
|
||||
port: web
|
||||
|
||||
autoscaling:
|
||||
enabled: false
|
||||
minReplicas: 1
|
||||
maxReplicas: 100
|
||||
targetCPUUtilizationPercentage: 80
|
||||
|
||||
# Additional volumes on the output Deployment definition.
|
||||
volumes: []
|
||||
# - name: foo
|
||||
# secret:
|
||||
# secretName: mysecret
|
||||
# optional: false
|
||||
|
||||
# Additional volumeMounts on the output Deployment definition.
|
||||
volumeMounts: []
|
||||
# - name: foo
|
||||
# mountPath: "/etc/foo"
|
||||
# readOnly: true
|
||||
|
||||
nodeSelector: {}
|
||||
|
||||
tolerations: []
|
||||
|
||||
affinity: {}
|
||||
|
||||
# Environment variables
|
||||
env:
|
||||
- name: TZ
|
||||
value: "Europe/Berlin"
|
||||
- name: PUID
|
||||
value: "0"
|
||||
- name: PGID
|
||||
value: "0"
|
||||
- name: WEBUI_PORT
|
||||
value: "8080"
|
||||
|
||||
# Persistence configuration
|
||||
persistence:
|
||||
config:
|
||||
claimName: qbittorrent-config
|
||||
mountPath: /config
|
||||
downloads:
|
||||
claimName: qbittorrent-downloads
|
||||
mountPath: /downloads
|
Reference in New Issue
Block a user