From 3e49b0629eaeafd721365b7e01a9b4e20818d8d3 Mon Sep 17 00:00:00 2001 From: ssum21 Date: Fri, 4 Oct 2024 10:54:19 +0900 Subject: [PATCH] Enhance logging for install_databases.sh script - Improved script readability - Introduced a dynamic log function `log_message` to standardize and enhance logging. - Replaced static `echo` statements with dynamic log messages supporting multiple log levels (INFO, WARN, ERROR). - Added log messages for waiting and successful readiness of database pods (PostgreSQL and Cassandra). Issue-ID: AIMLFW-103 Change-Id: I95bb59e4e90da9c72454caa5443ffd0bd5191386 Signed-off-by: ssum21 --- bin/install_databases.sh | 41 ++++++++++++++++++++++++++++++++++++----- 1 file changed, 36 insertions(+), 5 deletions(-) diff --git a/bin/install_databases.sh b/bin/install_databases.sh index 7b65a6c..d845c45 100755 --- a/bin/install_databases.sh +++ b/bin/install_databases.sh @@ -16,10 +16,41 @@ # # ================================================================================== +# Function to dynamically generate log messages +log_message() { + local log_level=$1 + local component=$2 + local message=$3 + echo "[$log_level] $component: $message" +} + +# Add the Bitnami Helm repository +log_message "INFO" "Helm" "Adding Bitnami Helm repository..." helm repo add bitnami https://charts.bitnami.com/bitnami + +# Install PostgreSQL for Training Manager +log_message "INFO" "Helm" "Installing PostgreSQL (tm-db) in 'traininghost' namespace..." helm install tm-db bitnami/postgresql --namespace traininghost -while [[ $(kubectl get pods tm-db-postgresql-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do echo "waiting for training manager db pod" && sleep 1; done -echo "Installed tm-db" -helm install cassandra --set dbUser.user="cassandra" --namespace="traininghost" bitnami/cassandra --version 10.0.0 -while [[ $(kubectl get pods cassandra-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do echo "waiting for cassandra manager db pod" && sleep 1; done -echo "Installed cassandra-db" + +# Wait for tm-db to be ready +log_message "INFO" "Kubernetes" "Waiting for tm-db-postgresql pod to be ready..." +while [[ $(kubectl get pods tm-db-postgresql-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do + log_message "INFO" "Kubernetes" "Waiting for training manager db pod..." + sleep 1 +done +log_message "INFO" "Kubernetes" "tm-db (PostgreSQL) pod is ready." + +# Install Cassandra for Training Manager +log_message "INFO" "Helm" "Installing Cassandra in 'traininghost' namespace..." +helm install cassandra --set dbUser.user="cassandra" --namespace="traininghost" bitnami/cassandra --version 10.0.0 + +# Wait for Cassandra to be ready +log_message "INFO" "Kubernetes" "Waiting for cassandra-0 pod to be ready..." +while [[ $(kubectl get pods cassandra-0 -n traininghost -o 'jsonpath={..status.conditions[?(@.type=="Ready")].status}') != "True" ]]; do + log_message "INFO" "Kubernetes" "Waiting for Cassandra manager db pod..." + sleep 1 +done +log_message "INFO" "Kubernetes" "Cassandra pod is ready." + +# Final status +log_message "INFO" "Kubernetes" "PostgreSQL (tm-db) and Cassandra successfully installed." -- 2.16.6