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 - name: Permissions-Policy
value: "camera=(), microphone=(), geolocation=(), payment=()" value: "camera=(), microphone=(), geolocation=(), payment=()"
- name: Content-Security-Policy - 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: backendRefs:
- name: pelican - name: pelican
port: 80 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 apiVersion: discovery.k8s.io/v1
kind: EndpointSlice kind: EndpointSlice
metadata: metadata:
name: wings name: wings-mc
namespace: pelican namespace: pelican
labels: labels:
kubernetes.io/service-name: wings kubernetes.io/service-name: wings-mc
addressType: IPv4 addressType: IPv4
ports: ports:
- port: 8080 - port: 8080
@@ -1,7 +1,7 @@
apiVersion: gateway.networking.k8s.io/v1 apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute kind: HTTPRoute
metadata: metadata:
name: wings-route name: wings-mc-route
namespace: pelican namespace: pelican
spec: spec:
parentRefs: parentRefs:
@@ -9,16 +9,16 @@ spec:
kind: Gateway kind: Gateway
name: gateway-internal name: gateway-internal
namespace: envoy-gateway namespace: envoy-gateway
sectionName: wings sectionName: wings-mc
hostnames: hostnames:
- "wings.jsme.be" - "wings-mc.jsme.be"
rules: rules:
- matches: - matches:
- path: - path:
type: PathPrefix type: PathPrefix
value: / value: /
backendRefs: backendRefs:
- name: wings - name: wings-mc
port: 8080 port: 8080
kind: Service kind: Service
group: "" group: ""
@@ -1,7 +1,7 @@
apiVersion: v1 apiVersion: v1
kind: Service kind: Service
metadata: metadata:
name: wings name: wings-mc
namespace: pelican namespace: pelican
spec: spec:
ports: ports:
+15 -2
View File
@@ -2,9 +2,15 @@ apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization kind: Kustomization
resources: resources:
- envoy-gateway-namespace.yaml
- gateway.yaml - gateway.yaml
- gateway-public.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 # Policies
- pelican/pelican-wings-clienttrafficpolicy.yaml - pelican/pelican-wings-clienttrafficpolicy.yaml
- minio-aistor/minio-aistor-clienttrafficpolicy.yaml - minio-aistor/minio-aistor-clienttrafficpolicy.yaml
@@ -46,7 +52,8 @@ resources:
- searxng/searxng-certificate.yaml - searxng/searxng-certificate.yaml
- affine/affine-certificate.yaml - affine/affine-certificate.yaml
- pelican/pelican-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 - outline/outline-certificate.yaml
patches: patches:
@@ -266,7 +273,13 @@ patches:
version: v1 version: v1
kind: Gateway kind: Gateway
name: gateway-internal 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: - target:
group: gateway.networking.k8s.io group: gateway.networking.k8s.io
version: v1 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 - group: gateway.networking.k8s.io
kind: Gateway kind: Gateway
name: gateway-internal name: gateway-internal
sectionName: wings sectionName: wings-mc
- group: gateway.networking.k8s.io
kind: Gateway
name: gateway-internal
sectionName: wings-ark
tls: tls:
# Wings only speaks HTTP/1.1; disabling h2 ALPN prevents Guzzle connection-reuse broken pipe # Wings only speaks HTTP/1.1; disabling h2 ALPN prevents Guzzle connection-reuse broken pipe
alpnProtocols: alpnProtocols:
@@ -1,14 +1,14 @@
apiVersion: cert-manager.io/v1 apiVersion: cert-manager.io/v1
kind: Certificate kind: Certificate
metadata: metadata:
name: wings-tls name: wings-mc-tls
namespace: envoy-gateway namespace: envoy-gateway
spec: spec:
secretName: wings-tls secretName: wings-mc-tls
privateKey: privateKey:
rotationPolicy: Always rotationPolicy: Always
issuerRef: issuerRef:
name: azure-dns name: azure-dns
kind: ClusterIssuer kind: ClusterIssuer
dnsNames: dnsNames:
- wings.jsme.be - wings-mc.jsme.be
@@ -1,10 +1,10 @@
- op: add - op: add
path: /spec/listeners/- path: /spec/listeners/-
value: value:
name: wings name: wings-mc
protocol: HTTPS protocol: HTTPS
port: 443 port: 443
hostname: "wings.jsme.be" hostname: "wings-mc.jsme.be"
allowedRoutes: allowedRoutes:
namespaces: namespaces:
from: Selector from: Selector
@@ -15,5 +15,5 @@
mode: Terminate mode: Terminate
certificateRefs: certificateRefs:
- kind: Secret - kind: Secret
name: wings-tls name: wings-mc-tls
namespace: envoy-gateway namespace: envoy-gateway