From 0179f53469ced67e69258034f00066761ae29836 Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Wed, 14 Feb 2024 20:03:48 +0000 Subject: [PATCH 1/5] tests: k8s: k8s-parallel auto-generated policy Auto-generate policy for k8s-parallel.bats. Fixes: #9096 Signed-off-by: Dan Mihai --- tests/integration/kubernetes/k8s-parallel.bats | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/tests/integration/kubernetes/k8s-parallel.bats b/tests/integration/kubernetes/k8s-parallel.bats index 4408ea5e57..f11bd5fb3d 100644 --- a/tests/integration/kubernetes/k8s-parallel.bats +++ b/tests/integration/kubernetes/k8s-parallel.bats @@ -12,14 +12,20 @@ setup() { get_pod_config_dir job_name="jobtest" names=( "test1" "test2" "test3" ) + + # Create genpolicy settings - common for all of the test jobs + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + + # Create yaml files + for i in "${names[@]}"; do + yaml_file="${pod_config_dir}/job-$i.yaml" + sed "s/\$ITEM/$i/" ${pod_config_dir}/job-template.yaml > ${yaml_file} + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" + done } @test "Parallel jobs" { - # Create yaml files - for i in "${names[@]}"; do - sed "s/\$ITEM/$i/" ${pod_config_dir}/job-template.yaml > ${pod_config_dir}/job-$i.yaml - done - # Create the jobs for i in "${names[@]}"; do kubectl create -f "${pod_config_dir}/job-$i.yaml" @@ -45,4 +51,6 @@ teardown() { for i in "${names[@]}"; do rm -f ${pod_config_dir}/job-$i.yaml done + + delete_tmp_policy_settings_dir "${policy_settings_dir}" } From 56689c68000d91681002fdda5eb58186b3559576 Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Wed, 14 Feb 2024 21:09:20 +0000 Subject: [PATCH 2/5] tests: k8s: k8s-qos-pods auto-generated policy Auto-generate policy for k8s-qos-pods.bats. Fixes: #9096 Signed-off-by: Dan Mihai --- .../integration/kubernetes/k8s-qos-pods.bats | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/tests/integration/kubernetes/k8s-qos-pods.bats b/tests/integration/kubernetes/k8s-qos-pods.bats index 6f1df43ef8..1ab96920eb 100644 --- a/tests/integration/kubernetes/k8s-qos-pods.bats +++ b/tests/integration/kubernetes/k8s-qos-pods.bats @@ -16,9 +16,15 @@ setup() { @test "Guaranteed QoS" { pod_name="qos-test" + yaml_file="${pod_config_dir}/pod-guaranteed.yaml" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" # Create pod - kubectl create -f "${pod_config_dir}/pod-guaranteed.yaml" + kubectl create -f "${yaml_file}" # Check pod creation kubectl wait --for=condition=Ready --timeout=$timeout pod "$pod_name" @@ -29,9 +35,15 @@ setup() { @test "Burstable QoS" { pod_name="burstable-test" + yaml_file="${pod_config_dir}/pod-burstable.yaml" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" # Create pod - kubectl create -f "${pod_config_dir}/pod-burstable.yaml" + kubectl create -f "${yaml_file}" # Check pod creation kubectl wait --for=condition=Ready --timeout=$timeout pod "$pod_name" @@ -42,9 +54,15 @@ setup() { @test "BestEffort QoS" { pod_name="besteffort-test" + yaml_file="${pod_config_dir}/pod-besteffort.yaml" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" # Create pod - kubectl create -f "${pod_config_dir}/pod-besteffort.yaml" + kubectl create -f "${yaml_file}" # Check pod creation kubectl wait --for=condition=Ready --timeout=$timeout pod "$pod_name" @@ -55,4 +73,5 @@ setup() { teardown() { kubectl delete pod "$pod_name" + delete_tmp_policy_settings_dir "${policy_settings_dir}" } From af9ac8d19481f3580b22ade0db8fdfa54756ea02 Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Wed, 14 Feb 2024 21:15:04 +0000 Subject: [PATCH 3/5] tests: k8s: k8s-replication auto-generated policy Auto-generate policy for k8s-replication.bats. Fixes: #9096 Signed-off-by: Dan Mihai --- .../kubernetes/k8s-replication.bats | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/integration/kubernetes/k8s-replication.bats b/tests/integration/kubernetes/k8s-replication.bats index e8f14e4ddd..32a7a6f35a 100644 --- a/tests/integration/kubernetes/k8s-replication.bats +++ b/tests/integration/kubernetes/k8s-replication.bats @@ -13,17 +13,23 @@ setup() { nginx_image="nginx:$nginx_version" get_pod_config_dir + + # Create yaml + test_yaml="${pod_config_dir}/test-replication-controller.yaml" + sed -e "s/\${nginx_version}/${nginx_image}/" \ + "${pod_config_dir}/replication-controller.yaml" > "${test_yaml}" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${test_yaml}" } @test "Replication controller" { replication_name="replicationtest" - # Create yaml - sed -e "s/\${nginx_version}/${nginx_image}/" \ - "${pod_config_dir}/replication-controller.yaml" > "${pod_config_dir}/test-replication-controller.yaml" - # Create replication controller - kubectl create -f "${pod_config_dir}/test-replication-controller.yaml" + kubectl create -f "${test_yaml}" # Check replication controller local cmd="kubectl describe replicationcontrollers/$replication_name | grep replication-controller" @@ -57,6 +63,7 @@ teardown() { # Debugging information kubectl describe replicationcontrollers/"$replication_name" - rm -f "${pod_config_dir}/test-replication-controller.yaml" + rm -f "${test_yaml}" kubectl delete rc "$replication_name" + delete_tmp_policy_settings_dir "${policy_settings_dir}" } From b24758fad8f6076e338f87d59b8e981b1a6007e8 Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Wed, 14 Feb 2024 21:34:05 +0000 Subject: [PATCH 4/5] tests: k8s: k8s-scale-nginx auto-generated policy Auto-generate policy for k8s-scale-nginx.bats. Fixes: #9096 Signed-off-by: Dan Mihai --- .../kubernetes/k8s-scale-nginx.bats | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/integration/kubernetes/k8s-scale-nginx.bats b/tests/integration/kubernetes/k8s-scale-nginx.bats index 3f11236f38..310dbd4bef 100644 --- a/tests/integration/kubernetes/k8s-scale-nginx.bats +++ b/tests/integration/kubernetes/k8s-scale-nginx.bats @@ -14,14 +14,20 @@ setup() { replicas="3" deployment="nginx-deployment" get_pod_config_dir + + # Create the yaml file + test_yaml="${pod_config_dir}/test-${deployment}.yaml" + sed -e "s/\${nginx_version}/${nginx_image}/" \ + "${pod_config_dir}/${deployment}.yaml" > "${test_yaml}" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${test_yaml}" } @test "Scale nginx deployment" { - - sed -e "s/\${nginx_version}/${nginx_image}/" \ - "${pod_config_dir}/${deployment}.yaml" > "${pod_config_dir}/test-${deployment}.yaml" - - kubectl create -f "${pod_config_dir}/test-${deployment}.yaml" + kubectl create -f "${test_yaml}" kubectl wait --for=condition=Available --timeout=$timeout deployment/${deployment} kubectl expose deployment/${deployment} kubectl scale deployment/${deployment} --replicas=${replicas} @@ -30,7 +36,8 @@ setup() { } teardown() { - rm -f "${pod_config_dir}/test-${deployment}.yaml" + rm -f "${test_yaml}" kubectl delete deployment "$deployment" kubectl delete service "$deployment" + delete_tmp_policy_settings_dir "${policy_settings_dir}" } From c08b696d9e053c65e00d1b590a24dd4b5184028b Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Wed, 14 Feb 2024 21:52:48 +0000 Subject: [PATCH 5/5] tests: k8s: k8s-shared-volume generated policy Auto-generate policy for k8s-shared-volume.bats. Fixes: #9096 Signed-off-by: Dan Mihai --- .../kubernetes/k8s-shared-volume.bats | 33 +++++++++++++++---- 1 file changed, 27 insertions(+), 6 deletions(-) diff --git a/tests/integration/kubernetes/k8s-shared-volume.bats b/tests/integration/kubernetes/k8s-shared-volume.bats index 5e3b6a270a..360ea998c3 100644 --- a/tests/integration/kubernetes/k8s-shared-volume.bats +++ b/tests/integration/kubernetes/k8s-shared-volume.bats @@ -16,15 +16,25 @@ setup() { pod_name="test-shared-volume" first_container_name="busybox-first-container" second_container_name="busybox-second-container" + cmd="cat /tmp/pod-data" + yaml_file="${pod_config_dir}/pod-shared-volume.yaml" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + + exec_command="sh -c ${cmd}" + add_exec_to_policy_settings "${policy_settings_dir}" "${exec_command}" + + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" # Create pod - kubectl create -f "${pod_config_dir}/pod-shared-volume.yaml" + kubectl create -f "${yaml_file}" # Check pods kubectl wait --for=condition=Ready --timeout=$timeout pod $pod_name # Communicate containers - cmd="cat /tmp/pod-data" msg="Hello from the $second_container_name" kubectl exec "$pod_name" -c "$first_container_name" -- sh -c "$cmd" | grep "$msg" } @@ -32,20 +42,31 @@ setup() { @test "initContainer with shared volume" { pod_name="initcontainer-shared-volume" last_container="last" + cmd='test $(cat /volume/initContainer) -lt $(cat /volume/container)' + yaml_file="${pod_config_dir}/initContainer-shared-volume.yaml" + + # Add policy to the yaml file + policy_settings_dir="$(create_tmp_policy_settings_dir "${pod_config_dir}")" + + exec_command="sh -c ${cmd}" + add_exec_to_policy_settings "${policy_settings_dir}" "${exec_command}" + + add_requests_to_policy_settings "${policy_settings_dir}" "ReadStreamRequest" + auto_generate_policy "${policy_settings_dir}" "${yaml_file}" # Create pod - kubectl create -f "${pod_config_dir}/initContainer-shared-volume.yaml" + kubectl create -f "${yaml_file}" # Check pods kubectl wait --for=condition=Ready --timeout=$timeout pod $pod_name - cmd='test $(cat /volume/initContainer) -lt $(cat /volume/container)' kubectl exec "$pod_name" -c "$last_container" -- sh -c "$cmd" } teardown() { # Debugging information - kubectl describe "pod/$pod_name" + kubectl describe "pod/$pod_name" || true - kubectl delete pod "$pod_name" + kubectl delete pod "$pod_name" || true + delete_tmp_policy_settings_dir "${policy_settings_dir}" }