summaryrefslogtreecommitdiffstats
path: root/kud/tests/integration_vcFW.sh
blob: 41643627b16925573a6b5bd6d1946b252e32aa83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
#!/bin/bash
# SPDX-license-identifier: Apache-2.0
##############################################################################
# Copyright (c) 2018
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################

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

csar_id=aa443e7e-c8ba-11e8-8877-525400b164ff

# Setup
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
done
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

# 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 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
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