diff --git a/deploy/tfs.sh b/deploy/tfs.sh index e6a0c0c1053b69462a0e60c6b6cebe28a7dc59af..1ecb039e3fdeb88ca04737e56df5f94e588fed0b 100755 --- a/deploy/tfs.sh +++ b/deploy/tfs.sh @@ -176,13 +176,14 @@ echo "# Environment variables for TeraFlowSDN deployment" > $ENV_VARS_SCRIPT PYTHONPATH=$(pwd)/src echo "export PYTHONPATH=${PYTHONPATH}" >> $ENV_VARS_SCRIPT -echo "Create Redis secret..." -# first try to delete an old one if exists -kubectl delete secret redis-secrets --namespace=$TFS_K8S_NAMESPACE --ignore-not-found -REDIS_PASSWORD=`uuidgen` -kubectl create secret generic redis-secrets --namespace=$TFS_K8S_NAMESPACE \ - --from-literal=REDIS_PASSWORD=$REDIS_PASSWORD -echo "export REDIS_PASSWORD=${REDIS_PASSWORD}" >> $ENV_VARS_SCRIPT +# Not needed for the Hackfest +#echo "Create Redis secret..." +## first try to delete an old one if exists +#kubectl delete secret redis-secrets --namespace=$TFS_K8S_NAMESPACE --ignore-not-found +#REDIS_PASSWORD=`uuidgen` +#kubectl create secret generic redis-secrets --namespace=$TFS_K8S_NAMESPACE \ +# --from-literal=REDIS_PASSWORD=$REDIS_PASSWORD +#echo "export REDIS_PASSWORD=${REDIS_PASSWORD}" >> $ENV_VARS_SCRIPT for COMPONENT in $TFS_COMPONENTS; do echo "Processing '$COMPONENT' component..." @@ -259,8 +260,9 @@ for COMPONENT in $TFS_COMPONENTS; do echo " Adapting '$COMPONENT' manifest file..." MANIFEST="$TMP_MANIFESTS_FOLDER/${COMPONENT}service.yaml" - # cp ./manifests/"${COMPONENT}"service.yaml "$MANIFEST" - cat ./manifests/"${COMPONENT}"service.yaml | linkerd inject - --proxy-cpu-request "10m" --proxy-cpu-limit "1" --proxy-memory-request "64Mi" --proxy-memory-limit "256Mi" > "$MANIFEST" + # Deactivated linkerd for the Hackfest + cp ./manifests/"${COMPONENT}"service.yaml "$MANIFEST" + #cat ./manifests/"${COMPONENT}"service.yaml | linkerd inject - --proxy-cpu-request "10m" --proxy-cpu-limit "1" --proxy-memory-request "64Mi" --proxy-memory-limit "256Mi" > "$MANIFEST" if [ "$COMPONENT" == "pathcomp" ]; then IMAGE_URL=$(echo "$TFS_REGISTRY_IMAGES/$COMPONENT-frontend:$TFS_IMAGE_TAG" | sed 's,//,/,g' | sed 's,http:/,,g') @@ -375,10 +377,11 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]]; then GRAFANA_URL_UPDATED="http://${GRAFANA_USERNAME}:${TFS_GRAFANA_PASSWORD}@${GRAFANA_URL}" echo "export GRAFANA_URL_UPDATED=${GRAFANA_URL_UPDATED}" >> $ENV_VARS_SCRIPT - echo ">> Installing Scatter Plot plugin..." - curl -X POST -H "Content-Type: application/json" -H "Content-Length: 0" \ - ${GRAFANA_URL_UPDATED}/api/plugins/michaeldmoore-scatter-panel/install - echo + # Not needed for the Hackfest + #echo ">> Installing Scatter Plot plugin..." + #curl -X POST -H "Content-Type: application/json" -H "Content-Length: 0" \ + # ${GRAFANA_URL_UPDATED}/api/plugins/michaeldmoore-scatter-panel/install + #echo # Ref: https://grafana.com/docs/grafana/latest/http_api/data_source/ QDB_HOST_PORT="${METRICSDB_HOSTNAME}:${QDB_SQL_PORT}" @@ -408,68 +411,71 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]]; then }' ${GRAFANA_URL_UPDATED}/api/datasources echo - curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ - "access" : "proxy", - "type" : "postgres", - "name" : "questdb-slc-grp", - "url" : "'${QDB_HOST_PORT}'", - "database" : "'${QDB_TABLE_SLICE_GROUPS}'", - "user" : "'${QDB_USERNAME}'", - "basicAuth": false, - "isDefault": false, - "jsonData" : { - "sslmode" : "disable", - "postgresVersion" : 1100, - "maxOpenConns" : 0, - "maxIdleConns" : 2, - "connMaxLifetime" : 14400, - "tlsAuth" : false, - "tlsAuthWithCACert" : false, - "timescaledb" : false, - "tlsConfigurationMethod": "file-path", - "tlsSkipVerify" : true - }, - "secureJsonData": {"password": "'${QDB_PASSWORD}'"} - }' ${GRAFANA_URL_UPDATED}/api/datasources - echo - - curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ - "access" : "proxy", - "type" : "postgres", - "name" : "cockroachdb", - "url" : "'cockroachdb-public.${CRDB_NAMESPACE}.svc.cluster.local:${CRDB_SQL_PORT}'", - "database" : "'${CRDB_DATABASE}'", - "user" : "'${CRDB_USERNAME}'", - "basicAuth": false, - "isDefault": false, - "jsonData" : { - "sslmode" : "require", - "postgresVersion" : 1100, - "maxOpenConns" : 0, - "maxIdleConns" : 2, - "connMaxLifetime" : 14400, - "tlsAuth" : false, - "tlsAuthWithCACert" : false, - "timescaledb" : false, - "tlsConfigurationMethod": "file-path", - "tlsSkipVerify" : true - }, - "secureJsonData": {"password": "'${CRDB_PASSWORD}'"} - }' ${GRAFANA_URL_UPDATED}/api/datasources - echo - - # adding the datasource of the metrics collection framework - curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ - "access" : "proxy", - "type" : "prometheus", - "name" : "prometheus", - "url" : "http://prometheus-k8s.monitoring.svc:9090", - "basicAuth": false, - "isDefault": false, - "jsonData" : { - "httpMethod" : "POST" - } - }' ${GRAFANA_URL_UPDATED}/api/datasources + # Not needed for the Hackfest + #curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ + # "access" : "proxy", + # "type" : "postgres", + # "name" : "questdb-slc-grp", + # "url" : "'${QDB_HOST_PORT}'", + # "database" : "'${QDB_TABLE_SLICE_GROUPS}'", + # "user" : "'${QDB_USERNAME}'", + # "basicAuth": false, + # "isDefault": false, + # "jsonData" : { + # "sslmode" : "disable", + # "postgresVersion" : 1100, + # "maxOpenConns" : 0, + # "maxIdleConns" : 2, + # "connMaxLifetime" : 14400, + # "tlsAuth" : false, + # "tlsAuthWithCACert" : false, + # "timescaledb" : false, + # "tlsConfigurationMethod": "file-path", + # "tlsSkipVerify" : true + # }, + # "secureJsonData": {"password": "'${QDB_PASSWORD}'"} + #}' ${GRAFANA_URL_UPDATED}/api/datasources + #echo + + # Not needed for the Hackfest + #curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ + # "access" : "proxy", + # "type" : "postgres", + # "name" : "cockroachdb", + # "url" : "'cockroachdb-public.${CRDB_NAMESPACE}.svc.cluster.local:${CRDB_SQL_PORT}'", + # "database" : "'${CRDB_DATABASE}'", + # "user" : "'${CRDB_USERNAME}'", + # "basicAuth": false, + # "isDefault": false, + # "jsonData" : { + # "sslmode" : "require", + # "postgresVersion" : 1100, + # "maxOpenConns" : 0, + # "maxIdleConns" : 2, + # "connMaxLifetime" : 14400, + # "tlsAuth" : false, + # "tlsAuthWithCACert" : false, + # "timescaledb" : false, + # "tlsConfigurationMethod": "file-path", + # "tlsSkipVerify" : true + # }, + # "secureJsonData": {"password": "'${CRDB_PASSWORD}'"} + #}' ${GRAFANA_URL_UPDATED}/api/datasources + #echo + + # Not needed for the Hackfest + ## adding the datasource of the metrics collection framework + #curl -X POST -H "Content-Type: application/json" -H "Accept: application/json" -d '{ + # "access" : "proxy", + # "type" : "prometheus", + # "name" : "prometheus", + # "url" : "http://prometheus-k8s.monitoring.svc:9090", + # "basicAuth": false, + # "isDefault": false, + # "jsonData" : { + # "httpMethod" : "POST" + # } + #}' ${GRAFANA_URL_UPDATED}/api/datasources printf "\n\n" echo ">> Creating and staring dashboards..." @@ -484,68 +490,75 @@ if [[ "$TFS_COMPONENTS" == *"webui"* ]]; then curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} echo - # Dashboard: Slice Grouping - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_db_slc_grps_psql.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-slice-grps" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Component RPCs - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_component_rpc.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-comp-rpc" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Device Drivers - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_device_driver.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-dev-drv" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Service Handlers - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_service_handler.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-svc-hdlr" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Device Execution Details - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_device_exec_details.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-dev-exec" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Load Generator Status - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_load_generator.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-loadgen-stats" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo - - # Dashboard: Load Generator Status - curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_tfs_num_pods.json' \ - ${GRAFANA_URL_UPDATED}/api/dashboards/db - echo - DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-num-pods" - DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') - curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} - echo + # Not needed for the Hackfest + ## Dashboard: Slice Grouping + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_db_slc_grps_psql.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-slice-grps" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Component RPCs + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_component_rpc.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-comp-rpc" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Device Drivers + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_device_driver.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-dev-drv" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Service Handlers + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_service_handler.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-svc-hdlr" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Device Execution Details + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_device_exec_details.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-dev-exec" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Load Generator Status + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_load_generator.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-loadgen-stats" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo + + # Not needed for the Hackfest + ## Dashboard: Load Generator Status + #curl -X POST -H "Content-Type: application/json" -d '@src/webui/grafana_prom_tfs_num_pods.json' \ + # ${GRAFANA_URL_UPDATED}/api/dashboards/db + #echo + #DASHBOARD_URL="${GRAFANA_URL_UPDATED}/api/dashboards/uid/tfs-num-pods" + #DASHBOARD_ID=$(curl -s "${DASHBOARD_URL}" | jq '.dashboard.id') + #curl -X POST ${GRAFANA_URL_UPDATED}/api/user/stars/dashboard/${DASHBOARD_ID} + #echo printf "\n\n" fi