feat(homelab)!: create interface for homelab management, use templating for route generation & support more options and route types

This commit is contained in:
2026-01-11 14:57:19 -08:00
parent 29cff3bf84
commit 73f8cb91c4
45 changed files with 3907 additions and 109 deletions

View File

@@ -0,0 +1,10 @@
apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: private-networks
namespace: {{ namespace }}
spec:
chain:
middlewares:
- name: private-networks
namespace: kube-system

View File

@@ -0,0 +1,23 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: {{ name }}
namespace: {{ namespace }}
spec:
parentRefs:
- name: traefik-gateway
namespace: kube-system
hostnames:
- {{ hostname }}.lucalise.ca
rules:
- backendRefs:
- name: {{ service }}
port: {{ port }}
{%- if private %}
filters:
- type: ExtensionRef
extensionRef:
group: traefik.io
kind: Middleware
name: private-networks
{%- endif %}

View File

@@ -0,0 +1,18 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: {{ name }}
namespace: {{ namespace }}
spec:
entryPoints:
- {{ entrypoint }}
routes:
- match: HostSNI(`*`)
{%- if private %}
middlewares:
- name: private-networks-tcp
namespace: kube-system
{%- endif %}
services:
- name: {{ service }}
port: {{ port }}