pelican: expose the panel on the public gateway
Adds a pelican listener to gateway-public and a gateway-public parentRef to pelican-route. Reuses the existing pelican-tls certificate, which both listeners reference. Wings deliberately stays internal-only. That is a real functional limit, not an oversight: the browser talks to wings directly for the console websocket and for file upload/download, using the address from Node::getConnectionAddress. From outside the LAN those calls will fail. Panel login, server list, file browsing and editing, and power actions all go through the panel API and keep working, because the panel reaches wings server-side over the internal gateway. CrowdSec ext_authz already covers every listener on gateway-public, so the panel is behind the WAF and community blocklist from the moment it is live. Prerequisites completed first: TRUSTED_PROXIES=10.42.0.0/16 and APP_2FA_REQUIRED=1 set in Infisical and verified live in the panel config. pelican.jsme.be has no public DNS record yet, so this makes the panel reachable through 10.8.11.105 but not from the internet. The Azure DNS CNAME in the OpenTofu repo is the actual cutover.
This commit is contained in:
@@ -10,6 +10,11 @@ spec:
|
||||
name: gateway-internal
|
||||
namespace: envoy-gateway
|
||||
sectionName: pelican
|
||||
- group: gateway.networking.k8s.io
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
namespace: envoy-gateway
|
||||
sectionName: pelican
|
||||
hostnames:
|
||||
- "pelican.jsme.be"
|
||||
rules:
|
||||
|
||||
@@ -379,6 +379,12 @@ patches:
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: outline/outline-gateway-public-patch.yaml
|
||||
- target:
|
||||
group: gateway.networking.k8s.io
|
||||
version: v1
|
||||
kind: Gateway
|
||||
name: gateway-public
|
||||
path: pelican/pelican-gateway-public-patch.yaml
|
||||
# Uncomment to expose Grafana publicly — ensure Grafana auth is properly configured first
|
||||
# - target:
|
||||
# group: gateway.networking.k8s.io
|
||||
|
||||
@@ -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
|
||||
Reference in New Issue
Block a user