feat(homelab)!: create interface for homelab management, use templating for route generation & support more options and route types
This commit is contained in:
10
nix/homelab/src/templates/http_middleware_chain.yaml
Normal file
10
nix/homelab/src/templates/http_middleware_chain.yaml
Normal 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
|
||||
23
nix/homelab/src/templates/httproute.yaml
Normal file
23
nix/homelab/src/templates/httproute.yaml
Normal 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 %}
|
||||
18
nix/homelab/src/templates/ingressroutetcp.yaml
Normal file
18
nix/homelab/src/templates/ingressroutetcp.yaml
Normal 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 }}
|
||||
Reference in New Issue
Block a user