pelican: split wings into wings-mc and wings-ark domains

This commit is contained in:
2026-08-16 21:09:00 +02:00
parent 7403edf7d5
commit 17c84d2ba8
13 changed files with 123 additions and 17 deletions
+1 -1
View File
@@ -39,7 +39,7 @@ spec:
- name: Permissions-Policy
value: "camera=(), microphone=(), geolocation=(), payment=()"
- name: Content-Security-Policy
value: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; img-src 'self' data: blob: https://gravatar.com https://www.gravatar.com; font-src 'self' data: https://cdnjs.cloudflare.com; connect-src 'self' https://wings.jsme.be wss://wings.jsme.be ws: wss:; worker-src blob:; frame-ancestors 'self'"
value: "default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval' https://cdnjs.cloudflare.com; style-src 'self' 'unsafe-inline' https://cdnjs.cloudflare.com; img-src 'self' data: blob: https://gravatar.com https://www.gravatar.com; font-src 'self' data: https://cdnjs.cloudflare.com; connect-src 'self' https://wings-mc.jsme.be wss://wings-mc.jsme.be https://wings-ark.jsme.be wss://wings-ark.jsme.be ws: wss:; worker-src blob:; frame-ancestors 'self'"
backendRefs:
- name: pelican
port: 80
@@ -0,0 +1,20 @@
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: wings-ark
namespace: pelican
labels:
kubernetes.io/service-name: wings-ark
addressType: IPv4
ports:
- port: 8080
protocol: TCP
endpoints:
# PLACEHOLDER: replace with the ARK wings VM IP once it exists,
# then flip ready/serving to true
- addresses:
- "10.8.11.51"
conditions:
ready: false
serving: false
terminating: false
@@ -0,0 +1,25 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: wings-ark-route
namespace: pelican
spec:
parentRefs:
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
namespace: envoy-gateway
sectionName: wings-ark
hostnames:
- "wings-ark.jsme.be"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: wings-ark
port: 8080
kind: Service
group: ""
weight: 1
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: wings-ark
namespace: pelican
spec:
ports:
- protocol: TCP
port: 8080
targetPort: 8080
type: ClusterIP
@@ -1,10 +1,10 @@
apiVersion: discovery.k8s.io/v1
kind: EndpointSlice
metadata:
name: wings
name: wings-mc
namespace: pelican
labels:
kubernetes.io/service-name: wings
kubernetes.io/service-name: wings-mc
addressType: IPv4
ports:
- port: 8080
@@ -1,7 +1,7 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: wings-route
name: wings-mc-route
namespace: pelican
spec:
parentRefs:
@@ -9,16 +9,16 @@ spec:
kind: Gateway
name: gateway-internal
namespace: envoy-gateway
sectionName: wings
sectionName: wings-mc
hostnames:
- "wings.jsme.be"
- "wings-mc.jsme.be"
rules:
- matches:
- path:
type: PathPrefix
value: /
backendRefs:
- name: wings
- name: wings-mc
port: 8080
kind: Service
group: ""
@@ -1,7 +1,7 @@
apiVersion: v1
kind: Service
metadata:
name: wings
name: wings-mc
namespace: pelican
spec:
ports:
+15 -2
View File
@@ -2,9 +2,15 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- envoy-gateway-namespace.yaml
- gateway.yaml
- gateway-public.yaml
# CrowdSec (public gateway hardening) — HELD pending enforcement-scope decision
# (EG v1.3.2 SecurityPolicy does not support sectionName; see it-tools-securitypolicy.yaml)
# - crowdsec/envoyproxy-public.yaml
# - crowdsec/it-tools-securitypolicy.yaml
# Policies
- pelican/pelican-wings-clienttrafficpolicy.yaml
- minio-aistor/minio-aistor-clienttrafficpolicy.yaml
@@ -46,7 +52,8 @@ resources:
- searxng/searxng-certificate.yaml
- affine/affine-certificate.yaml
- pelican/pelican-certificate.yaml
- pelican/pelican-wings-certificate.yaml
- pelican/pelican-wings-mc-certificate.yaml
- pelican/pelican-wings-ark-certificate.yaml
- outline/outline-certificate.yaml
patches:
@@ -266,7 +273,13 @@ patches:
version: v1
kind: Gateway
name: gateway-internal
path: pelican/pelican-wings-gateway-patch.yaml
path: pelican/pelican-wings-mc-gateway-patch.yaml
- target:
group: gateway.networking.k8s.io
version: v1
kind: Gateway
name: gateway-internal
path: pelican/pelican-wings-ark-gateway-patch.yaml
- target:
group: gateway.networking.k8s.io
version: v1
@@ -0,0 +1,14 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wings-ark-tls
namespace: envoy-gateway
spec:
secretName: wings-ark-tls
privateKey:
rotationPolicy: Always
issuerRef:
name: azure-dns
kind: ClusterIssuer
dnsNames:
- wings-ark.jsme.be
@@ -0,0 +1,19 @@
- op: add
path: /spec/listeners/-
value:
name: wings-ark
protocol: HTTPS
port: 443
hostname: "wings-ark.jsme.be"
allowedRoutes:
namespaces:
from: Selector
selector:
matchLabels:
kubernetes.io/metadata.name: pelican
tls:
mode: Terminate
certificateRefs:
- kind: Secret
name: wings-ark-tls
namespace: envoy-gateway
@@ -8,7 +8,11 @@ spec:
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
sectionName: wings
sectionName: wings-mc
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
sectionName: wings-ark
tls:
# Wings only speaks HTTP/1.1; disabling h2 ALPN prevents Guzzle connection-reuse broken pipe
alpnProtocols:
@@ -1,14 +1,14 @@
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: wings-tls
name: wings-mc-tls
namespace: envoy-gateway
spec:
secretName: wings-tls
secretName: wings-mc-tls
privateKey:
rotationPolicy: Always
issuerRef:
name: azure-dns
kind: ClusterIssuer
dnsNames:
- wings.jsme.be
- wings-mc.jsme.be
@@ -1,10 +1,10 @@
- op: add
path: /spec/listeners/-
value:
name: wings
name: wings-mc
protocol: HTTPS
port: 443
hostname: "wings.jsme.be"
hostname: "wings-mc.jsme.be"
allowedRoutes:
namespaces:
from: Selector
@@ -15,5 +15,5 @@
mode: Terminate
certificateRefs:
- kind: Secret
name: wings-tls
name: wings-mc-tls
namespace: envoy-gateway