apiVersion: apps/v1 kind: Deployment metadata: name: privoxyvpn spec: replicas: 1 selector: matchLabels: app: privoxyvpn template: metadata: labels: app: privoxyvpn spec: containers: - name: privoxyvpn image: binhex/arch-privoxyvpn:latest securityContext: privileged: true ports: - containerPort: 8118 - containerPort: 9118 resources: requests: cpu: "250m" memory: "512Mi" limits: cpu: "500m" memory: "2Gi" volumeMounts: - name: config mountPath: /config - name: logs mountPath: /logs - name: ovpn mountPath: /config/openvpn/ subPath: # - name: ovpn-creds # Only needed if your VPN requires a login with it's ovpn file # mountPath: /config/openvpn/credentials.conf # subPath: credentials.conf env: - name: VPN_ENABLED value: "yes" - name: VPN_PROV value: - name: ENABLE_SOCKS value: "yes" - name: ENABLE_PRIVOXY value: "yes" - name: STRICT_PORT_FORWARD value: "no" - name: LAN_NETWORK value: # If using in minikube, set to the minikube network - name: NAME_SERVERS value: "8.8.8.8,8.8.4.4" volumes: - name: config persistentVolumeClaim: claimName: privoxyvpn-config-pvc - name: logs persistentVolumeClaim: claimName: privoxyvpn-logs-pvc - name: ovpn #create with `kubectl create configmap ovpn-creds --from-file==` configMap: name: protonvpn-ovpn-config items: - key: path: # - name: ovpn-creds # configMap: # name: ovpn-creds # items: # - key: credentials.conf # path: credentials.conf --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: privoxyvpn-config-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 100Mi --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: privoxyvpn-logs-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 512Mi