mirror of
https://github.com/kyverno/kyverno.git
synced 2025-03-09 09:26:54 +00:00
* chore: refactor Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: add foreach for generate.daya to api Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: refactor generator Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: linter Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: update rule validation Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: update rule validation -2 Signed-off-by: ShutingZhao <shuting@nirmata.com> * feat: support foreach.data Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: policy validation Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: context variables Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: add a chainsaw test Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: sync on policy deletion Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: enable new chainsaw tests in CI Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: update code-gen Signed-off-by: ShutingZhao <shuting@nirmata.com> * fix: validate targets scope for ns-policies Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: add missing files Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: remove unreasonable test Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: update docs Signed-off-by: ShutingZhao <shuting@nirmata.com> * chore: update install.yaml Signed-off-by: ShutingZhao <shuting@nirmata.com> --------- Signed-off-by: ShutingZhao <shuting@nirmata.com> Co-authored-by: Vishal Choudhary <vishal.choudhary@nirmata.com>
59 lines
1.1 KiB
Go
59 lines
1.1 KiB
Go
package generate
|
|
|
|
import (
|
|
"context"
|
|
"encoding/json"
|
|
"testing"
|
|
|
|
kyverno "github.com/kyverno/kyverno/api/kyverno/v1"
|
|
"gotest.tools/assert"
|
|
)
|
|
|
|
func Test_Validate_Generate_HasAnchors(t *testing.T) {
|
|
var err error
|
|
rawGenerate := []byte(`
|
|
{
|
|
"kind": "NetworkPolicy",
|
|
"name": "defaultnetworkpolicy",
|
|
"data": {
|
|
"spec": {
|
|
"(podSelector)": {},
|
|
"policyTypes": [
|
|
"Ingress",
|
|
"Egress"
|
|
],
|
|
"ingress": [
|
|
{}
|
|
],
|
|
"egress": [
|
|
{}
|
|
]
|
|
}
|
|
}
|
|
}`)
|
|
|
|
var genRule kyverno.Generation
|
|
err = json.Unmarshal(rawGenerate, &genRule)
|
|
assert.NilError(t, err)
|
|
checker := NewFakeGenerate(genRule)
|
|
if _, err := checker.Validate(context.TODO()); err != nil {
|
|
assert.Assert(t, err != nil)
|
|
}
|
|
|
|
rawGenerate = []byte(`
|
|
{
|
|
"kind": "ConfigMap",
|
|
"name": "copied-cm",
|
|
"clone": {
|
|
"^(namespace)": "default",
|
|
"name": "game"
|
|
}
|
|
}`)
|
|
|
|
err = json.Unmarshal(rawGenerate, &genRule)
|
|
assert.NilError(t, err)
|
|
checker = NewFakeGenerate(genRule)
|
|
if _, err := checker.Validate(context.TODO()); err != nil {
|
|
assert.Assert(t, err != nil)
|
|
}
|
|
}
|