chore (ChaosCenter): Adding Network-Policies for control-plane & agent-plane components (#3523)
* Added network policies Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com> * Added some changes in NP Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com> * Added Minor changes for Network-policies Signed-off-by: Jonsy13 <vedant.shrotria@chaosnative.com>
This commit is contained in:
parent
14ad433ce6
commit
a4add75ea0
|
|
@ -0,0 +1,90 @@
|
|||
## Policy for Self-agent Subscriber
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: subscriber-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app: subscriber
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
ingress:
|
||||
- from:
|
||||
# gql-server --> self-agent, Accepting workflow requests from gql-server
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-server
|
||||
|
||||
# external-agent --> gql-server connection, please commentout & update as per requirements
|
||||
# - ipBlock:
|
||||
# cidr: 10.0.0.0/24
|
||||
|
||||
egress:
|
||||
# Needs access to kube-api-server for applying the workflows & for sending events/requests to gql-server
|
||||
- {}
|
||||
---
|
||||
#Policy for event-tracker
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: event-tracker-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app: event-tracker
|
||||
policyTypes:
|
||||
- Egress
|
||||
# Needs access to kube-api-server for reconcilation on workflows & target-applications annoted for gitOps
|
||||
egress:
|
||||
- {}
|
||||
---
|
||||
#Policy for workflow-controller
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: workflow-controller-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app: workflow-controller
|
||||
policyTypes:
|
||||
- Egress
|
||||
egress:
|
||||
# Needs access to kube-api-server for reconcilation & running the scheduled workflows on the cluster
|
||||
- {}
|
||||
---
|
||||
#Policy for chaos-operator
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: chaos-operator-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app.kubernetes.io/component: operator
|
||||
policyTypes:
|
||||
- Egress
|
||||
egress:
|
||||
# Needs access to kube-api-server for reconcilation & running the chaos-injection
|
||||
- {}
|
||||
---
|
||||
#Policy for chaos-exporter
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: chaos-exporter-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
app: chaos-exporter
|
||||
policyTypes:
|
||||
- Egress
|
||||
- Ingress
|
||||
ingress:
|
||||
# Prometheus needs access for fetching metrics. PORT - 8080
|
||||
- {}
|
||||
egress:
|
||||
# Needs access to kube-api-server for metrics
|
||||
- {}
|
||||
|
|
@ -0,0 +1,173 @@
|
|||
---
|
||||
# Policy for Mongo Database
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: db-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
component: database
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
# No outbound connection allowed for DB
|
||||
egress: []
|
||||
ingress:
|
||||
- from:
|
||||
# Accepts connections from gql-server pod
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-server
|
||||
|
||||
# Accepts connections from authg-server pod
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-auth-server
|
||||
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 27017
|
||||
---
|
||||
# Policy for Gql-Server (Needs Egress access to subscriber)
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: server-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-server
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
ingress:
|
||||
# Normal Query/Mutations/Subscriptions ---
|
||||
- from:
|
||||
# frontend --> gql-server connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-frontend
|
||||
|
||||
# self-agent --> gql-server, websocket connections
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: subscriber
|
||||
|
||||
#External Agent rules, please commentout & update as per requirements
|
||||
# - from:
|
||||
# - ipBlock:
|
||||
# cidr: 10.0.0.0/24
|
||||
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8080
|
||||
|
||||
# GRPC connections -------
|
||||
- from:
|
||||
# auth-server --> gql-server, grpc connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: litmusportal-auth-server
|
||||
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 8000
|
||||
|
||||
egress:
|
||||
- to:
|
||||
# gql-server --> auth-server, grpc connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: litmusportal-auth-server
|
||||
|
||||
# Server -> database connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: database
|
||||
|
||||
# Server --> Self-agent, workflow CRUD Ops
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: subscriber
|
||||
|
||||
# Server --> External Agent connection, please commentout & update as per requirements
|
||||
# - ipBlock:
|
||||
# cidr: 10.0.0.0/24
|
||||
|
||||
# Needs access to kube-api-server as well for Ingress related operations
|
||||
---
|
||||
# Policy for Auth-Server (Needs Egress access to subscriber)
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: auth-server-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-auth-server
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
ingress:
|
||||
#normal connections
|
||||
- from:
|
||||
# Frontend --> auth-Server connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-frontend
|
||||
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 3000
|
||||
|
||||
# GRPC connections
|
||||
- from:
|
||||
# gql-server --> auth-server, grpc connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: litmusportal-server
|
||||
ports:
|
||||
- protocol: TCP
|
||||
port: 3030
|
||||
|
||||
egress:
|
||||
- to:
|
||||
# Auth-Server -> database connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: database
|
||||
|
||||
# auth-server --> gql-server, grpc connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
app: litmusportal-server
|
||||
|
||||
---
|
||||
#Policy for Frontend pod (Allows External/Internal Traffic & egress only to server pod)
|
||||
apiVersion: networking.k8s.io/v1
|
||||
kind: NetworkPolicy
|
||||
metadata:
|
||||
name: frontend-network-policy
|
||||
spec:
|
||||
podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-frontend
|
||||
# Allowed all Ingress connections, customize according to requirements
|
||||
ingress:
|
||||
- {}
|
||||
egress:
|
||||
- to:
|
||||
# frontend --> gql-server connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-server
|
||||
|
||||
# frontend --> auth-server connection
|
||||
- podSelector:
|
||||
matchLabels:
|
||||
component: litmusportal-auth-server
|
||||
|
||||
policyTypes:
|
||||
- Ingress
|
||||
- Egress
|
||||
Loading…
Reference in New Issue