1
0
Fork 0
mirror of https://github.com/kyverno/kyverno.git synced 2025-03-29 10:55:05 +00:00

update policy yaml

This commit is contained in:
shivkumar dudhani 2019-07-25 14:57:44 -04:00
parent 7b942ec235
commit 073acbaa40
46 changed files with 406 additions and 341 deletions

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: add-label
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
mutate:
patches:
- path: /metadata/labels/isMutated
@ -20,12 +21,13 @@ spec :
op: replace
value: "nginx_is_mutated"
- name: check-image
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
validate:
message: "The imagePullPolicy must be Always when using image nginx"
pattern:

View file

@ -5,15 +5,17 @@ metadata:
spec:
rules:
- name: image-pull-policy
resource:
kinds:
- Deployment
# - StatefulSet
# name: "my-deployment"
# selector :
# matchLabels:
# app.type: prod
# namespace: "my-namespace"
match:
resources:
kinds:
- Deployment
exclude:
resources:
name: nginx-deployment1
selector :
matchLabels:
app: nginx1
namespace: "default"
mutate:
overlay:
spec:

View file

@ -5,11 +5,12 @@ metadata:
spec:
rules:
- name: check-registries
resource:
kinds:
- Deployment
- StatefulSet
namespace: default
match:
resources:
kinds:
- Deployment
- StatefulSet
namespace: default
validate:
message: "Registry is not allowed"
pattern:

View file

@ -5,22 +5,19 @@ metadata:
spec:
rules:
- name: "deny-ingress-traffic"
resource:
kinds:
- Namespace
name: "devtest"
match:
resources:
kinds:
- Namespace
name: "devtest"
generate:
kind: NetworkPolicy
name: deny-ingress-traffic
data:
spec:
podSelector:
matchLabels: {}
matchExpressions: []
policyTypes:
- Ingress
policyTypes:
- Ingress
metadata:
annotations: {}
labels:
policyname: "default"
# kind: ConfigMap

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: validate-runAsNonRoot
resource:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
match:
resources:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
validate:
message: "security context 'runAsNonRoot' shoud be set to true"
pattern:

View file

@ -5,9 +5,10 @@ metadata :
spec:
rules:
- name: check-readinessProbe-exists
resource:
kinds :
- Pod
match:
resources:
kinds :
- Pod
validate:
message: "readinessProbe is required"
pattern:
@ -17,9 +18,10 @@ spec:
readinessProbe:
successThreshold: ">1"
- name: check-livenessProbe-exists
resource:
kinds :
- Pod
match:
resources:
kinds :
- Pod
validate:
message: "livenessProbe is required"
pattern:

View file

@ -3,12 +3,13 @@ kind: Policy
metadata:
name: policy-qos
spec:
validationFailureAction: "audit"
# validationFailureAction: "audit"
rules:
- name: add-memory-limit
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
mutate:
overlay:
spec:
@ -21,10 +22,12 @@ spec:
limits:
# add memory limit if it is not exist
"+(memory)": "300Mi"
"+(cpu)": "100"
- name: check-cpu-memory-limits
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
validate:
message: "Resource limits are required for CPU and memory"
pattern:

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: validate-user-privilege
resource:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
match:
resources:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
validate:
message: "validate container security contexts"
pattern:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: "Basic clone config generator for all namespaces"
resource:
kinds:
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds:
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate:
kind: ConfigMap
name: default-config
@ -18,12 +19,13 @@ spec :
namespace: default
name: config-template
- name: "Basic config generator for all namespaces"
resource:
kinds:
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds:
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate:
kind: Secret
name: mongo-creds

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: "copy-comfigmap"
resource :
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate :
kind: ConfigMap
name : copied-cm
@ -18,12 +19,13 @@ spec:
namespace : default
name : game-config
- name: "zk-kafka-address"
resource:
kinds:
- Namespace
selector:
matchExpressions:
- {key: LabelForSelector, operator: In, values: [namespace2]}
match:
resources:
kinds:
- Namespace
selector:
matchExpressions:
- {key: LabelForSelector, operator: In, values: [namespace2]}
generate:
kind: ConfigMap
name: zk-kafka-address

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: "deny-all-traffic"
resource:
kinds:
- Namespace
name: "*"
match:
resources:
kinds:
- Namespace
name: "*"
generate:
kind: NetworkPolicy
name: deny-all-traffic

View file

@ -5,9 +5,10 @@ metadata:
spec:
rules:
- name: set-image-pull-policy
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
mutate:
overlay:
spec:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: pEP
resource:
kinds :
- Endpoints
selector:
matchLabels:
label : test
match:
resources:
kinds :
- Endpoints
selector:
matchLabels:
label : test
mutate:
patches:
- path : "/subsets/0/ports/0/port"

View file

@ -5,9 +5,10 @@ metadata:
spec:
rules:
- name: check-defined
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
validate:
message: "Resource limits are required for CPU and memory"
pattern:
@ -22,9 +23,10 @@ spec:
cpu: "?*"
- name: check-cpu
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
validate:
message: "CPU request should be less than 4"
pattern:

View file

@ -5,9 +5,10 @@ metadata:
spec:
rules:
- name: check-host-path
resource:
kinds:
- Pod
match:
resources:
kinds:
- Pod
validate:
message: "Host path is not allowed"
pattern:

View file

@ -5,9 +5,10 @@ metadata:
spec:
rules:
- name: image-pull-policy
resource:
kinds:
- Deployment
match:
resources:
kinds:
- Deployment
validate:
message: "Image tag ':latest' requires imagePullPolicy 'Always'"
pattern:

View file

@ -5,14 +5,15 @@ metadata :
spec :
rules:
- name: check-memory_requests_link_in_yaml
resource:
# Kind specifies one or more resource types to match
kinds:
- Deployment
# Name is optional and can use wildcards
name: "*"
# Selector is optional
selector:
match:
resources:
# Kind specifies one or more resource types to match
kinds:
- Deployment
# Name is optional and can use wildcards
name: "*"
# Selector is optional
selector:
validate:
pattern:
spec:

View file

@ -5,14 +5,15 @@ metadata :
spec :
rules:
- name: check-memory_requests_link_in_yaml_relative
resource:
# Kind specifies one or more resource types to match
kinds:
- Deployment
# Name is optional and can use wildcards
name: "*"
# Selector is optional
selector:
match:
resources:
# Kind specifies one or more resource types to match
kinds:
- Deployment
# Name is optional and can use wildcards
name: "*"
# Selector is optional
selector:
validate:
pattern:
spec:

View file

@ -5,9 +5,10 @@ metadata:
spec:
rules:
- name: check-node-port
resource:
kinds:
- Service
match:
resources:
kinds:
- Service
validate:
message: "NodePort type is not allowed"
pattern:

View file

@ -5,11 +5,12 @@ metadata :
spec :
rules:
- name: check-non-root
resource:
kinds:
- Deployment
- StatefuleSet
- DaemonSet
match:
resources:
kinds:
- Deployment
- StatefuleSet
- DaemonSet
validate:
message: "Root user is not allowed"
pattern:

View file

@ -5,9 +5,10 @@ metadata :
spec:
rules:
- name: check-liveness-probe-exists
resource:
kinds :
- StatefulSet
match:
resources:
kinds :
- StatefulSet
validate:
message: "a livenessProbe is required"
pattern:
@ -19,9 +20,10 @@ spec:
livenessProbe:
periodSeconds: ">0"
- name: check-readiness-probe-exists
resource:
kinds :
- StatefulSet
match:
resources:
kinds :
- StatefulSet
validate:
message: "a readinessProbe is required"
pattern:

View file

@ -5,9 +5,10 @@ metadata :
spec:
rules:
- name: check-probe-intervals
resource:
kinds :
- Deployment
match:
resources:
kinds :
- Deployment
validate:
message: "livenessProbe must be > 10s"
pattern:
@ -19,9 +20,10 @@ spec:
livenessProbe:
periodSeconds: ">10"
- name: check-probe-intervals
resource:
kinds :
- Deployment
match:
resources:
kinds :
- Deployment
validate:
message: "readinessProbe must be > 10s"
pattern:

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: check-registries
resource:
kinds:
- Deployment
- StatefulSet
match:
resources:
kinds:
- Deployment
- StatefulSet
validate:
message: "Registry is not allowed"
pattern:

View file

@ -5,10 +5,11 @@ metadata :
spec :
rules:
- name: pCM1
resource:
kinds :
- ConfigMap
name: "game-config"
match:
resources:
kinds :
- ConfigMap
name: "game-config"
mutate:
overlay:
data:
@ -25,10 +26,11 @@ spec :
op : add
value : newValue
- name: pCM2
resource:
kinds :
- ConfigMap
name: "game-config"
match:
resources:
kinds :
- ConfigMap
name: "game-config"
mutate:
patches:
- path : "/data/secretData"
@ -37,10 +39,11 @@ spec :
op : replace
value : "data is replaced"
- name: pCM3
resource:
kinds :
- ConfigMap
name: "game-config"
match:
resources:
kinds :
- ConfigMap
name: "game-config"
mutate:
patches:
- path : "/data/secretData"
@ -52,10 +55,11 @@ spec :
data:
game.properties: "*enemies=aliens*"
- name: pCM4
resource:
kinds :
- ConfigMap
name: "game-config"
match:
resources:
kinds :
- ConfigMap
name: "game-config"
validate:
message: "This CM data is broken because it does not have ui.properties"
pattern:

View file

@ -5,12 +5,13 @@ metadata :
spec:
rules:
- name: "copyCM"
resource :
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate :
kind: ConfigMap
name : copied-cm

View file

@ -10,12 +10,13 @@ metadata :
spec :
rules:
- name: "patchNamespace2"
resource :
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
mutate:
patches:
- path: "/metadata/labels/isMutatedByPolicy"
@ -23,12 +24,13 @@ spec :
value: "true"
- name: "copyCM"
resource :
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate :
kind: ConfigMap
name : copied-cm
@ -37,12 +39,13 @@ spec :
name : game-config
- name: "generateCM"
resource :
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace2"
generate :
kind: ConfigMap
name : generated-cm
@ -56,10 +59,11 @@ spec :
rsa.public.key=42
- name: "generateSecret"
resource :
kinds :
- Namespace
name: ns2
match:
resources:
kinds :
- Namespace
name: ns2
generate :
kind: Secret
name : generated-secrets
@ -73,10 +77,11 @@ spec :
foo2=bar2
- name: "copySecret"
resource :
kinds :
- Namespace
name: ns2
match:
resources:
kinds :
- Namespace
name: ns2
generate :
kind: Secret
name : copied-secrets

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: pCJ
resource:
kinds :
- CronJob
name: "?ell*"
match:
resources:
kinds :
- CronJob
name: "?ell*"
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: "Patch and Volume validation"
resource:
kinds:
- DaemonSet
name: fluentd-elasticsearch
match:
resources:
kinds:
- DaemonSet
name: fluentd-elasticsearch
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,9 +5,10 @@ metadata :
spec :
rules:
- name: "First policy v2"
resource:
kinds :
- Deployment
match:
resources:
kinds :
- Deployment
mutate:
patches:
- path: /metadata/labels/isMutated
@ -16,7 +17,6 @@ spec :
- path: /metadata/labels/app
op: replace
value: "nginx_is_mutated"
validate:
message: "Because I like only mutated resources"
pattern:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: pEP
resource:
kinds :
- Endpoints
selector:
matchLabels:
label : test
match:
resources:
kinds :
- Endpoints
selector:
matchLabels:
label : test
mutate:
patches:
- path : "/subsets/0/ports/0/port"

View file

@ -5,12 +5,13 @@ metadata:
spec :
rules:
- name: hpa1
resource:
kinds :
- HorizontalPodAutoscaler
selector:
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- HorizontalPodAutoscaler
selector:
matchLabels:
originalLabel: isHere
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: ingress1
resource:
kinds :
- Ingress
selector:
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- Ingress
selector:
matchLabels:
originalLabel: isHere
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,10 +5,11 @@ metadata:
spec :
rules:
- name: job2
resource:
kinds:
- Job
name: pi
match:
resources:
kinds:
- Job
name: pi
mutate:
overlay:
spec:
@ -20,10 +21,11 @@ spec :
- containerPort: 80
protocol: TCP
- name: job1
resource:
kinds:
- Job
name: pi
match:
resources:
kinds:
- Job
name: pi
mutate:
overlay:
metadata:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: "rule"
resource:
kinds :
- LimitRange
selector:
matchLabels:
containerSize: minimal
match:
resources:
kinds :
- LimitRange
selector:
matchLabels:
containerSize: minimal
mutate:
patches:
- path : "/spec/limits/0/default/memory"

View file

@ -6,12 +6,13 @@ metadata :
spec :
rules:
- name: ns1
resource:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace"
match:
resources:
kinds :
- Namespace
selector:
matchLabels:
LabelForSelector : "namespace"
mutate:
patches:
- path: "/metadata/labels/replaced"

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: np1
resource:
kinds :
- NetworkPolicy
selector:
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- NetworkPolicy
selector:
matchLabels:
originalLabel: isHere
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,11 +5,12 @@ metadata:
spec:
rules:
- name: pvc1
resource:
kinds :
- PersistentVolumeClaim
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- PersistentVolumeClaim
matchLabels:
originalLabel: isHere
mutate:
patches:
- path: "/metadata/labels/originalLabel"

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: pdb1
resource:
kinds :
- PodDisruptionBudget
name: "game-pdb"
match:
resources:
kinds :
- PodDisruptionBudget
name: "game-pdb"
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: podtemplate1
resource:
kinds :
- PodTemplate
selector:
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- PodTemplate
selector:
matchLabels:
originalLabel: isHere
mutate:
overlay:
template:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: "rule1"
resource:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
match:
resources:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
validate:
message: "This RQ requests too many RAM"
pattern:
@ -18,12 +19,13 @@ spec :
hard:
memory: "8Gi|12Gi"
- name: "rule2"
resource:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
match:
resources:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
validate:
message: "This RQ requests too many CPUs"
pattern:
@ -31,12 +33,13 @@ spec :
hard:
cpu: <3
- name: "rule3"
resource:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
match:
resources:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
validate:
message: "This RQ requests too many PODs"
pattern:

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: "rule"
resource:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
match:
resources:
kinds :
- ResourceQuota
selector:
matchLabels:
quota: low
mutate:
patches:
- path : "/spec/scopeSelector/matchExpressions/1"

View file

@ -5,10 +5,11 @@ metadata:
spec:
rules:
- name: secret1
resource:
kinds :
- Secret
name: "mysecret"
match:
resources:
kinds :
- Secret
name: "mysecret"
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: set-userID
resource:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
match:
resources:
kinds:
- Deployment
selector :
matchLabels:
app.type: prod
mutate:
overlay:
spec:

View file

@ -5,10 +5,11 @@ metadata :
spec :
rules:
- name: ps1
resource:
kinds:
- Service
name: "game-service*"
match:
resources:
kinds:
- Service
name: "game-service*"
mutate:
patches:
- path: "/metadata/labels/isMutated"

View file

@ -5,12 +5,13 @@ metadata:
spec:
rules:
- name: statefulset1
resource:
kinds :
- StatefulSet
selector:
matchLabels:
originalLabel: isHere
match:
resources:
kinds :
- StatefulSet
selector:
matchLabels:
originalLabel: isHere
mutate:
patches:
- path: "/spec/template/metadata/labels/isMutated"

View file

@ -5,12 +5,13 @@ metadata :
spec :
rules:
- name: add-label
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
mutate:
patches:
- path: /metadata/labels/isMutated
@ -25,36 +26,39 @@ spec :
- (image): "*nginx*"
imagePullPolicy: "Always"
- name: add-label2
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
mutate:
patches:
- path: /metadata/labels/app1
op: replace
value: "nginx_is_mutated"
- name: add-label3
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
mutate:
patches:
- path: /metadata/labels/app2
op: add
value: "nginx_is_mutated2"
- name: check-image
resource:
kinds :
- Deployment
selector :
matchLabels :
cli: test
match:
resources:
kinds :
- Deployment
selector :
matchLabels :
cli: test
validate:
message: "The imagePullPolicy must be Always when using image nginx"
pattern:
@ -65,10 +69,11 @@ spec :
- (image): "*nginx*"
imagePullPolicy: "Always"
- name: check-registries
resource:
kinds:
- Deployment
- StatefulSet
match:
resources:
kinds:
- Deployment
- StatefulSet
validate:
message: "Registry is not allowed"
pattern: