Skip to content
Snippets Groups Projects
Commit a8219cc5 authored by Lluis Gifre Renom's avatar Lluis Gifre Renom
Browse files

Update deploy/tfs.sh script

parent 2051a61b
No related branches found
No related tags found
3 merge requests!142Release TeraFlowSDN 2.1,!132NetSoft Hackfest extensions, gNMI Driver, gNMI L3NM Service Handler, multiple fixes,!113Draft: NetSoft Hackfest extensions
......@@ -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
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment