From 4c8179f9cc0d0e1443b1332d07ded07ed24829cc Mon Sep 17 00:00:00 2001 From: Richard Tomik Date: Wed, 17 Dec 2025 15:59:50 +0100 Subject: [PATCH] fixed issue #2 --- charts/qbittorrent-vpn/Chart.yaml | 2 +- charts/qbittorrent-vpn/readme.md | 39 +++++++++++++++++++ .../qbittorrent-vpn/templates/deployment.yaml | 6 ++- charts/qbittorrent-vpn/values.yaml | 19 ++++++++- 4 files changed, 63 insertions(+), 3 deletions(-) diff --git a/charts/qbittorrent-vpn/Chart.yaml b/charts/qbittorrent-vpn/Chart.yaml index 0a6aefa..5b3e69d 100644 --- a/charts/qbittorrent-vpn/Chart.yaml +++ b/charts/qbittorrent-vpn/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 name: qbittorrent-vpn description: qBittorrent with Gluetun VPN sidecar for Kubernetes type: application -version: 0.0.1 +version: 0.0.2 appVersion: 5.1.0 maintainers: - name: Richard Tomik diff --git a/charts/qbittorrent-vpn/readme.md b/charts/qbittorrent-vpn/readme.md index 174240e..17e69ad 100644 --- a/charts/qbittorrent-vpn/readme.md +++ b/charts/qbittorrent-vpn/readme.md @@ -222,6 +222,45 @@ gluetun: STATUS_FILE: "/tmp/gluetun-status.json" ``` +### Custom Sidecar Containers + +The chart supports adding custom sidecar containers to the pod. This is useful for adding additional functionality like port forwarding management (NATMap), monitoring, or other helper containers. + +Sidecars are specified using the standard Kubernetes container specification: + +```yaml +sidecars: + - name: natmap + image: ghcr.io/muink/natmap:latest + imagePullPolicy: IfNotPresent + env: + - name: GATEWAY + value: "10.2.0.1" + - name: INTERFACE + value: "tun0" + - name: INTERVAL + value: "30" + volumeMounts: + - name: config + mountPath: /config + subPath: natmap +``` + +**Common Use Cases:** + +1. **NATMap**: Automatically update port forwarding configurations +2. **Monitoring**: Add monitoring agents or exporters +3. **Custom Scripts**: Run periodic maintenance or update tasks + +**Sharing Volumes:** + +Sidecars can access the same volumes as the main containers: +- `config`: qBittorrent configuration volume +- `downloads`: Downloads volume +- `gluetun-config`: Gluetun configuration volume (if enabled) + +For the full Kubernetes container specification reference, see the [Kubernetes documentation](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.28/#container-v1-core). + ## Troubleshooting ### VPN Connection Issues diff --git a/charts/qbittorrent-vpn/templates/deployment.yaml b/charts/qbittorrent-vpn/templates/deployment.yaml index e3d55a5..8701152 100644 --- a/charts/qbittorrent-vpn/templates/deployment.yaml +++ b/charts/qbittorrent-vpn/templates/deployment.yaml @@ -255,7 +255,11 @@ spec: resources: {{- toYaml .Values.qbittorrent.resources | nindent 12 }} - + + {{- with .Values.sidecars }} + {{- toYaml . | nindent 8 }} + {{- end }} + volumes: # Create /dev/net/tun as a device - name: tun diff --git a/charts/qbittorrent-vpn/values.yaml b/charts/qbittorrent-vpn/values.yaml index f0f973d..8db8822 100644 --- a/charts/qbittorrent-vpn/values.yaml +++ b/charts/qbittorrent-vpn/values.yaml @@ -225,4 +225,21 @@ extraVolumes: [] # Temporary options for development/debugging hostNetwork: false -initContainers: [] \ No newline at end of file +initContainers: [] + +# Additional sidecar containers +# This allows you to add custom sidecar containers to the pod +# Each sidecar is specified using standard Kubernetes container spec +# Example: Add NATMap for port forwarding with VPN +# sidecars: +# - name: natmap +# image: ghcr.io/muink/natmap:latest +# env: +# - name: GATEWAY +# value: "10.2.0.1" +# - name: INTERFACE +# value: "tun0" +# volumeMounts: +# - name: config +# mountPath: /config +sidecars: [] \ No newline at end of file