45 lines
1.5 KiB
YAML
45 lines
1.5 KiB
YAML
apiVersion: kyverno.io/v1
|
||
kind: ClusterPolicy
|
||
metadata:
|
||
name: set-resource-limits-from-config
|
||
annotations:
|
||
policies.kyverno.io/title: "Resource limits из централизованного ConfigMap"
|
||
policies.kyverno.io/category: Resources
|
||
policies.kyverno.io/severity: low
|
||
policies.kyverno.io/subject: Pod
|
||
policies.kyverno.io/description: >-
|
||
Устанавливает дефолтные resource limits из ConfigMap kyverno-global-config.
|
||
Изменение лимитов для всего кластера — это kubectl edit configmap,
|
||
а не изменение и деплой политики.
|
||
spec:
|
||
rules:
|
||
- name: set-limits-from-configmap
|
||
match:
|
||
resources:
|
||
kinds:
|
||
- Pod
|
||
exclude:
|
||
resources:
|
||
namespaces:
|
||
- kube-system
|
||
- kyverno
|
||
context:
|
||
- name: globalConfig
|
||
configMap:
|
||
name: kyverno-global-config
|
||
namespace: kyverno
|
||
mutate:
|
||
foreach:
|
||
- list: "request.object.spec.containers"
|
||
patchStrategicMerge:
|
||
spec:
|
||
containers:
|
||
- name: "{{ element.name }}"
|
||
resources:
|
||
requests:
|
||
+(memory): "{{ globalConfig.data.\"default.memory.request\" }}"
|
||
+(cpu): "{{ globalConfig.data.\"default.cpu.request\" }}"
|
||
limits:
|
||
+(memory): "{{ globalConfig.data.\"default.memory.limit\" }}"
|
||
+(cpu): "{{ globalConfig.data.\"default.cpu.limit\" }}"
|