Commit 99379c22 authored by Waleed Akbar's avatar Waleed Akbar
Browse files

Added full script to deploy all demo services

parent c84e654c
Loading
Loading
Loading
Loading
+129 −35
Original line number Diff line number Diff line
#!/bin/bash
# Copyright 2022-2025 ETSI SDG TeraFlowSDN (TFS) (https://tfs.etsi.org/)
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

echo "Starting deployment of MWC26-F5GA test environment..."

# Assuming the instances are named as: simap-server, tfs-e2e-ctrl, tfs-agg-ctrl, tfs-ip-ctrl

# Get the current hostname
HOSTNAME=$(hostname)
echo "Deploying in ${HOSTNAME}..."


case "$HOSTNAME" in
    simap-server)
        echo "Building SIMAP Server..."
        cd ~/tfs-ctrl/
        docker buildx build -t simap-server:mock -f ./src/tests/tools/simap_server/Dockerfile .
@@ -24,7 +46,7 @@ docker rm --force nce-fan-ctrl
        docker rm --force nce-t-ctrl
        docker rm --force ai-engine

# echo "Deploying support services..."
        echo "Deploying support services..."
        docker run --detach --name simap-server --publish 8080:8080 \
          -e INFLUXDB_HOST=10.254.0.9 \
          -e INFLUXDB_PORT=8181 \
@@ -39,11 +61,83 @@ docker run --detach --name ai-engine --publish 8084:8080 \
          --env SIMAP_SERVER_ADDRESS=172.17.0.1  --env SIMAP_SERVER_PORT=8080 \
          --env SIMAP_SERVER_USERNAME=admin      --env SIMAP_SERVER_PASSWORD=admin \
          ai-engine:latest


        # NOTE: If testing, run client (src/tests/tools/simap_server/run_client.sh) to manually populate SIMAP Server with telemetry data.


        sleep 2
        docker ps -a
echo "Deployment complete."
        ;;
    tfs-e2e-ctrl)
        echo "Deploying TFS E2E Controller..."
        sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (End-to-End)</h2>|' src/webui/service/templates/main/home.html
        source ~/tfs-ctrl/src/tests/ecoc25-f5ga-telemetry/deploy-specs-e2e.sh
        ./deploy/all.sh

        echo "Waiting for NATS connection..."
        while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done
        kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server
        ;;
    tfs-agg-ctrl)
        echo "Deploying TFS Agg Controller..."
        sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (Aggregation)</h2>|' src/webui/service/templates/main/home.html
        source ~/tfs-ctrl/src/tests/ecoc25-f5ga-telemetry/deploy-specs-agg.sh
        ./deploy/all.sh

        echo "Waiting for NATS connection..."
        while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done
        kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server
        ;;
    tfs-ip-ctrl)
        echo "Deploying TFS IP Controller..."
        sed -i 's|\(<h2>ETSI TeraFlowSDN Controller\)</h2>|\1 (IP)</h2>|' src/webui/service/templates/main/home.html
        source ~/tfs-ctrl/src/tests/ecoc25-f5ga-telemetry/deploy-specs-ip.sh
        ./deploy/all.sh

        # echo "Waiting for NATS connection..."
        # while ! kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server 2>&1 | grep -q 'Subscriber is Ready? True'; do sleep 1; done
        # kubectl --namespace $TFS_K8S_NAMESPACE logs deployment/contextservice -c server
        ;;
    *)
        echo "Unknown host: $HOSTNAME"
        echo "No commands to run."
        ;;
esac

echo "Ready!"




# echo "Starting deployment of MWC26-F5GA test environment..."




# echo "Cleaning up..."
# docker rm --force simap-server
# docker rm --force nce-fan-ctrl
# docker rm --force nce-t-ctrl
# docker rm --force ai-engine

# # echo "Deploying support services..."
# docker run --detach --name simap-server --publish 8080:8080 \
#   -e INFLUXDB_HOST=10.254.0.9 \
#   -e INFLUXDB_PORT=8181 \
#   simap-server:mock

# docker run --detach --name nce-fan-ctrl    --publish 8081:8080 --env SIMAP_ADDRESS=172.17.0.1 --env SIMAP_PORT=8080 nce-fan-ctrl:mock
# docker run --detach --name nce-t-ctrl      --publish 8082:8080 --env SIMAP_ADDRESS=172.17.0.1 --env SIMAP_PORT=8080 nce-t-ctrl:mock

# echo "Deploying AI Analytics Engine..."
# docker run --detach --name ai-engine --publish 8084:8080 \
#      -e INFLUXDB_HOST=10.254.0.9            -e INFLUXDB_PORT=8181 \
#   --env SIMAP_SERVER_ADDRESS=172.17.0.1  --env SIMAP_SERVER_PORT=8080 \
#   --env SIMAP_SERVER_USERNAME=admin      --env SIMAP_SERVER_PASSWORD=admin \
#   ai-engine:latest


# # NOTE: If testing, run client (src/tests/tools/simap_server/run_client.sh) to manually populate SIMAP Server with telemetry data.


# sleep 2
# docker ps -a
# echo "Deployment complete."