# FlowerCore.DeviceManagement NetworkPolicies. # # NetworkPolicies belong in bluejay-infra so ArgoCD owns rebuild state. # Rules include Traefik post-DNAT backend ports per # feedback_netpol_dnat_backend_port and Synology NFS egress for the requested # cold-tier / future artifact path. --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: fc-devicemgmt-web-isolation namespace: fc-devicemgmt labels: app.kubernetes.io/name: fc-devicemgmt-web app.kubernetes.io/component: web app.kubernetes.io/part-of: flowercore app.kubernetes.io/managed-by: argocd flowercore.io/tenant-id: system flowercore.io/created-by: bluejay-infra spec: podSelector: matchLabels: app: fc-devicemgmt-web policyTypes: - Ingress - Egress ingress: # LAN edge: only cluster Traefik should reach the Web pod for # devices.iamworkin.lan. - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: traefik-system podSelector: matchLabels: app.kubernetes.io/name: traefik ports: - port: 8080 protocol: TCP # Direct LAN diagnostics are allowed only from FlowerCore LAN/VPN ranges. - from: - ipBlock: cidr: 10.0.56.0/24 - ipBlock: cidr: 10.0.57.0/24 - ipBlock: cidr: 10.0.58.0/24 - ipBlock: cidr: 10.0.68.0/27 ports: - port: 8080 protocol: TCP egress: # CoreDNS. - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: kube-system podSelector: matchLabels: k8s-app: kube-dns ports: - port: 53 protocol: UDP - port: 53 protocol: TCP # Database namespace. - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: fc-mysql ports: - port: 3306 protocol: TCP # Redis backplane for multi-replica SignalR / live-status fan-out. - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: fc-redis ports: - port: 6379 protocol: TCP # Traefik VIP / in-cluster Traefik for self-callbacks and public URL # generation tests. Include post-DNAT backend ports 8443 + 8080. - to: - ipBlock: cidr: 10.0.56.200/32 - namespaceSelector: matchLabels: kubernetes.io/metadata.name: traefik-system podSelector: matchLabels: app.kubernetes.io/name: traefik ports: - port: 80 protocol: TCP - port: 443 protocol: TCP - port: 8080 protocol: TCP - port: 8443 protocol: TCP # Agent egress: LAN/VPN devices may run DM Agent in Generic, Kiosk, Pi, # ThinClient, or Server mode. Keep this private-range only. - to: - ipBlock: cidr: 10.0.56.0/24 - ipBlock: cidr: 10.0.57.0/24 - ipBlock: cidr: 10.0.58.0/24 - ipBlock: cidr: 10.0.68.0/27 ports: - port: 80 protocol: TCP - port: 443 protocol: TCP - port: 8080 protocol: TCP - port: 8443 protocol: TCP - port: 5000 protocol: TCP - port: 5001 protocol: TCP # Synology NFS cold-tier / artifact mount allowance. - to: - ipBlock: cidr: 10.0.58.3/32 ports: - port: 2049 protocol: TCP - port: 2049 protocol: UDP - port: 111 protocol: TCP - port: 111 protocol: UDP --- apiVersion: networking.k8s.io/v1 kind: NetworkPolicy metadata: name: fc-devicemgmt-operator-isolation namespace: fc-devicemgmt labels: app.kubernetes.io/name: fc-devicemgmt-operator app.kubernetes.io/component: operator app.kubernetes.io/part-of: flowercore app.kubernetes.io/managed-by: argocd flowercore.io/tenant-id: system flowercore.io/created-by: bluejay-infra spec: podSelector: matchLabels: app: fc-devicemgmt-operator policyTypes: - Ingress - Egress ingress: - from: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: monitoring ports: - port: 8080 protocol: TCP egress: # CoreDNS. - to: - namespaceSelector: matchLabels: kubernetes.io/metadata.name: kube-system podSelector: matchLabels: k8s-app: kube-dns ports: - port: 53 protocol: UDP - port: 53 protocol: TCP # Kubernetes API for KubeOps reconciliation and Deployment UID lookup. - to: [] ports: - port: 443 protocol: TCP - port: 6443 protocol: TCP # Agent egress for operator-initiated probes / fallback command dispatch. - to: - ipBlock: cidr: 10.0.56.0/24 - ipBlock: cidr: 10.0.57.0/24 - ipBlock: cidr: 10.0.58.0/24 - ipBlock: cidr: 10.0.68.0/27 ports: - port: 80 protocol: TCP - port: 443 protocol: TCP - port: 8080 protocol: TCP - port: 8443 protocol: TCP - port: 5000 protocol: TCP - port: 5001 protocol: TCP # Synology NFS allowance for future cold-tier/audit archival jobs. - to: - ipBlock: cidr: 10.0.58.3/32 ports: - port: 2049 protocol: TCP - port: 2049 protocol: UDP - port: 111 protocol: TCP - port: 111 protocol: UDP