From 69a3ed9ffe76e72ddb166abc38820d88ec95ccd9 Mon Sep 17 00:00:00 2001 From: willemjan Date: Sat, 14 Nov 2026 20:42:25 +0100 Subject: [PATCH] feat: moved the namespace and middleware to a spereate app and added proxmox stuff --- apps/external-ns.yaml | 2 +- apps/external-proxmox.yaml | 18 +++++++++++++ apps/external.yaml | 18 +++++++++++++ services/external-proxmox/cert.yaml | 11 ++++++++ services/external-proxmox/ingress.yaml | 25 +++++++++++++++++ .../ingressroute-redirect.yaml | 16 +++++++++++ services/external-proxmox/service.yaml | 27 +++++++++++++++++++ .../middleware.yaml | 0 .../namespace.yaml | 0 9 files changed, 116 insertions(+), 1 deletion(-) create mode 100644 apps/external-proxmox.yaml create mode 100644 apps/external.yaml create mode 100644 services/external-proxmox/cert.yaml create mode 100644 services/external-proxmox/ingress.yaml create mode 100644 services/external-proxmox/ingressroute-redirect.yaml create mode 100644 services/external-proxmox/service.yaml rename services/{external-nightscout => external}/middleware.yaml (100%) rename services/{external-nightscout => external}/namespace.yaml (100%) diff --git a/apps/external-ns.yaml b/apps/external-ns.yaml index b98dec3..9cb158a 100644 --- a/apps/external-ns.yaml +++ b/apps/external-ns.yaml @@ -15,4 +15,4 @@ spec: syncPolicy: automated: {prune: true, selfHeal: true} syncOptions: - - CreateNamespace=true + - CreateNamespace=false diff --git a/apps/external-proxmox.yaml b/apps/external-proxmox.yaml new file mode 100644 index 0000000..2bc5e16 --- /dev/null +++ b/apps/external-proxmox.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: external-proxmox + namespace: argocd +spec: + project: default + source: + repoURL: https://gitea.zb-kw.duckdns.org/willemjan/cluster.git + targetRevision: main + path: services/external-proxmox + destination: + server: https://kubernetes.default.svc + namespace: external + syncPolicy: + automated: {prune: true, selfHeal: true} + syncOptions: + - CreateNamespace=false \ No newline at end of file diff --git a/apps/external.yaml b/apps/external.yaml new file mode 100644 index 0000000..044cead --- /dev/null +++ b/apps/external.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: external + namespace: argocd +spec: + project: default + source: + repoURL: https://gitea.zb-kw.duckdns.org/willemjan/cluster.git + targetRevision: main + path: services/external + destination: + server: https://kubernetes.default.svc + namespace: external + syncPolicy: + automated: {prune: true, selfHeal: true} + syncOptions: + - CreateNamespace=true \ No newline at end of file diff --git a/services/external-proxmox/cert.yaml b/services/external-proxmox/cert.yaml new file mode 100644 index 0000000..86ba0e9 --- /dev/null +++ b/services/external-proxmox/cert.yaml @@ -0,0 +1,11 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: external-proxmox-labzand + namespace: external +spec: + secretName: external-proxmox-labzand-tls + dnsNames: ["proxmox.labzand.com"] + issuerRef: + name: cloudflare-dns + kind: ClusterIssuer \ No newline at end of file diff --git a/services/external-proxmox/ingress.yaml b/services/external-proxmox/ingress.yaml new file mode 100644 index 0000000..8be61ea --- /dev/null +++ b/services/external-proxmox/ingress.yaml @@ -0,0 +1,25 @@ +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 \ No newline at end of file diff --git a/services/external-proxmox/ingressroute-redirect.yaml b/services/external-proxmox/ingressroute-redirect.yaml new file mode 100644 index 0000000..78188fe --- /dev/null +++ b/services/external-proxmox/ingressroute-redirect.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: external-proxmox-redirect + namespace: external +spec: + entryPoints: + - web + routes: + - match: Host(`proxmox.labzand.com`) + kind: Rule + middlewares: + - name: redirect-https + services: + - name: api@internal + kind: TraefikService diff --git a/services/external-proxmox/service.yaml b/services/external-proxmox/service.yaml new file mode 100644 index 0000000..6b2e24f --- /dev/null +++ b/services/external-proxmox/service.yaml @@ -0,0 +1,27 @@ +# Service zonder selector: Kubernetes maakt zelf geen Endpoints aan. +# Het Endpoints-object hieronder levert het externe adres (buiten het cluster). +apiVersion: v1 +kind: Service +metadata: + name: proxmox-external + namespace: external +spec: + type: ClusterIP + ports: + - name: https + port: 8006 + targetPort: 8006 + protocol: TCP +--- +apiVersion: v1 +kind: Endpoints +metadata: + name: proxmox-external + namespace: external +subsets: + - addresses: + - ip: 192.168.2.64 + ports: + - name: https + port: 8006 + protocol: TCP diff --git a/services/external-nightscout/middleware.yaml b/services/external/middleware.yaml similarity index 100% rename from services/external-nightscout/middleware.yaml rename to services/external/middleware.yaml diff --git a/services/external-nightscout/namespace.yaml b/services/external/namespace.yaml similarity index 100% rename from services/external-nightscout/namespace.yaml rename to services/external/namespace.yaml