apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: tenant-isolation-policy namespace: testtenant spec: podSelector: {} # Selects all pods in the namespace policyTypes: - Ingress - Egress ingress: - from: - podSelector: {} # Allow from all pods in the same namespace egress: - to: - podSelector: {} # Allow to all pods in the same namespace - to: - podSelector: {} namespaceSelector: matchLabels: kubernetes.io/metadata.name: openshift-dns # Target the openshift-dns namespace # Note, only opening port 53 is not enough, will have to dig deeper into this one eventually # ports: # - protocol: UDP # port: 53 # - protocol: TCP # port: 53 # Allow egress to public internet only - to: - ipBlock: cidr: 0.0.0.0/0 except: - 10.0.0.0/8 # RFC1918 - 172.16.0.0/12 # RFC1918 - 192.168.0.0/16 # RFC1918 - 169.254.0.0/16 # Link-local - 127.0.0.0/8 # Loopback - 224.0.0.0/4 # Multicast - 240.0.0.0/4 # Reserved - 100.64.0.0/10 # Carrier-grade NAT - 0.0.0.0/8 # Reserved