mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-09 09:26:54 +00:00
163 lines
2.3 KiB
Go
163 lines
2.3 KiB
Go
|
package policystore
|
||
|
|
||
|
import (
|
||
|
"encoding/json"
|
||
|
"testing"
|
||
|
|
||
|
kyverno "github.com/nirmata/kyverno/pkg/api/kyverno/v1alpha1"
|
||
|
)
|
||
|
|
||
|
func Test_Add(t *testing.T) {
|
||
|
rawPolicy1 := []byte(`
|
||
|
{
|
||
|
"apiVersion": "kyverno.io/v1alpha1",
|
||
|
"kind": "ClusterPolicy",
|
||
|
"metadata": {
|
||
|
"name": "test-policy"
|
||
|
},
|
||
|
"spec": {
|
||
|
"rules": [
|
||
|
{
|
||
|
"name": "r1",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"mutate": {
|
||
|
"overlay": "temp"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "r2",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod",
|
||
|
"Deployment"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"mutate": {
|
||
|
"overlay": "temp"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "r3",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod",
|
||
|
"Deployment"
|
||
|
],
|
||
|
"namespaces": [
|
||
|
"n1"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"mutate": {
|
||
|
"overlay": "temp"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "r4",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod",
|
||
|
"Deployment"
|
||
|
],
|
||
|
"namespaces": [
|
||
|
"n1",
|
||
|
"n2"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"validate": {
|
||
|
"pattern": "temp"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}
|
||
|
`)
|
||
|
|
||
|
rawPolicy2 := []byte(`
|
||
|
{
|
||
|
"apiVersion": "kyverno.io/v1alpha1",
|
||
|
"kind": "ClusterPolicy",
|
||
|
"metadata": {
|
||
|
"name": "test-policy1"
|
||
|
},
|
||
|
"spec": {
|
||
|
"rules": [
|
||
|
{
|
||
|
"name": "r1",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"mutate": {
|
||
|
"overlay": "temp"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "r2",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod"
|
||
|
],
|
||
|
"namespaces": [
|
||
|
"n4"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"mutate": {
|
||
|
"overlay": "temp"
|
||
|
}
|
||
|
},
|
||
|
{
|
||
|
"name": "r2",
|
||
|
"match": {
|
||
|
"resources": {
|
||
|
"kinds": [
|
||
|
"Pod"
|
||
|
],
|
||
|
"namespaces": [
|
||
|
"n4",
|
||
|
"n5",
|
||
|
"n6"
|
||
|
]
|
||
|
}
|
||
|
},
|
||
|
"validate": {
|
||
|
"pattern": "temp"
|
||
|
}
|
||
|
}
|
||
|
]
|
||
|
}
|
||
|
}`)
|
||
|
var policy1 kyverno.ClusterPolicy
|
||
|
json.Unmarshal(rawPolicy1, &policy1)
|
||
|
var policy2 kyverno.ClusterPolicy
|
||
|
json.Unmarshal(rawPolicy2, &policy2)
|
||
|
|
||
|
var store Interface
|
||
|
store = NewPolicyStore()
|
||
|
// Add
|
||
|
store.Register(policy1)
|
||
|
store.Register(policy2)
|
||
|
t.Log(store.LookUp(Mutation, "Pod", ""))
|
||
|
store.UnRegister(policy1)
|
||
|
t.Log(store.LookUp(Mutation, "Pod", ""))
|
||
|
store.Register(policy1)
|
||
|
t.Log(store.LookUp(Mutation, "Pod", ""))
|
||
|
t.Fail()
|
||
|
}
|