Replace virtlet with kubevirt in plugin_fw_v2
[multicloud/k8s.git] / kud / tests / integration_vcFW.sh
index af8039c..4164362 100755 (executable)
@@ -12,6 +12,33 @@ set -o errexit
 set -o nounset
 set -o pipefail
 
+#Default action
+TEARDOWN_ACTION=preserve
+
+for arg; do
+    case "$arg" in
+        --help|-h)
+            {
+                echo "Usage: $0 [--cleanup]"
+                echo "Run integration testcase on KUD deployment"
+                echo "deploying vFW demo on hybrid container-VM"
+                echo "setup. Script by default preserves environment."
+                echo "If you want it to be cleaned, launch script"
+                echo "with --cleanup flag"
+            } >&2
+            exit 0
+            ;;
+        --cleanup)
+            TEARDOWN_ACTION=cleanup
+            break
+            ;;
+        *)
+            #not implemented
+            break
+            ;;
+    esac
+done
+
 source _common.sh
 source _common_test.sh
 source _functions.sh
@@ -23,8 +50,17 @@ if [[ ! -f $HOME/.ssh/id_rsa.pub ]]; then
     echo -e "\n\n\n" | ssh-keygen -t rsa -N ""
 fi
 populate_CSAR_vms_containers_vFW $csar_id
-
 pushd ${CSAR_DIR}/${csar_id}
+
+#Clean env
+print_msg "Cleanup scenario leftovers"
+teardown $packetgen_deployment_name $firewall_deployment_name $sink_deployment_name
+for item in $unprotected_private_net $protected_private_net $onap_private_net sink-service sink_configmap; do
+    kubectl delete -f $item.yaml --ignore-not-found
+done
+
+#Spin up
+print_msg "Instantiate vcFW"
 for net in $unprotected_private_net $protected_private_net $onap_private_net; do
     echo "Create OVN Network $net network"
     kubectl apply -f $net.yaml
@@ -33,22 +69,31 @@ for resource in onap-ovn4nfvk8s-network sink-service sink_configmap; do
     kubectl apply -f $resource.yaml
 done
 setup $packetgen_deployment_name $firewall_deployment_name $sink_deployment_name
-#kubectl port-forward deployment/$sink_deployment_name 667:667
 
 # Test
+print_msg "Verify integration functionality"
 for deployment_name in $packetgen_deployment_name $firewall_deployment_name; do
     pod_name=$(kubectl get pods | grep  $deployment_name | awk '{print $1}')
     vm=$(kubectl virt virsh list | grep ".*$deployment_name"  | awk '{print $2}')
     echo "Pod name: $pod_name Virsh domain: $vm"
-    echo "ssh -i ~/.ssh/id_rsa.pub admin@$(kubectl get pods $pod_name -o jsonpath="{.status.podIP}")"
+    echo "ssh -i ~/.ssh/id_rsa admin@$(kubectl get pods $pod_name -o jsonpath="{.status.podIP}")"
     echo "kubectl attach -it $pod_name"
     echo "=== Virtlet details ===="
     echo "$(kubectl virt virsh dumpxml $vm | grep VIRTLET_)\n"
 done
 
 # Teardown
-#teardown $packetgen_deployment_name $firewall_deployment_name $sink_deployment_name
-#for net in $unprotected_private_net $protected_private_net $onap_private_net; do
-#    kubectl delete -f $net.yaml
-#done
+if [ "${TEARDOWN_ACTION}" == "cleanup" ]; then
+    print_msg "Teardown integration scenario"
+    teardown $packetgen_deployment_name $firewall_deployment_name $sink_deployment_name
+    for item in $unprotected_private_net $protected_private_net $onap_private_net sink-service sink_configmap; do
+        kubectl delete -f $item.yaml
+    done
+else
+    print_msg "Integration scenario access"
+    echo "You can access darkstat service on your pc by (for example) port forwarding sink service"
+    echo '`kubectl port-forward svc/sink-service 667`'
+    echo "or by direct access to any k8s node under port $(kubectl get svc sink-service -o jsonpath='{.spec.ports[0].nodePort}')"
+    print_msg ""
+fi
 popd