fix(external-proxmox): valid ingressroute with https backend + working endpoints

- ingress.yaml had invalid 'https:' rules key (dropped by apiserver -> OutOfSync);
  replaced by IngressRoute on websecure with scheme:https + ServersTransport
  (insecureSkipVerify) since Proxmox :8006 is https with self-signed cert
- EndpointSlice apply fails with kubectl 1.31 vs server 1.36 ('unknown field
  spec'), so keep v1 Endpoints (auto-mirrored to EndpointSlice); fixed spec
- shared namespace+middleware moved to services/external (app 'external')

Generated by Mistral Vibe.
Co-Authored-By: Mistral Vibe <[email protected]>
This commit is contained in:
2026-11-14 21:08:52 +01:00
parent b9f5f5a2ae
commit f261cdde66
3 changed files with 37 additions and 45 deletions
-25
View File
@@ -1,25 +0,0 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: external-proxmox
namespace: external
annotations:
traefik.ingress.kubernetes.io/router.entrypoints: websecure
traefik.ingress.kubernetes.io/router.tls: "true"
spec:
ingressClassName: traefik
rules:
- host: proxmox.labzand.com
https:
paths:
- path: /
pathType: Prefix
backend:
service:
name: proxmox-external
port:
number: 8006
tls:
- hosts:
- proxmox.labzand.com
secretName: external-proxmox-labzand-tls
@@ -0,0 +1,29 @@
# Proxmox (:8006) spricht HTTPS met een self-signed cert — daarom een
# IngressRoute (i.p.v. een plain Ingress, die altijd HTTP naar de backend praat)
# met scheme: https en een ServersTransport die het cert niet checkt.
apiVersion: traefik.io/v1alpha1
kind: ServersTransport
metadata:
name: proxmox-insecure
namespace: external
spec:
insecureSkipVerify: true
---
apiVersion: traefik.io/v1alpha1
kind: IngressRoute
metadata:
name: external-proxmox
namespace: external
spec:
entryPoints:
- websecure
tls:
secretName: external-proxmox-labzand-tls
routes:
- match: Host(`proxmox.labzand.com`)
kind: Rule
services:
- name: proxmox-external
port: 8006
scheme: https
serversTransport: proxmox-insecure
+8 -20
View File
@@ -1,5 +1,11 @@
# Service zonder selector: Kubernetes maakt zelf geen Endpoints aan. # Service zonder selector: Kubernetes maakt zelf geen endpoints aan.
# Het Endpoints-object hieronder levert het externe adres (buiten het cluster). # Het Endpoints-object hieronder levert het externe adres (Proxmox, buiten het cluster).
# De endpoints-controller mirrored dit automatisch naar een EndpointSlice.
# (Een handmatige discovery.k8s.io/v1 EndpointSlice faalt op deze cluster met
# kubectl 1.31 tegen server 1.36: "unknown field spec" — daher v1 Endpoints.)
# Let op: ArgoCD trackt Endpoints/EndpointSlice niet — apply deze file handmatig
# als het endpoint ontbreekt:
# kubectl apply -f services/external-proxmox/service.yaml
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
@@ -25,21 +31,3 @@ subsets:
- name: https - name: https
port: 8006 port: 8006
protocol: TCP protocol: TCP
---
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: proxmox-external
labels:
kubernetes.io/service-name: proxmox-external
namespace: external
addressType: IPv4
ports:
- name: https
protocol: TCP
port: 8006
endpoints:
- addresses:
- 192.168.2.64
conditions:
ready: true