--- apiVersion: v1 kind: Namespace metadata: name: deluge --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: deluge namespace: deluge spec: ingressClassName: haproxy rules: - host: deluge.strudelline.net http: paths: - path: / pathType: Prefix backend: service: name: deluge port: number: 8112 --- apiVersion: apps/v1 kind: Deployment metadata: namespace: deluge name: deluge spec: replicas: 1 selector: matchLabels: app: deluge strategy: type: Recreate template: metadata: labels: app: deluge spec: terminationGracePeriodSeconds: 0 restartPolicy: Always initContainers: - name: killswitch image: xjasonlyu/tun2socks:latest command: ["sh","-c"] args: - | iptables -t mangle -A POSTROUTING -o eth0 -d 172.16.0.0/12 -j ACCEPT iptables -t mangle -A POSTROUTING -o eth0 -d 10.0.0.0/8 -j ACCEPT iptables -t mangle -A POSTROUTING -o eth0 -d 192.168.0.0/16 -j ACCEPT iptables -t mangle -A POSTROUTING -o eth0 -j DROP securityContext: capabilities: add: ["NET_ADMIN","SYS_TIME"] volumes: - name: config nfs: server: 172.16.18.1 path: /volume1/k8s-volumes/deluge-config - name: dropbox nfs: server: 172.16.18.1 path: /volume1/dropbox containers: - name: deluge image: git.strudelline.net/cascade/docker-deluge-with-tools:main env: - name: TZ value: America/Chicago - name: PUID value: "1029" - name: PGID value: "101" - name: UMASK_SET value: "000" volumeMounts: - mountPath: /volume1/dropbox name: dropbox - mountPath: /config name: config - name: vpn image: xjasonlyu/tun2socks:latest command: ["sh","-c"] args: - | mkdir -p /dev/net mknod /dev/net/tun c 10 200 exec /entrypoint.sh env: - name: TUN value: tun0 - name: PROXY value: socks5://172.16.17.180:1080 - name: TUN_EXCLUDED_ROUTES value: 10.0.0.0/8,172.16.0.0/12,192.168.0.0/16 securityContext: capabilities: add: ["NET_ADMIN","SYS_TIME"] --- apiVersion: v1 kind: Service metadata: labels: app: deluge name: deluge namespace: deluge spec: ipFamilies: - IPv4 ipFamilyPolicy: SingleStack ports: - name: deluge port: 8112 protocol: TCP targetPort: 8112 selector: app: deluge sessionAffinity: None type: ClusterIP #apiVersion: v1 #kind: Service #metadata: # annotations: # metallb.universe.tf/allow-shared-ip: 172.16.17.180 # metallb.universe.tf/loadBalancerIPs: 172.16.17.180 # labels: # app: nordproxy # name: nordproxy # namespace: nordproxy #spec: # ipFamilies: # - IPv4 # ipFamilyPolicy: SingleStack # ports: # - name: dns # port: 53 # protocol: UDP # targetPort: 5353 # - name: socks # port: 1080 # protocol: TCP # targetPort: 1080 # - name: gost-auto # port: 4080 # protocol: TCP # targetPort: 4080 # - name: http # port: 8080 # protocol: TCP # targetPort: 8080 # selector: # app: nordproxy # sessionAffinity: None # type: LoadBalancer