Add Pelican panel — EndpointSlice, HTTPRoute, certificate, gateway listener

This commit is contained in:
2026-06-02 19:23:31 +02:00
parent 8931194870
commit 92c8ab9cc9
6 changed files with 129 additions and 0 deletions

View File

@@ -46,6 +46,9 @@ resources:
- ollama/certificate.yaml - ollama/certificate.yaml
- openwebui/certificate.yaml - openwebui/certificate.yaml
- searxng/certificate.yaml - searxng/certificate.yaml
- docuseal/certificate.yaml
- affine/certificate.yaml
- pelican/certificate.yaml
patches: patches:
# Internal gateway patches # Internal gateway patches
@@ -289,6 +292,24 @@ patches:
kind: Gateway kind: Gateway
name: gateway-internal name: gateway-internal
path: searxng/gateway-patch.yaml path: searxng/gateway-patch.yaml
- target:
group: gateway.networking.k8s.io
version: v1
kind: Gateway
name: gateway-internal
path: docuseal/gateway-patch.yaml
- target:
group: gateway.networking.k8s.io
version: v1
kind: Gateway
name: gateway-internal
path: affine/gateway-patch.yaml
- target:
group: gateway.networking.k8s.io
version: v1
kind: Gateway
name: gateway-internal
path: pelican/gateway-patch.yaml
# Public gateway patches # Public gateway patches
- target: - target:

View File

@@ -0,0 +1,14 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: pelican-tls
namespace: envoy-gateway
spec:
secretName: pelican-tls
privateKey:
rotationPolicy: Always
issuerRef:
name: azure-dns
kind: ClusterIssuer
dnsNames:
- pelican.jsme.be

View File

@@ -0,0 +1,19 @@
- op: add
path: /spec/listeners/-
value:
name: pelican
protocol: HTTPS
port: 443
hostname: "pelican.jsme.be"
allowedRoutes:
namespaces:
from: Selector
selector:
matchLabels:
kubernetes.io/metadata.name: pelican
tls:
mode: Terminate
certificateRefs:
- kind: Secret
name: pelican-tls
namespace: envoy-gateway

46
pelican/httproute.yaml Normal file
View File

@@ -0,0 +1,46 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: pelican-route
namespace: pelican
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
namespace: envoy-gateway
sectionName: pelican
hostnames:
- "pelican.jsme.be"
rules:
- matches:
- path:
type: PathPrefix
value: /
filters:
- type: RequestHeaderModifier
requestHeaderModifier:
set:
- name: X-Forwarded-Host
value: "pelican.jsme.be"
- name: X-Forwarded-Proto
value: https
- type: ResponseHeaderModifier
responseHeaderModifier:
set:
- name: Strict-Transport-Security
value: "max-age=31536000; includeSubDomains"
- name: X-Content-Type-Options
value: nosniff
- name: X-Frame-Options
value: SAMEORIGIN
- name: Referrer-Policy
value: strict-origin-when-cross-origin
- name: Permissions-Policy
value: "camera=(), microphone=(), geolocation=(), payment=()"
backendRefs:
- name: pelican
port: 80
kind: Service
group: ""
weight: 1

View File

@@ -0,0 +1,18 @@
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: pelican
namespace: pelican
labels:
kubernetes.io/service-name: pelican
addressType: IPv4
ports:
- port: 80
protocol: TCP
endpoints:
- addresses:
- "10.8.11.50"
conditions:
ready: true
serving: true
terminating: false

11
pelican/pelican-svc.yaml Normal file
View File

@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: pelican
namespace: pelican
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
type: ClusterIP