87 lines
2.6 KiB
YAML
87 lines
2.6 KiB
YAML
|
|
# NetworkPolicy for dummy-sink.
|
||
|
|
#
|
||
|
|
# Cluster-wide NetworkPolicy enforcement is active on BasicStack (see
|
||
|
|
# cluster memory on NetworkPolicy activation). Pods in agent-trust
|
||
|
|
# without an explicit allow-list are isolated; this file is the
|
||
|
|
# explicit allow-list for dummy-sink per DEV-615.
|
||
|
|
#
|
||
|
|
# Ingress callers (per Phase-1 architecture V1.1 §7):
|
||
|
|
# - testagent-transform — the sole producer of handover deliveries.
|
||
|
|
#
|
||
|
|
# Egress reachable targets (Phase-1 §7 Senken-Vertrag):
|
||
|
|
# - verification-service — chain verification + replay guard.
|
||
|
|
# - signing-service — handover-attestation signing.
|
||
|
|
# - transparency-log — logging the signed handover envelope.
|
||
|
|
# - DNS — kube-dns for service name resolution.
|
||
|
|
#
|
||
|
|
# dummy-sink intentionally does NOT egress Pocket-ID directly; it uses
|
||
|
|
# the Pocket-ID OIDC endpoint via HTTPS/443 as the client_credentials
|
||
|
|
# source for its Bearer token to signing-service. That cluster-external
|
||
|
|
# target is included below.
|
||
|
|
---
|
||
|
|
apiVersion: networking.k8s.io/v1
|
||
|
|
kind: NetworkPolicy
|
||
|
|
metadata:
|
||
|
|
name: dummy-sink
|
||
|
|
namespace: agent-trust
|
||
|
|
labels:
|
||
|
|
app.kubernetes.io/name: dummy-sink
|
||
|
|
app.kubernetes.io/part-of: proofedmesh
|
||
|
|
spec:
|
||
|
|
podSelector:
|
||
|
|
matchLabels:
|
||
|
|
app.kubernetes.io/name: dummy-sink
|
||
|
|
policyTypes:
|
||
|
|
- Ingress
|
||
|
|
- Egress
|
||
|
|
ingress:
|
||
|
|
- from:
|
||
|
|
- podSelector:
|
||
|
|
matchLabels:
|
||
|
|
app.kubernetes.io/name: testagent-transform
|
||
|
|
ports:
|
||
|
|
- port: 8083
|
||
|
|
protocol: TCP
|
||
|
|
egress:
|
||
|
|
# verification-service (same namespace).
|
||
|
|
- to:
|
||
|
|
- podSelector:
|
||
|
|
matchLabels:
|
||
|
|
app.kubernetes.io/name: verification-service
|
||
|
|
ports:
|
||
|
|
- port: 8084
|
||
|
|
protocol: TCP
|
||
|
|
# signing-service (same namespace).
|
||
|
|
- to:
|
||
|
|
- podSelector:
|
||
|
|
matchLabels:
|
||
|
|
app.kubernetes.io/name: signing-service
|
||
|
|
ports:
|
||
|
|
- port: 8081
|
||
|
|
protocol: TCP
|
||
|
|
# transparency-log (same namespace, port 80 → container 8080).
|
||
|
|
- to:
|
||
|
|
- podSelector:
|
||
|
|
matchLabels:
|
||
|
|
app.kubernetes.io/name: transparency-log
|
||
|
|
ports:
|
||
|
|
- port: 8080
|
||
|
|
protocol: TCP
|
||
|
|
# Pocket-ID OIDC token exchange + JWKS — cluster-external HTTPS/443.
|
||
|
|
- ports:
|
||
|
|
- port: 443
|
||
|
|
protocol: TCP
|
||
|
|
# DNS egress to kube-dns.
|
||
|
|
- to:
|
||
|
|
- namespaceSelector:
|
||
|
|
matchLabels:
|
||
|
|
kubernetes.io/metadata.name: kube-system
|
||
|
|
podSelector:
|
||
|
|
matchLabels:
|
||
|
|
k8s-app: kube-dns
|
||
|
|
ports:
|
||
|
|
- port: 53
|
||
|
|
protocol: UDP
|
||
|
|
- port: 53
|
||
|
|
protocol: TCP
|