Loading src/tests/ryu-openflow/.gitlab-ci.yml +80 −75 Original line number Diff line number Diff line Loading @@ -65,47 +65,47 @@ end2end_test ryu-openflow: - docker volume prune --all --force - docker buildx prune --force # Check MicroK8s is ready - microk8s status --wait-ready - LOOP_MAX_ATTEMPTS=10 - LOOP_COUNTER=0 - > while ! kubectl get pods --all-namespaces &> /dev/null; do printf "%c" "." sleep 1 LOOP_COUNTER=$((LOOP_COUNTER + 1)) if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then echo "Max attempts reached, exiting the loop." exit 1 fi done - kubectl get pods --all-namespaces # Always delete Kubernetes namespaces - export K8S_NAMESPACES=$(kubectl get namespace -o jsonpath='{.items[*].metadata.name}') - echo "K8S_NAMESPACES=${K8S_NAMESPACES}" - export OLD_NATS_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^nats') - echo "OLD_NATS_NAMESPACES=${OLD_NATS_NAMESPACES}" - > for ns in ${OLD_NATS_NAMESPACES}; do if [[ "$ns" == nats* ]]; then if helm3 status "$ns" &>/dev/null; then helm3 uninstall "$ns" -n "$ns" else echo "Release '$ns' not found, skipping..." fi fi done - export OLD_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^(tfs|crdb|qdb|kafka|nats)') - echo "OLD_NAMESPACES=${OLD_NAMESPACES}" - kubectl delete namespace ${OLD_NAMESPACES} || true # Clean-up Kubernetes Failed pods - > kubectl get pods --all-namespaces --no-headers --field-selector=status.phase=Failed -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name | xargs --no-run-if-empty --max-args=2 kubectl delete pod --namespace # # Check MicroK8s is ready # - microk8s status --wait-ready # - LOOP_MAX_ATTEMPTS=10 # - LOOP_COUNTER=0 # - > # while ! kubectl get pods --all-namespaces &> /dev/null; do # printf "%c" "." # sleep 1 # LOOP_COUNTER=$((LOOP_COUNTER + 1)) # if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then # echo "Max attempts reached, exiting the loop." # exit 1 # fi # done # - kubectl get pods --all-namespaces # # # Always delete Kubernetes namespaces # - export K8S_NAMESPACES=$(kubectl get namespace -o jsonpath='{.items[*].metadata.name}') # - echo "K8S_NAMESPACES=${K8S_NAMESPACES}" # # - export OLD_NATS_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^nats') # - echo "OLD_NATS_NAMESPACES=${OLD_NATS_NAMESPACES}" # - > # for ns in ${OLD_NATS_NAMESPACES}; do # if [[ "$ns" == nats* ]]; then # if helm3 status "$ns" &>/dev/null; then # helm3 uninstall "$ns" -n "$ns" # else # echo "Release '$ns' not found, skipping..." # fi # fi # done # - export OLD_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^(tfs|crdb|qdb|kafka|nats)') # - echo "OLD_NAMESPACES=${OLD_NAMESPACES}" # - kubectl delete namespace ${OLD_NAMESPACES} || true # # # Clean-up Kubernetes Failed pods # - > # kubectl get pods --all-namespaces --no-headers --field-selector=status.phase=Failed # -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name | # xargs --no-run-if-empty --max-args=2 kubectl delete pod --namespace # Login Docker repository - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY Loading @@ -116,21 +116,21 @@ end2end_test ryu-openflow: - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}-mininet:${IMAGE_TAG}" - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}-test:${IMAGE_TAG}" # Check MicroK8s is ready - microk8s status --wait-ready - LOOP_MAX_ATTEMPTS=10 - LOOP_COUNTER=0 - > while ! kubectl get pods --all-namespaces &> /dev/null; do printf "%c" "." sleep 1 LOOP_COUNTER=$((LOOP_COUNTER + 1)) if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then echo "Max attempts reached, exiting the loop." exit 1 fi done - kubectl get pods --all-namespaces # # Check MicroK8s is ready # - microk8s status --wait-ready # - LOOP_MAX_ATTEMPTS=10 # - LOOP_COUNTER=0 # - > # while ! kubectl get pods --all-namespaces &> /dev/null; do # printf "%c" "." # sleep 1 # LOOP_COUNTER=$((LOOP_COUNTER + 1)) # if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then # echo "Max attempts reached, exiting the loop." # exit 1 # fi # done # - kubectl get pods --all-namespaces # Deploy Docker network - > Loading Loading @@ -206,19 +206,19 @@ end2end_test ryu-openflow: #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml - source src/tests/${TEST_NAME}/deploy_specs.sh # - source src/tests/${TEST_NAME}/deploy_specs.sh #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" #- export TFS_SKIP_BUILD="YES" #- export TFS_IMAGE_TAG="latest" #- echo "TFS_REGISTRY_IMAGES=${CI_REGISTRY_IMAGE}" # Deploy TeraFlowSDN - ./deploy/crdb.sh - ./deploy/nats.sh - ./deploy/kafka.sh #- ./deploy/qdb.sh - ./deploy/tfs.sh - ./deploy/show.sh # # Deploy TeraFlowSDN # - ./deploy/crdb.sh # - ./deploy/nats.sh # - ./deploy/kafka.sh # #- ./deploy/qdb.sh # - ./deploy/tfs.sh # - ./deploy/show.sh ## Wait for Context to be subscribed to NATS ## WARNING: this loop is infinite if there is no subscriber (such as monitoring). Loading Loading @@ -255,15 +255,15 @@ end2end_test ryu-openflow: - docker exec mininet ovs-ofctl dump-flows s5 # Run end-to-end test: test no connectivity with ping - export TEST_H1_H2=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h2&count=3) - export TEST_H1_H2=$(curl http://172.254.252.10:5000/ping?source=h1&target=h2&count=3) - echo $TEST_H1_H2 - echo $TEST_H1_H2 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST_H1_H3=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h3&count=3) - export TEST_H1_H3=$(curl http://172.254.252.10:5000/ping?source=h1&target=h3&count=3) - echo $TEST_H1_H3 - echo $TEST_H1_H3 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST_H1_H4=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h4&count=3) - export TEST_H1_H4=$(curl http://172.254.252.10:5000/ping?source=h1&target=h4&count=3) - echo $TEST_H1_H4 - echo $TEST_H1_H4 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading Loading @@ -333,16 +333,21 @@ end2end_test ryu-openflow: - docker exec mininet ovs-ofctl dump-flows s4 || true - docker exec mininet ovs-ofctl dump-flows s5 || true # Dump TeraFlowSDN component logs - source src/tests/${TEST_NAME}/deploy_specs.sh - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/serviceservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server || true # Dump Ryu and Mininet logs (on after_script) - docker ps -a - docker logs mininet - docker logs ryu # # Dump TeraFlowSDN component logs # - source src/tests/${TEST_NAME}/deploy_specs.sh # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/serviceservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server || true # Clean up - kubectl delete namespaces tfs || true # - kubectl delete namespaces tfs || true - docker ps --all --quiet | xargs --no-run-if-empty docker stop - docker container prune --force - docker ps --all --quiet | xargs --no-run-if-empty docker rm --force Loading Loading
src/tests/ryu-openflow/.gitlab-ci.yml +80 −75 Original line number Diff line number Diff line Loading @@ -65,47 +65,47 @@ end2end_test ryu-openflow: - docker volume prune --all --force - docker buildx prune --force # Check MicroK8s is ready - microk8s status --wait-ready - LOOP_MAX_ATTEMPTS=10 - LOOP_COUNTER=0 - > while ! kubectl get pods --all-namespaces &> /dev/null; do printf "%c" "." sleep 1 LOOP_COUNTER=$((LOOP_COUNTER + 1)) if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then echo "Max attempts reached, exiting the loop." exit 1 fi done - kubectl get pods --all-namespaces # Always delete Kubernetes namespaces - export K8S_NAMESPACES=$(kubectl get namespace -o jsonpath='{.items[*].metadata.name}') - echo "K8S_NAMESPACES=${K8S_NAMESPACES}" - export OLD_NATS_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^nats') - echo "OLD_NATS_NAMESPACES=${OLD_NATS_NAMESPACES}" - > for ns in ${OLD_NATS_NAMESPACES}; do if [[ "$ns" == nats* ]]; then if helm3 status "$ns" &>/dev/null; then helm3 uninstall "$ns" -n "$ns" else echo "Release '$ns' not found, skipping..." fi fi done - export OLD_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^(tfs|crdb|qdb|kafka|nats)') - echo "OLD_NAMESPACES=${OLD_NAMESPACES}" - kubectl delete namespace ${OLD_NAMESPACES} || true # Clean-up Kubernetes Failed pods - > kubectl get pods --all-namespaces --no-headers --field-selector=status.phase=Failed -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name | xargs --no-run-if-empty --max-args=2 kubectl delete pod --namespace # # Check MicroK8s is ready # - microk8s status --wait-ready # - LOOP_MAX_ATTEMPTS=10 # - LOOP_COUNTER=0 # - > # while ! kubectl get pods --all-namespaces &> /dev/null; do # printf "%c" "." # sleep 1 # LOOP_COUNTER=$((LOOP_COUNTER + 1)) # if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then # echo "Max attempts reached, exiting the loop." # exit 1 # fi # done # - kubectl get pods --all-namespaces # # # Always delete Kubernetes namespaces # - export K8S_NAMESPACES=$(kubectl get namespace -o jsonpath='{.items[*].metadata.name}') # - echo "K8S_NAMESPACES=${K8S_NAMESPACES}" # # - export OLD_NATS_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^nats') # - echo "OLD_NATS_NAMESPACES=${OLD_NATS_NAMESPACES}" # - > # for ns in ${OLD_NATS_NAMESPACES}; do # if [[ "$ns" == nats* ]]; then # if helm3 status "$ns" &>/dev/null; then # helm3 uninstall "$ns" -n "$ns" # else # echo "Release '$ns' not found, skipping..." # fi # fi # done # - export OLD_NAMESPACES=$(echo "${K8S_NAMESPACES}" | tr ' ' '\n' | grep -E '^(tfs|crdb|qdb|kafka|nats)') # - echo "OLD_NAMESPACES=${OLD_NAMESPACES}" # - kubectl delete namespace ${OLD_NAMESPACES} || true # # # Clean-up Kubernetes Failed pods # - > # kubectl get pods --all-namespaces --no-headers --field-selector=status.phase=Failed # -o custom-columns=NAMESPACE:.metadata.namespace,NAME:.metadata.name | # xargs --no-run-if-empty --max-args=2 kubectl delete pod --namespace # Login Docker repository - docker login -u "$CI_REGISTRY_USER" -p "$CI_REGISTRY_PASSWORD" $CI_REGISTRY Loading @@ -116,21 +116,21 @@ end2end_test ryu-openflow: - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}-mininet:${IMAGE_TAG}" - docker pull "${CI_REGISTRY_IMAGE}/${TEST_NAME}-test:${IMAGE_TAG}" # Check MicroK8s is ready - microk8s status --wait-ready - LOOP_MAX_ATTEMPTS=10 - LOOP_COUNTER=0 - > while ! kubectl get pods --all-namespaces &> /dev/null; do printf "%c" "." sleep 1 LOOP_COUNTER=$((LOOP_COUNTER + 1)) if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then echo "Max attempts reached, exiting the loop." exit 1 fi done - kubectl get pods --all-namespaces # # Check MicroK8s is ready # - microk8s status --wait-ready # - LOOP_MAX_ATTEMPTS=10 # - LOOP_COUNTER=0 # - > # while ! kubectl get pods --all-namespaces &> /dev/null; do # printf "%c" "." # sleep 1 # LOOP_COUNTER=$((LOOP_COUNTER + 1)) # if [ "$LOOP_COUNTER" -ge "$LOOP_MAX_ATTEMPTS" ]; then # echo "Max attempts reached, exiting the loop." # exit 1 # fi # done # - kubectl get pods --all-namespaces # Deploy Docker network - > Loading Loading @@ -206,19 +206,19 @@ end2end_test ryu-openflow: #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/serviceservice.yaml #- yq -i '((select(.kind=="Deployment").spec.template.spec.containers.[] | select(.name=="server").env.[]) | select(.name=="LOG_LEVEL").value) |= "DEBUG"' manifests/nbiservice.yaml - source src/tests/${TEST_NAME}/deploy_specs.sh # - source src/tests/${TEST_NAME}/deploy_specs.sh #- export TFS_REGISTRY_IMAGES="${CI_REGISTRY_IMAGE}" #- export TFS_SKIP_BUILD="YES" #- export TFS_IMAGE_TAG="latest" #- echo "TFS_REGISTRY_IMAGES=${CI_REGISTRY_IMAGE}" # Deploy TeraFlowSDN - ./deploy/crdb.sh - ./deploy/nats.sh - ./deploy/kafka.sh #- ./deploy/qdb.sh - ./deploy/tfs.sh - ./deploy/show.sh # # Deploy TeraFlowSDN # - ./deploy/crdb.sh # - ./deploy/nats.sh # - ./deploy/kafka.sh # #- ./deploy/qdb.sh # - ./deploy/tfs.sh # - ./deploy/show.sh ## Wait for Context to be subscribed to NATS ## WARNING: this loop is infinite if there is no subscriber (such as monitoring). Loading Loading @@ -255,15 +255,15 @@ end2end_test ryu-openflow: - docker exec mininet ovs-ofctl dump-flows s5 # Run end-to-end test: test no connectivity with ping - export TEST_H1_H2=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h2&count=3) - export TEST_H1_H2=$(curl http://172.254.252.10:5000/ping?source=h1&target=h2&count=3) - echo $TEST_H1_H2 - echo $TEST_H1_H2 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST_H1_H3=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h3&count=3) - export TEST_H1_H3=$(curl http://172.254.252.10:5000/ping?source=h1&target=h3&count=3) - echo $TEST_H1_H3 - echo $TEST_H1_H3 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' - export TEST_H1_H4=$(curl -s http://172.254.252.10:5000/ping?source=h1&target=h4&count=3) - export TEST_H1_H4=$(curl http://172.254.252.10:5000/ping?source=h1&target=h4&count=3) - echo $TEST_H1_H4 - echo $TEST_H1_H4 | grep -E '3 packets transmitted, 0 received, 100\% packet loss' Loading Loading @@ -333,16 +333,21 @@ end2end_test ryu-openflow: - docker exec mininet ovs-ofctl dump-flows s4 || true - docker exec mininet ovs-ofctl dump-flows s5 || true # Dump TeraFlowSDN component logs - source src/tests/${TEST_NAME}/deploy_specs.sh - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/serviceservice -c server || true - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server || true # Dump Ryu and Mininet logs (on after_script) - docker ps -a - docker logs mininet - docker logs ryu # # Dump TeraFlowSDN component logs # - source src/tests/${TEST_NAME}/deploy_specs.sh # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/deviceservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/pathcompservice -c frontend || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/serviceservice -c server || true # - kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/nbiservice -c server || true # Clean up - kubectl delete namespaces tfs || true # - kubectl delete namespaces tfs || true - docker ps --all --quiet | xargs --no-run-if-empty docker stop - docker container prune --force - docker ps --all --quiet | xargs --no-run-if-empty docker rm --force Loading