Files
athletic-map-deploy/tenants/acme/00-namespace-quota-netpol.yaml
T

65 lines
1.5 KiB
YAML

# Silo "demo" — isolamento do tenant (namespace + quota + limites + rede)
apiVersion: v1
kind: Namespace
metadata:
name: acme-prod
labels:
name: acme-prod
tenant: acme
athleticmap.io/tier: pilot
---
apiVersion: v1
kind: ResourceQuota
metadata:
name: tenant-quota
namespace: acme-prod
spec:
hard:
requests.cpu: "4"
requests.memory: 7Gi
limits.cpu: "8"
limits.memory: 10Gi
pods: "30"
persistentvolumeclaims: "4"
---
apiVersion: v1
kind: LimitRange
metadata:
name: defaults
namespace: acme-prod
spec:
limits:
- type: Container
default:
cpu: 500m
memory: 512Mi
defaultRequest:
cpu: 100m
memory: 128Mi
---
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
name: deny-cross-tenant
namespace: acme-prod
spec:
podSelector: {}
policyTypes: [Ingress, Egress]
ingress:
- from:
- podSelector: {}
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
egress:
- to: # intra-namespace (pods) + ClusterIPs (VIP de service, pre-DNAT)
- podSelector: {}
- ipBlock: { cidr: 10.43.0.0/16 }
- to: # DNS (CoreDNS em kube-system)
- namespaceSelector:
matchLabels:
kubernetes.io/metadata.name: kube-system
ports:
- { protocol: UDP, port: 53 }
- { protocol: TCP, port: 53 }