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:
@@ -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
|
||||||
@@ -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
|
|
||||||
Reference in New Issue
Block a user