diff --git a/apps/external-beszel.yaml b/apps/external-beszel.yaml new file mode 100644 index 0000000..c97dddc --- /dev/null +++ b/apps/external-beszel.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: external-beszel + namespace: argocd +spec: + project: default + source: + repoURL: https://gitea.labzand.com/willemjan/cluster.git + targetRevision: main + path: services/external/external-beszel + 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/services/external/external-autotune/ingressroute.yaml b/services/external/external-autotune/ingressroute.yaml index cd4818e..79850ab 100644 --- a/services/external/external-autotune/ingressroute.yaml +++ b/services/external/external-autotune/ingressroute.yaml @@ -1,29 +1,25 @@ -# autotune (:8043) 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: autotune-insecure - namespace: external -spec: - insecureSkipVerify: true ---- -apiVersion: traefik.io/v1alpha1 -kind: IngressRoute +apiVersion: networking.k8s.io/v1 +kind: Ingress metadata: name: external-autotune namespace: external + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" spec: - entryPoints: - - websecure + ingressClassName: traefik + rules: + - host: autotune.labzand.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: autotune-external + port: + number: 8502 tls: + - hosts: + - autotune.labzand.com secretName: external-autotune-labzand-tls - routes: - - match: Host(`autotune.labzand.com`) - kind: Rule - services: - - name: autotune-external - port: 8502 - scheme: https - serversTransport: autotune-insecure diff --git a/services/external/external-beszel/cert.yaml b/services/external/external-beszel/cert.yaml new file mode 100644 index 0000000..aa902a2 --- /dev/null +++ b/services/external/external-beszel/cert.yaml @@ -0,0 +1,11 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: external-beszel-labzand + namespace: external +spec: + secretName: external-beszel-labzand-tls + dnsNames: ["beszel.labzand.com"] + issuerRef: + name: cloudflare-dns + kind: ClusterIssuer \ No newline at end of file diff --git a/services/external/external-beszel/ingressroute-redirect.yaml b/services/external/external-beszel/ingressroute-redirect.yaml new file mode 100644 index 0000000..d54e117 --- /dev/null +++ b/services/external/external-beszel/ingressroute-redirect.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: external-beszel-redirect + namespace: external +spec: + entryPoints: + - web + routes: + - match: Host(`beszel.labzand.com`) + kind: Rule + middlewares: + - name: redirect-https + services: + - name: api@internal + kind: TraefikService diff --git a/services/external/external-beszel/ingressroute.yaml b/services/external/external-beszel/ingressroute.yaml new file mode 100644 index 0000000..0ce6bee --- /dev/null +++ b/services/external/external-beszel/ingressroute.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: external-beszel + namespace: external + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" +spec: + ingressClassName: traefik + rules: + - host: beszel.labzand.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: beszel-external + port: + number: 8090 + tls: + - hosts: + - beszel.labzand.com + secretName: external-beszel-labzand-tls diff --git a/services/external/external-beszel/service.yaml b/services/external/external-beszel/service.yaml new file mode 100644 index 0000000..1e98ac4 --- /dev/null +++ b/services/external/external-beszel/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: beszel-external + namespace: external +spec: + type: ClusterIP + ports: + - name: http + port: 8090 + targetPort: 8090 + protocol: TCP +--- +apiVersion: v1 +kind: Endpoints +metadata: + name: beszel-external + namespace: external +subsets: + - addresses: + - ip: 192.168.2.61 + ports: + - name: http + port: 8090 + protocol: TCP