From 7ee9ee4e4361fa31d4e565c1b7539006598c0223 Mon Sep 17 00:00:00 2001 From: Victor Morales Date: Thu, 13 Sep 2018 09:19:13 -0700 Subject: Refactor Functional tests The current implementation of Functional tests didn't allow to reuse some functionality. This change exposes common functions and methods to populated CSAR folders. Change-Id: I8f4daf9a0a12633f952677b3e15de42bea5226e6 Signed-off-by: Victor Morales Issue-ID: MULTICLOUD-301 --- vagrant/tests/multus.sh | 123 ++++++++---------------------------------------- 1 file changed, 20 insertions(+), 103 deletions(-) (limited to 'vagrant/tests/multus.sh') diff --git a/vagrant/tests/multus.sh b/vagrant/tests/multus.sh index c5f7fc71..96fa37d8 100755 --- a/vagrant/tests/multus.sh +++ b/vagrant/tests/multus.sh @@ -12,112 +12,29 @@ set -o errexit set -o nounset set -o pipefail -rm -f $HOME/*.yaml +source _common.sh +source _functions.sh -pod_name=multus-pod -deployment_name=multus-deployment +csar_id=49408ca6-b75b-11e8-8076-525400feed26 -cat << NET > $HOME/bridge-network.yaml -apiVersion: "kubernetes.cni.cncf.io/v1" -kind: Network -metadata: - name: bridge-conf -spec: - config: '{ - "name": "mynet", - "type": "bridge", - "ipam": { - "type": "host-local", - "subnet": "10.10.0.0/16" - } -}' -NET +# Setup +popule_CSAR_multus $csar_id -cat << POD > $HOME/$pod_name.yaml -apiVersion: v1 -kind: Pod -metadata: - name: $pod_name - annotations: - kubernetes.v1.cni.cncf.io/networks: '[ - { "name": "bridge-conf", "interfaceRequest": "eth1" }, - { "name": "bridge-conf", "interfaceRequest": "eth2" } - ]' -spec: # specification of the pod's contents - containers: - - name: $pod_name - image: "busybox" - command: ["top"] - stdin: true - tty: true -POD +pushd ${CSAR_DIR}/${csar_id} +kubectl apply -f bridge-network.yaml -cat << DEPLOYMENT > $HOME/$deployment_name.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: $deployment_name - labels: - app: multus -spec: - replicas: 1 - selector: - matchLabels: - app: multus - template: - metadata: - labels: - app: multus - annotations: - kubernetes.v1.cni.cncf.io/networks: '[ - { "name": "bridge-conf", "interfaceRequest": "eth1" }, - { "name": "bridge-conf", "interfaceRequest": "eth2" } - ]' - spec: - containers: - - name: $deployment_name - image: "busybox" - command: ["top"] - stdin: true - tty: true -DEPLOYMENT +setup $multus_deployment_name -if $(kubectl version &>/dev/null); then - kubectl apply -f $HOME/bridge-network.yaml - - kubectl delete pod $pod_name --ignore-not-found=true --now - kubectl delete deployment $deployment_name --ignore-not-found=true --now - while kubectl get pod $pod_name &>/dev/null; do - sleep 5 - done - kubectl create -f $HOME/$pod_name.yaml - while kubectl get deployment $deployment_name &>/dev/null; do - sleep 5 - done - kubectl create -f $HOME/$deployment_name.yaml - sleep 5 - - deployment_pod=$(kubectl get pods | grep $deployment_name | awk '{print $1}') - for pod in $pod_name $deployment_pod; do - status_phase="" - while [[ $status_phase != "Running" ]]; do - new_phase=$(kubectl get pods $pod | awk 'NR==2{print $3}') - if [[ $new_phase != $status_phase ]]; then - echo "$(date +%H:%M:%S) - $pod : $new_phase" - status_phase=$new_phase - fi - if [[ $new_phase == "Err"* ]]; then - exit 1 - fi - done - done - - for pod in $pod_name $deployment_pod; do - echo "===== $pod details =====" - kubectl exec -it $pod -- ip a - multus_nic=$(kubectl exec -it $pod -- ifconfig | grep "eth1") - if [ -z "$multus_nic" ]; then - exit 1 - fi - done +# Test +deployment_pod=$(kubectl get pods | grep $multus_deployment_name | awk '{print $1}') +echo "===== $deployment_pod details =====" +kubectl exec -it $deployment_pod -- ip a +multus_nic=$(kubectl exec -it $deployment_pod -- ifconfig | grep "eth1") +if [ -z "$multus_nic" ]; then + echo "The $deployment_pod pod doesn't contain the eth1 nic" + exit 1 fi +popd + +# Teardown +teardown $multus_deployment_name -- cgit 1.2.3-korg