[DO-1496] add limits and network-policy (!4)
схлопнул networkpolicy limits и namespace в один файл и назвал его так же как namespace Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.tech> Reviewed-on: https://git.avroid.tech/K8s/k8s-configs/pulls/4 Reviewed-by: Denis Patrakeev <denis.patrakeev@avroid.team> Co-authored-by: Rustam Tagaev <rustam.tagaev@avroid.team> Co-committed-by: Rustam Tagaev <rustam.tagaev@avroid.team>
This commit is contained in:
committed by
Denis Patrakeev
parent
7f14546f78
commit
da6bf80454
@@ -0,0 +1,51 @@
|
|||||||
|
---
|
||||||
|
# создаем namespace
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: example
|
||||||
|
labels:
|
||||||
|
name: example
|
||||||
|
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/node-selector: "nodetype=worker"
|
||||||
|
---
|
||||||
|
# выделяем лимиты на текущий namespace
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ResourceQuota
|
||||||
|
metadata:
|
||||||
|
name: example
|
||||||
|
namespace: example
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
hard:
|
||||||
|
configmaps: "100"
|
||||||
|
limits.cpu: "16"
|
||||||
|
limits.memory: 32Gi
|
||||||
|
persistentvolumeclaims: "1"
|
||||||
|
pods: "100"
|
||||||
|
replicationcontrollers: "0"
|
||||||
|
requests.cpu: "8"
|
||||||
|
requests.memory: "24Gi"
|
||||||
|
requests.storage: "2Gi"
|
||||||
|
resourcequotas: "1"
|
||||||
|
secrets: "100"
|
||||||
|
services: "100"
|
||||||
|
services.loadbalancers: "0"
|
||||||
|
services.nodeports: "0"
|
||||||
|
---
|
||||||
|
# запрещаем все для текущего namespace
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: deny-all
|
||||||
|
namespace: example
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
- Egress
|
||||||
|
ingress: []
|
||||||
|
egress: []
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# тут будут values для приложений которые развернуты через argo
|
||||||
@@ -0,0 +1,52 @@
|
|||||||
|
---
|
||||||
|
# разрещаем сервису принимать входящие запросы на порт 8080
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: super-service-in
|
||||||
|
namespace: example
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: super-service
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- ports:
|
||||||
|
- port: 8080
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: super-service-out
|
||||||
|
namespace: example
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: super-service
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
egress:
|
||||||
|
- to:
|
||||||
|
# пример для внутренних ресурсов
|
||||||
|
# разрещаем сервису отправлять запросы на порт 8000 сервиса superman
|
||||||
|
- podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: superman
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
protocol: TCP
|
||||||
|
- to:
|
||||||
|
- ipBlock:
|
||||||
|
# пример для внешних ресурсов
|
||||||
|
# тут пишем название домена например test.avroid.tech домен резолвится в 192.168.1.2
|
||||||
|
# для того что бы понимать куда смотрит ip
|
||||||
|
cidr: 192.168.1.2/32
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
protocol: TCP
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
# тут будут values от helm
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: sandbox
|
|
||||||
labels:
|
|
||||||
name: sandbox
|
|
||||||
app.kubernetes.io/managed-by: manual
|
|
||||||
annotations:
|
|
||||||
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ResourceQuota
|
|
||||||
metadata:
|
|
||||||
name: sandbox
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/managed-by: manual
|
|
||||||
spec:
|
|
||||||
hard:
|
|
||||||
requests.cpu: "8"
|
|
||||||
requests.memory: 24Gi
|
|
||||||
limits.cpu: "16"
|
|
||||||
limits.memory: 32Gi
|
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: sandbox
|
||||||
|
labels:
|
||||||
|
name: sandbox
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ResourceQuota
|
||||||
|
metadata:
|
||||||
|
name: sandbox
|
||||||
|
namespace: sandbox
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
hard:
|
||||||
|
requests.cpu: "8"
|
||||||
|
requests.memory: 24Gi
|
||||||
|
limits.cpu: "16"
|
||||||
|
limits.memory: 32Gi
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: msg-messenger-core-api-in
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: msg-messenger-core-api
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- ports:
|
||||||
|
- port: 8000
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: msg-messenger-core-api-out
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: msg-messenger-core-api
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
egress:
|
||||||
|
- to:
|
||||||
|
- ipBlock:
|
||||||
|
# pg-db-test.avroid.tech
|
||||||
|
cidr: 10.2.40.5/32
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
protocol: TCP
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: openresty-in
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: openresty
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
ingress:
|
||||||
|
- ports:
|
||||||
|
- port: 8081
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: openresty-out
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: openresty
|
||||||
|
policyTypes:
|
||||||
|
- Egress
|
||||||
|
egress:
|
||||||
|
- to:
|
||||||
|
- podSelector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: msg-messenger-core-api
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
protocol: TCP
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: tavro-cloud-dev
|
|
||||||
labels:
|
|
||||||
name: tavro-cloud-dev
|
|
||||||
app.kubernetes.io/managed-by: manual
|
|
||||||
annotations:
|
|
||||||
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: ResourceQuota
|
|
||||||
metadata:
|
|
||||||
name: tavro-cloud-dev
|
|
||||||
labels:
|
|
||||||
app.kubernetes.io/managed-by: manual
|
|
||||||
spec:
|
|
||||||
hard:
|
|
||||||
requests.cpu: "8"
|
|
||||||
requests.memory: 24Gi
|
|
||||||
limits.cpu: "16"
|
|
||||||
limits.memory: 32Gi
|
|
||||||
@@ -0,0 +1,56 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
name: tavro-cloud-dev
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/node-selector: "nodetype=worker"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ResourceQuota
|
||||||
|
metadata:
|
||||||
|
name: tavro-cloud-dev
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
hard:
|
||||||
|
configmaps: "100"
|
||||||
|
limits.cpu: "5"
|
||||||
|
limits.memory: 13Gi
|
||||||
|
persistentvolumeclaims: "1"
|
||||||
|
pods: "100"
|
||||||
|
requests.cpu: "3"
|
||||||
|
requests.memory: "10Gi"
|
||||||
|
requests.storage: "2Gi"
|
||||||
|
resourcequotas: "1"
|
||||||
|
secrets: "100"
|
||||||
|
services: "100"
|
||||||
|
---
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: NetworkPolicy
|
||||||
|
metadata:
|
||||||
|
name: tavro-cloud-dev-common
|
||||||
|
namespace: tavro-cloud-dev
|
||||||
|
spec:
|
||||||
|
podSelector: {}
|
||||||
|
policyTypes:
|
||||||
|
- Ingress
|
||||||
|
- Egress
|
||||||
|
ingress: []
|
||||||
|
egress:
|
||||||
|
- to:
|
||||||
|
- ipBlock:
|
||||||
|
# vault.avroid.tech
|
||||||
|
cidr: 10.18.3.7/32
|
||||||
|
ports:
|
||||||
|
- port: 443
|
||||||
|
protocol: TCP
|
||||||
|
- ports:
|
||||||
|
- port: 53
|
||||||
|
protocol: TCP
|
||||||
|
- port: 53
|
||||||
|
protocol: UDP
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Namespace
|
|
||||||
metadata:
|
|
||||||
name: vault-infra
|
|
||||||
labels:
|
|
||||||
name: vault-infra
|
|
||||||
app.kubernetes.io/managed-by: manual
|
|
||||||
annotations:
|
|
||||||
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
|
|
||||||
@@ -0,0 +1,30 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: vault-infra
|
||||||
|
labels:
|
||||||
|
name: vault-infra
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
annotations:
|
||||||
|
scheduler.alpha.kubernetes.io/node-selector: node-role.kubernetes.io/worker=
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ResourceQuota
|
||||||
|
metadata:
|
||||||
|
name: vault-infra
|
||||||
|
namespace: vault-infra
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/managed-by: manual
|
||||||
|
spec:
|
||||||
|
hard:
|
||||||
|
configmaps: "10"
|
||||||
|
limits.cpu: "4"
|
||||||
|
limits.memory: 2Gi
|
||||||
|
persistentvolumeclaims: "1"
|
||||||
|
pods: "10"
|
||||||
|
requests.cpu: "3"
|
||||||
|
requests.memory: 1Gi
|
||||||
|
resourcequotas: "1"
|
||||||
|
secrets: "10"
|
||||||
|
services: "1"
|
||||||
@@ -1 +1,9 @@
|
|||||||
# helm upgrade -n vault-infra --install --wait vault-secrets-webhook oci://ghcr.io/bank-vaults/helm-charts/vault-secrets-webhook
|
# helm upgrade -n vault-infra -f values.yaml --install --wait vault-secrets-webhook oci://ghcr.io/bank-vaults/helm-charts/vault-secrets-webhook
|
||||||
|
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: 100m
|
||||||
|
memory: 50Mi
|
||||||
|
requests:
|
||||||
|
cpu: 50m
|
||||||
|
memory: 25Mi
|
||||||
|
|||||||
Reference in New Issue
Block a user