mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-05 15:37:19 +00:00
Broken exclude any all (#2990)
* added check for any/all Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> * minor corrections Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> * corrected return check for rbac info Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> * added cli test Signed-off-by: anushkamittal20 <anumittal4641@gmail.com> Co-authored-by: Jim Bugwadia <jim@nirmata.com>
This commit is contained in:
parent
25722366f0
commit
df4d7ae26c
4 changed files with 57 additions and 1 deletions
|
@ -117,7 +117,9 @@ func containsRBACInfo(policies ...[]*kyverno.ClusterPolicy) bool {
|
|||
for _, policySlice := range policies {
|
||||
for _, policy := range policySlice {
|
||||
for _, rule := range policy.Spec.Rules {
|
||||
checkForRBACInfo(rule)
|
||||
if checkForRBACInfo(rule) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
11
test/cli/test-fail/invalid-ns/kyverno-test.yaml
Normal file
11
test/cli/test-fail/invalid-ns/kyverno-test.yaml
Normal file
|
@ -0,0 +1,11 @@
|
|||
name: test-exclude
|
||||
policies:
|
||||
- policy.yaml
|
||||
resources:
|
||||
- resources.yaml
|
||||
results:
|
||||
- policy: restrict-labels
|
||||
rule: restrict-labels
|
||||
resource: kyverno-system-tst
|
||||
kind: Namespace
|
||||
result: fail
|
35
test/cli/test-fail/invalid-ns/policy.yaml
Normal file
35
test/cli/test-fail/invalid-ns/policy.yaml
Normal file
|
@ -0,0 +1,35 @@
|
|||
apiVersion: kyverno.io/v1
|
||||
kind: ClusterPolicy
|
||||
metadata:
|
||||
name: restrict-labels
|
||||
labels:
|
||||
policy.schiff.telekom.de: enforced
|
||||
annotations:
|
||||
policies.kyverno.io/title: Restrict Labels on Namespaces
|
||||
policies.kyverno.io/category: Labels
|
||||
policies.kyverno.io/minversion: 1.3.0
|
||||
policies.kyverno.io/description: >-
|
||||
This policy prevents the use of an label beginning with a common
|
||||
key name (in this case "platform.das-schiff.telekom.de/owner | owner"). This can be useful to ensure users either
|
||||
don't set reserved labels or to force them to
|
||||
use a newer version of an label.
|
||||
spec:
|
||||
validationFailureAction: enforce
|
||||
background: false
|
||||
rules:
|
||||
- name: restrict-labels
|
||||
match:
|
||||
resources:
|
||||
kinds:
|
||||
- Namespace
|
||||
exclude:
|
||||
clusterRoles:
|
||||
- cluster-admin
|
||||
validate:
|
||||
message: 'Every namespace has to have `platform.das-schiff.telekom.de/owner` label. It must not have value `das-schiff` which is reserved for system namespaces'
|
||||
pattern:
|
||||
metadata:
|
||||
labels:
|
||||
platform.das-schiff.telekom.de/owner: "!das-schiff"
|
||||
# For forward compatibility
|
||||
=(schiff.telekom.de/owner): "!schiff"
|
8
test/cli/test-fail/invalid-ns/resources.yaml
Normal file
8
test/cli/test-fail/invalid-ns/resources.yaml
Normal file
|
@ -0,0 +1,8 @@
|
|||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: kyverno-system-tst
|
||||
labels:
|
||||
name: kyverno-system-tst
|
||||
schiff.telekom.de/owner: schiff
|
||||
platform.das-schiff.telekom.de/owner: das-schiff
|
Loading…
Add table
Reference in a new issue