refactor: drop istio mesh egress, use cilium FQDN for znc egress filtering
Best Practices / Kube-score Analysis (push) Has been cancelled
Best Practices / Polaris Audit (push) Has been cancelled
Best Practices / Resource Usage Analysis (push) Has been cancelled
Best Practices / PR Summary Report (push) Has been cancelled
Best Practices / Polaris PR Review (push) Has been cancelled
Security Scan / Trivy Security Scan (push) Has been cancelled
Security Scan / Trivy PR Review (push) Has been cancelled
Security Scan / Checkov IaC Scan (push) Has been cancelled
Security Scan / Checkov PR Review (push) Has been cancelled
Validate Manifests / Kustomize Build Test (push) Has been cancelled
Validate Manifests / Kubernetes Schema Validation (push) Has been cancelled
Validate Manifests / YAML Lint (push) Has been cancelled

Istio ambient cannot do hostname-based egress filtering without L7
processing (waypoint/sidecar). Cilium FQDN CiliumNetworkPolicy is the
right tool — DNS-aware L3/L4 enforcement.

- Remove waypoint deployment and namespace/service label references
- Move TheLounge HTTPRoute back to Cilium external gateway
- Add CiliumNetworkPolicy for znc: allow DNS + irc.passthepopcorn.me:6697
- Remove orphaned znc/egress.yaml (Istio VirtualService routing)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 18:03:11 -04:00
parent 31e6864a2a
commit 84ee1fa8b8
8 changed files with 29 additions and 18 deletions
-1
View File
@@ -5,7 +5,6 @@ namespace: irc
resources:
- namespace.yaml
- waypoint.yaml
# Uncomment if storing configuration in the repo
# - configmap.yaml
- ./thelounge
-1
View File
@@ -4,4 +4,3 @@ metadata:
name: irc
labels:
istio.io/dataplane-mode: ambient
istio.io/use-waypoint: waypoint
+1 -1
View File
@@ -5,7 +5,7 @@ metadata:
namespace: irc
spec:
parentRefs:
- name: istio-external
- name: external
namespace: gateway-system
hostnames:
- ${THELOUNGE_HOSTNAME}
-1
View File
@@ -6,7 +6,6 @@ metadata:
name: thelounge
labels:
app.kubernetes.io/name: thelounge
istio.io/use-waypoint: waypoint
spec:
type: ClusterIP
ports:
-13
View File
@@ -1,13 +0,0 @@
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
name: waypoint
namespace: irc
labels:
istio.io/waypoint-for: namespace
spec:
gatewayClassName: istio-waypoint
listeners:
- name: mesh
port: 15008
protocol: HBONE
+27
View File
@@ -0,0 +1,27 @@
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
name: znc-egress
namespace: irc
spec:
endpointSelector:
matchLabels:
app.kubernetes.io/name: znc
egress:
- toEndpoints:
- matchLabels:
k8s:io.kubernetes.pod.namespace: kube-system
k8s:k8s-app: kube-dns
toPorts:
- ports:
- port: "53"
protocol: ANY
rules:
dns:
- matchPattern: "*"
- toFQDNs:
- matchName: "irc.passthepopcorn.me"
toPorts:
- ports:
- port: "6697"
protocol: TCP
+1
View File
@@ -4,3 +4,4 @@ resources:
- statefulset.yaml
- service.yaml
- authorizationpolicy.yaml
- ciliumnetworkpolicy.yaml
-1
View File
@@ -6,7 +6,6 @@ metadata:
name: znc
labels:
app.kubernetes.io/name: znc
istio.io/use-waypoint: waypoint
annotations:
external-dns.alpha.kubernetes.io/hostname: ${ZNC_HOSTNAME}
spec: