85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			YAML
		
	
	
	
	
	
| apiVersion: apps/v1
 | |
| kind: Deployment
 | |
| metadata:
 | |
|   name: proxmox-proxy
 | |
|   namespace: external-services
 | |
| spec:
 | |
|   replicas: 1
 | |
|   selector:
 | |
|     matchLabels:
 | |
|       app: proxmox-proxy
 | |
|   template:
 | |
|     metadata:
 | |
|       labels:
 | |
|         app: proxmox-proxy
 | |
|     spec:
 | |
|       containers:
 | |
|         - name: nginx
 | |
|           image: nginx:alpine
 | |
|           ports:
 | |
|             - containerPort: 80
 | |
|           volumeMounts:
 | |
|             - name: nginx-config
 | |
|               mountPath: /etc/nginx/nginx.conf
 | |
|               subPath: nginx.conf
 | |
|       volumes:
 | |
|         - name: nginx-config
 | |
|           configMap:
 | |
|             name: proxmox-proxy-config
 | |
| ---
 | |
| apiVersion: v1
 | |
| kind: Service
 | |
| metadata:
 | |
|   name: proxmox-proxy
 | |
|   namespace: external-services
 | |
| spec:
 | |
|   selector:
 | |
|     app: proxmox-proxy
 | |
|   ports:
 | |
|     - port: 80
 | |
|       targetPort: 80
 | |
| ---
 | |
| apiVersion: v1
 | |
| kind: ConfigMap
 | |
| metadata:
 | |
|   name: proxmox-proxy-config
 | |
|   namespace: external-services
 | |
| data:
 | |
|   nginx.conf: |
 | |
|     events {}
 | |
|     http {
 | |
|       server {
 | |
|         listen 80;
 | |
|         location / {
 | |
|           proxy_pass https://${PROXMOX_IP};
 | |
|           proxy_ssl_verify off;
 | |
|           proxy_set_header Host $host;
 | |
|           proxy_set_header X-Real-IP $remote_addr;
 | |
|           proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
 | |
|           proxy_set_header X-Forwarded-Proto $scheme;
 | |
|         }
 | |
|       }
 | |
|     }
 | |
| ---
 | |
| apiVersion: traefik.io/v1alpha1
 | |
| kind: IngressRoute
 | |
| metadata:
 | |
|   annotations:
 | |
|     cert-manager.io/cluster-issuer: "letsencrypt-prod"
 | |
|   name: proxmox-route
 | |
|   namespace: external-services
 | |
| spec:
 | |
|   entryPoints:
 | |
|     - websecure
 | |
|   routes:
 | |
|     - match: Host(`${PROXMOX_HOST}`)
 | |
|       kind: Rule
 | |
|       services:
 | |
|         - name: proxmox-proxy
 | |
|           port: 80
 | |
|   tls:
 | |
|     certResolver: cert-manager
 | |
|     secretName: proxmox-tls
 | |
|     domains:
 | |
|       - main: "${PROXMOX_HOST}"
 |