Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions src/interpreter.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1017,6 +1017,11 @@ impl Interpreter {

if self.eval_stmts(stmts)? {
count += 1;
if let Some(ctx) = self.contexts.last() {
if ctx.early_return {
break;
}
}
}
*self.current_scope_mut()? = scope_saved.clone();
}
Expand All @@ -1035,6 +1040,11 @@ impl Interpreter {

if self.eval_stmts(stmts)? {
count += 1;
if let Some(ctx) = self.contexts.last() {
if ctx.early_return {
break;
}
}
}
*self.current_scope_mut()? = scope_saved.clone();
}
Expand All @@ -1054,6 +1064,11 @@ impl Interpreter {

if self.eval_stmts(stmts)? {
count += 1;
if let Some(ctx) = self.contexts.last() {
if ctx.early_return {
break;
}
}
}
*self.current_scope_mut()? = scope_saved.clone();
}
Expand Down
51 changes: 1 addition & 50 deletions tests/kata/data/k8s-policy-job/prints.json
Original file line number Diff line number Diff line change
Expand Up @@ -307,56 +307,7 @@
"tests/kata/data/k8s-policy-job/policy.rego:389: allow_readonly_paths 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:392: allow_readonly_paths 2: start",
"tests/kata/data/k8s-policy-job/policy.rego:340: allow_linux: true",
"tests/kata/data/k8s-policy-job/policy.rego:79: CreateContainerRequest: true",
"tests/kata/data/k8s-policy-job/policy.rego:57: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/k8s-policy-job/policy.rego:61: CreateContainerRequest: p_pidns = false i_pidns = false",
"tests/kata/data/k8s-policy-job/policy.rego:66: CreateContainerRequest: p Version = 1.1.0 i Version = 1.1.0",
"tests/kata/data/k8s-policy-job/policy.rego:69: CreateContainerRequest: p Readonly = true i Readonly = true",
"tests/kata/data/k8s-policy-job/policy.rego:84: allow_anno 1: start",
"tests/kata/data/k8s-policy-job/policy.rego:91: allow_anno 2: p Annotations = {\"io.katacontainers.pkg.oci.bundle_path\": \"/run/containerd/io.containerd.runtime.v2.task/k8s.io/$(bundle-id)\", \"io.katacontainers.pkg.oci.container_type\": \"pod_container\", \"io.kubernetes.cri.container-name\": \"hello\", \"io.kubernetes.cri.container-type\": \"container\", \"io.kubernetes.cri.image-name\": \"quay.io/prometheus/busybox:latest\", \"io.kubernetes.cri.sandbox-id\": \"^[a-z0-9]{64}$\", \"io.kubernetes.cri.sandbox-namespace\": \"kata-containers-k8s-tests\"}",
"tests/kata/data/k8s-policy-job/policy.rego:92: allow_anno 2: i Annotations = {\"io.katacontainers.pkg.oci.bundle_path\": \"/run/containerd/io.containerd.runtime.v2.task/k8s.io/d2bc5590b33176f997388b25f600080d2276cbd08ad134ace2d254260ac864e4\", \"io.katacontainers.pkg.oci.container_type\": \"pod_sandbox\", \"io.kubernetes.cri.container-type\": \"sandbox\", \"io.kubernetes.cri.sandbox-cpu-period\": \"100000\", \"io.kubernetes.cri.sandbox-cpu-quota\": \"0\", \"io.kubernetes.cri.sandbox-cpu-shares\": \"2\", \"io.kubernetes.cri.sandbox-id\": \"d2bc5590b33176f997388b25f600080d2276cbd08ad134ace2d254260ac864e4\", \"io.kubernetes.cri.sandbox-log-directory\": \"/var/log/pods/kata-containers-k8s-tests_policy-job-dx6cb_392939d5-72a0-4421-9cd7-1e89c3f86256\", \"io.kubernetes.cri.sandbox-memory\": \"0\", \"io.kubernetes.cri.sandbox-name\": \"policy-job-dx6cb\", \"io.kubernetes.cri.sandbox-namespace\": \"kata-containers-k8s-tests\", \"io.kubernetes.cri.sandbox-uid\": \"392939d5-72a0-4421-9cd7-1e89c3f86256\", \"nerdctl/network-namespace\": \"/var/run/netns/cni-92275a86-e0ea-c2c4-9e0c-4ac1ebe428eb\"}",
"tests/kata/data/k8s-policy-job/policy.rego:95: allow_anno 2: i keys = {\"io.katacontainers.pkg.oci.bundle_path\", \"io.katacontainers.pkg.oci.container_type\", \"io.kubernetes.cri.container-type\", \"io.kubernetes.cri.sandbox-cpu-period\", \"io.kubernetes.cri.sandbox-cpu-quota\", \"io.kubernetes.cri.sandbox-cpu-shares\", \"io.kubernetes.cri.sandbox-id\", \"io.kubernetes.cri.sandbox-log-directory\", \"io.kubernetes.cri.sandbox-memory\", \"io.kubernetes.cri.sandbox-name\", \"io.kubernetes.cri.sandbox-namespace\", \"io.kubernetes.cri.sandbox-uid\", \"nerdctl/network-namespace\"}",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.katacontainers.pkg.oci.bundle_path",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.katacontainers.pkg.oci.bundle_path",
"tests/kata/data/k8s-policy-job/policy.rego:117: allow_anno_key 2: true",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.katacontainers.pkg.oci.container_type",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.katacontainers.pkg.oci.container_type",
"tests/kata/data/k8s-policy-job/policy.rego:117: allow_anno_key 2: true",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.container-type",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.container-type",
"tests/kata/data/k8s-policy-job/policy.rego:117: allow_anno_key 2: true",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-cpu-period",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-cpu-period",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-cpu-quota",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-cpu-quota",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-cpu-shares",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-cpu-shares",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-id",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-id",
"tests/kata/data/k8s-policy-job/policy.rego:117: allow_anno_key 2: true",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-log-directory",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-log-directory",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-memory",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-memory",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-name",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-name",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-namespace",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-namespace",
"tests/kata/data/k8s-policy-job/policy.rego:117: allow_anno_key 2: true",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-uid",
"tests/kata/data/k8s-policy-job/policy.rego:109: allow_anno_key 1: true",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-uid",
"tests/kata/data/k8s-policy-job/policy.rego:105: allow_anno_key 1: i key = nerdctl/network-namespace",
"tests/kata/data/k8s-policy-job/policy.rego:112: allow_anno_key 2: i key = nerdctl/network-namespace"
"tests/kata/data/k8s-policy-job/policy.rego:79: CreateContainerRequest: true"
],
[],
[],
Expand Down
6 changes: 1 addition & 5 deletions tests/kata/data/k8s-policy-pod/prints.json
Original file line number Diff line number Diff line change
Expand Up @@ -311,11 +311,7 @@
"tests/kata/data/k8s-policy-pod/policy.rego:389: allow_readonly_paths 1: true",
"tests/kata/data/k8s-policy-pod/policy.rego:392: allow_readonly_paths 2: start",
"tests/kata/data/k8s-policy-pod/policy.rego:340: allow_linux: true",
"tests/kata/data/k8s-policy-pod/policy.rego:79: CreateContainerRequest: true",
"tests/kata/data/k8s-policy-pod/policy.rego:57: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/k8s-policy-pod/policy.rego:61: CreateContainerRequest: p_pidns = false i_pidns = false",
"tests/kata/data/k8s-policy-pod/policy.rego:66: CreateContainerRequest: p Version = 1.1.0 i Version = 1.1.0",
"tests/kata/data/k8s-policy-pod/policy.rego:69: CreateContainerRequest: p Readonly = false i Readonly = true"
"tests/kata/data/k8s-policy-pod/policy.rego:79: CreateContainerRequest: true"
],
[],
[],
Expand Down
6 changes: 1 addition & 5 deletions tests/kata/data/k8s-policy-rc/prints.json
Original file line number Diff line number Diff line change
Expand Up @@ -307,11 +307,7 @@
"tests/kata/data/k8s-policy-rc/policy.rego:389: allow_readonly_paths 1: true",
"tests/kata/data/k8s-policy-rc/policy.rego:392: allow_readonly_paths 2: start",
"tests/kata/data/k8s-policy-rc/policy.rego:340: allow_linux: true",
"tests/kata/data/k8s-policy-rc/policy.rego:79: CreateContainerRequest: true",
"tests/kata/data/k8s-policy-rc/policy.rego:57: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/k8s-policy-rc/policy.rego:61: CreateContainerRequest: p_pidns = false i_pidns = false",
"tests/kata/data/k8s-policy-rc/policy.rego:66: CreateContainerRequest: p Version = 1.1.0 i Version = 1.1.0",
"tests/kata/data/k8s-policy-rc/policy.rego:69: CreateContainerRequest: p Readonly = false i Readonly = true"
"tests/kata/data/k8s-policy-rc/policy.rego:79: CreateContainerRequest: true"
],
[],
[],
Expand Down
6 changes: 1 addition & 5 deletions tests/kata/data/pod-cm1/prints.json
Original file line number Diff line number Diff line change
Expand Up @@ -394,11 +394,7 @@
"tests/kata/data/pod-cm1/policy.rego:395: allow_readonly_paths 1: true",
"tests/kata/data/pod-cm1/policy.rego:398: allow_readonly_paths 2: start",
"tests/kata/data/pod-cm1/policy.rego:346: allow_linux: true",
"tests/kata/data/pod-cm1/policy.rego:85: CreateContainerRequest: true",
"tests/kata/data/pod-cm1/policy.rego:63: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/pod-cm1/policy.rego:67: CreateContainerRequest: p_pidns = false i_pidns = false",
"tests/kata/data/pod-cm1/policy.rego:72: CreateContainerRequest: p Version = 1.1.0-rc.1 i Version = 1.1.0-rc.1",
"tests/kata/data/pod-cm1/policy.rego:75: CreateContainerRequest: p Readonly = false i Readonly = true"
"tests/kata/data/pod-cm1/policy.rego:85: CreateContainerRequest: true"
],
[],
[],
Expand Down
66 changes: 2 additions & 64 deletions tests/kata/data/pod-cm2/prints.json
Original file line number Diff line number Diff line change
Expand Up @@ -394,11 +394,7 @@
"tests/kata/data/pod-cm2/policy.rego:395: allow_readonly_paths 1: true",
"tests/kata/data/pod-cm2/policy.rego:398: allow_readonly_paths 2: start",
"tests/kata/data/pod-cm2/policy.rego:346: allow_linux: true",
"tests/kata/data/pod-cm2/policy.rego:85: CreateContainerRequest: true",
"tests/kata/data/pod-cm2/policy.rego:63: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/pod-cm2/policy.rego:67: CreateContainerRequest: p_pidns = true i_pidns = false",
"tests/kata/data/pod-cm2/policy.rego:63: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/pod-cm2/policy.rego:67: CreateContainerRequest: p_pidns = true i_pidns = false"
"tests/kata/data/pod-cm2/policy.rego:85: CreateContainerRequest: true"
],
[],
[],
Expand Down Expand Up @@ -1339,65 +1335,7 @@
"tests/kata/data/pod-cm2/policy.rego:395: allow_readonly_paths 1: true",
"tests/kata/data/pod-cm2/policy.rego:398: allow_readonly_paths 2: start",
"tests/kata/data/pod-cm2/policy.rego:346: allow_linux: true",
"tests/kata/data/pod-cm2/policy.rego:85: CreateContainerRequest: true",
"tests/kata/data/pod-cm2/policy.rego:63: ======== CreateContainerRequest: trying next policy container",
"tests/kata/data/pod-cm2/policy.rego:67: CreateContainerRequest: p_pidns = true i_pidns = true",
"tests/kata/data/pod-cm2/policy.rego:72: CreateContainerRequest: p Version = 1.1.0-rc.1 i Version = 1.1.0-rc.1",
"tests/kata/data/pod-cm2/policy.rego:75: CreateContainerRequest: p Readonly = false i Readonly = false",
"tests/kata/data/pod-cm2/policy.rego:90: allow_anno 1: start",
"tests/kata/data/pod-cm2/policy.rego:97: allow_anno 2: p Annotations = {\"io.katacontainers.pkg.oci.bundle_path\": \"/run/containerd/io.containerd.runtime.v2.task/k8s.io/$(bundle-id)\", \"io.katacontainers.pkg.oci.container_type\": \"pod_container\", \"io.kubernetes.cri.container-name\": \"busybox2\", \"io.kubernetes.cri.container-type\": \"container\", \"io.kubernetes.cri.image-name\": \"mcr.microsoft.com/aks/e2e/library-busybox:master.220314.1-linux-amd64\", \"io.kubernetes.cri.sandbox-id\": \"^[a-z0-9]{64}$\", \"io.kubernetes.cri.sandbox-name\": \"cm2\", \"io.kubernetes.cri.sandbox-namespace\": \"default\"}",
"tests/kata/data/pod-cm2/policy.rego:98: allow_anno 2: i Annotations = {\"io.katacontainers.pkg.oci.bundle_path\": \"/run/containerd/io.containerd.runtime.v2.task/k8s.io/0730592335b050edf5109d389763447a6771aaced62161efe5ce466b278cab87\", \"io.katacontainers.pkg.oci.container_type\": \"pod_container\", \"io.kubernetes.cri.container-name\": \"busybox\", \"io.kubernetes.cri.container-type\": \"container\", \"io.kubernetes.cri.image-name\": \"mcr.microsoft.com/aks/e2e/library-busybox:master.220314.1-linux-amd64\", \"io.kubernetes.cri.sandbox-id\": \"faf19d7261fcfb7121018a2abd34cbb58a2037f029d61467d8f32a8279ead55f\", \"io.kubernetes.cri.sandbox-name\": \"cm2\", \"io.kubernetes.cri.sandbox-namespace\": \"default\", \"io.kubernetes.cri.sandbox-uid\": \"e171518a-2666-434f-86bb-1b067839f6e9\"}",
"tests/kata/data/pod-cm2/policy.rego:101: allow_anno 2: i keys = {\"io.katacontainers.pkg.oci.bundle_path\", \"io.katacontainers.pkg.oci.container_type\", \"io.kubernetes.cri.container-name\", \"io.kubernetes.cri.container-type\", \"io.kubernetes.cri.image-name\", \"io.kubernetes.cri.sandbox-id\", \"io.kubernetes.cri.sandbox-name\", \"io.kubernetes.cri.sandbox-namespace\", \"io.kubernetes.cri.sandbox-uid\"}",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.katacontainers.pkg.oci.bundle_path",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.katacontainers.pkg.oci.bundle_path",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.katacontainers.pkg.oci.container_type",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.katacontainers.pkg.oci.container_type",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.container-name",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.container-name",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.container-type",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.container-type",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.image-name",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.image-name",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-id",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-id",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-name",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-name",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-namespace",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-namespace",
"tests/kata/data/pod-cm2/policy.rego:123: allow_anno_key 2: true",
"tests/kata/data/pod-cm2/policy.rego:111: allow_anno_key 1: i key = io.kubernetes.cri.sandbox-uid",
"tests/kata/data/pod-cm2/policy.rego:115: allow_anno_key 1: true",
"tests/kata/data/pod-cm2/policy.rego:118: allow_anno_key 2: i key = io.kubernetes.cri.sandbox-uid",
"tests/kata/data/pod-cm2/policy.rego:107: allow_anno 2: true",
"tests/kata/data/pod-cm2/policy.rego:129: allow_by_anno 1: start",
"tests/kata/data/pod-cm2/policy.rego:143: allow_by_anno 2: start",
"tests/kata/data/pod-cm2/policy.rego:149: allow_by_anno 2: i_s_name = cm2 p_s_name = cm2",
"tests/kata/data/pod-cm2/policy.rego:175: allow_sandbox_name 1: start",
"tests/kata/data/pod-cm2/policy.rego:179: allow_sandbox_name 1: true",
"tests/kata/data/pod-cm2/policy.rego:182: allow_sandbox_name 2: start",
"tests/kata/data/pod-cm2/policy.rego:158: allow_by_sandbox_name: start",
"tests/kata/data/pod-cm2/policy.rego:164: allow_by_sandbox_name: p_namespace = default i_namespace = default",
"tests/kata/data/pod-cm2/policy.rego:196: allow_by_container_types: checking io.kubernetes.cri.container-type",
"tests/kata/data/pod-cm2/policy.rego:202: allow_by_container_types: p_cri_type = container i_cri_type = container",
"tests/kata/data/pod-cm2/policy.rego:211: allow_by_container_type 1: i_cri_type = container",
"tests/kata/data/pod-cm2/policy.rego:226: allow_by_container_type 2: i_cri_type = container",
"tests/kata/data/pod-cm2/policy.rego:230: allow_by_container_type 2: i_kata_type = pod_container",
"tests/kata/data/pod-cm2/policy.rego:250: allow_container_name: start",
"tests/kata/data/pod-cm2/policy.rego:267: allow_container_annotation: key = io.kubernetes.cri.container-name",
"tests/kata/data/pod-cm2/policy.rego:271: allow_container_annotation: p_value = busybox2 i_value = busybox"
"tests/kata/data/pod-cm2/policy.rego:85: CreateContainerRequest: true"
],
[],
[
Expand Down
Loading
Loading