diff --git a/scripts/get_redash_api_key.sh b/scripts/get_redash_api_key.sh index d46cccfb..6c01f766 100644 --- a/scripts/get_redash_api_key.sh +++ b/scripts/get_redash_api_key.sh @@ -1,54 +1,54 @@ -#!/bin/bash - -# Check if the namespace was provided as an argument -if [ -z "$1" ]; then - echo "Namespace not provided. Exiting..." - exit 1 -fi - -# Retrieve the namespace from the argument -namespace="$1" -domain_name="$2" -analytics_subdomain="$3" - -# Prompt the user for their Redash username -read -p "Enter your Redash username: " USERNAME - -# Prompt the user for their Redash password (input hidden for security) -read -s -p "Enter your Redash password: " PASSWORD -echo - -REDASH_URL="https://$analytics_subdomain-$namespace.$domain_name" -# Step 1: Authenticate and get session cookie -LOGIN_RESPONSE=$(curl -s -X POST "$REDASH_URL/login" \ - -H "Content-Type: application/x-www-form-urlencoded" \ - --data-urlencode "email=$USERNAME" \ - --data-urlencode "password=$PASSWORD" \ - -c cookies.txt) - -# Check if login was successful -if ! echo "$LOGIN_RESPONSE" | grep -q 'Redirecting'; then - echo "Login failed!" - exit 1 -fi - -echo "Login successful" - -# Step 2: Retrieve the API key -API_RESPONSE=$(curl -s -X GET "$REDASH_URL/api/users/me" \ - -b cookies.txt) - -# Extract the API key -API_KEY=$(echo "$API_RESPONSE" | grep -Po '"api_key": *"\K[^"]*') - -# Check if API key is extracted -if [ -z "$API_KEY" ]; then - echo "Failed to retrieve API key!" - exit 1 -fi - -# Return the API key -echo "$API_KEY" - -# Cleanup cookies file -rm cookies.txt +#!/bin/bash + +# Ensure namespace is provided +if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then + echo "Usage: $0 " + exit 1 +fi + +NAMESPACE="$1" +DOMAIN_NAME="$2" +ANALYTICS_SUBDOMAIN="$3" + +# Check if forms-flow-analytics is installed +if helm status "forms-flow-analytics" -n "$NAMESPACE" > /dev/null 2>&1; then + echo "forms-flow-analytics is already installed." +else + echo "forms-flow-analytics does not exist. Installing now." + helm install "forms-flow-analytics" ./forms-flow-analytics-chart -n "$NAMESPACE" +fi + +REDASH_URL="https://$ANALYTICS_SUBDOMAIN-$NAMESPACE.$DOMAIN_NAME" + +# Prompt for credentials +echo "Redash URL: $REDASH_URL" +read -p "Enter your Redash username: " USERNAME +read -s -p "Enter your Redash password: " PASSWORD +echo + +# Authenticate and retrieve API key +LOGIN_RESPONSE=$(curl -s -X POST "$REDASH_URL/login" \ + -H "Content-Type: application/x-www-form-urlencoded" \ + --data-urlencode "email=$USERNAME" \ + --data-urlencode "password=$PASSWORD" \ + -c cookies.txt) + +if ! echo "$LOGIN_RESPONSE" | grep -q 'Redirecting'; then + echo "Login failed! Verify your credentials or URL." + rm cookies.txt + exit 1 +fi + +API_RESPONSE=$(curl -s -X GET "$REDASH_URL/api/users/me" -b cookies.txt) +API_KEY=$(echo "$API_RESPONSE" | jq -r '.api_key') + +if [ -z "$API_KEY" ]; then + echo "Failed to retrieve API key!" + rm cookies.txt + exit 1 +fi + +echo "Redash API Key: $API_KEY" + +# Cleanup +rm cookies.txt diff --git a/scripts/install-forms-flow.sh b/scripts/install-forms-flow.sh index 403f2d52..9814ab41 100644 --- a/scripts/install-forms-flow.sh +++ b/scripts/install-forms-flow.sh @@ -62,7 +62,7 @@ runHelmInstall() { helm upgrade --install forms-flow-api ../charts/forms-flow-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-api-$namespace.$domain_name --set image.repository=formsflow/forms-flow-webapi-ee -n $namespace --version $version_ff_api helm upgrade --install forms-flow-bpm ../charts/forms-flow-bpm --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-bpm-$namespace.$domain_name --set image.repository=formsflow/forms-flow-bpm-ee --set camunda.websocket.securityOrigin=https://forms-flow-web-$namespace.$domain_name --set image.repository=formsflow/forms-flow-bpm-ee -n $namespace --version $version_ff_bpm helm upgrade --install forms-flow-documents-api ../charts/forms-flow-documents-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-documents-api-$namespace.$domain_name --set image.repository=formsflow/forms-flow-documents-api-ee -n $namespace --version $version_ff_documents_api - helm upgrade --install forms-flow-data-analysis ../charts/forms-flow-data-analysis --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-data-analysis-$namespace.$domain_name --set ingress.tls=true --set image.repository=formsflow/forms-flow-data-analysis-api-ee -n $namespace --version $version_ff_data_analysis + helm upgrade --install forms-flow-data-analysis ../charts/forms-flow-data-analysis --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-data-analysis-$namespace.$domain_name --set ingress.tls=true --set image.repository=formsflow/forms-flow-data-analysis-api-ee -n $namespace --version $version_ff_data_analysis helm upgrade --install forms-flow-web ../charts/forms-flow-web --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-web-$namespace.$domain_name --set image.repository=formsflow/forms-flow-web-ee -n $namespace --version $version_ff_web helm upgrade --install forms-flow-admin ../charts/forms-flow-admin --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-admin-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_admin else @@ -87,9 +87,9 @@ runHelmInstall() { helm upgrade --install forms-flow-api ../charts/forms-flow-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-api-$namespace.$domain_name --set image.repository=formsflow/forms-flow-webapi-ee -n $namespace --version $version_ff_api helm upgrade --install forms-flow-bpm ../charts/forms-flow-bpm --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-bpm-$namespace.$domain_name --set image.repository=formsflow/forms-flow-bpm-ee --set camunda.websocket.securityOrigin=https://forms-flow-web-$namespace.$domain_name --set image.repository=formsflow/forms-flow-bpm-ee -n $namespace --version $version_ff_bpm helm upgrade --install forms-flow-documents-api ../charts/forms-flow-documents-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-documents-api-$namespace.$domain_name --set image.repository=formsflow/forms-flow-documents-api-ee -n $namespace --version $version_ff_documents_api - helm upgrade --install forms-flow-data-analysis ../charts/forms-flow-data-analysis --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-data-analysis-$namespace.$domain_name --set ingress.tls=true --set image.repository=formsflow/forms-flow-data-analysis-api-ee -n $namespace --version $version_ff_data_analysis + helm upgrade --install forms-flow-data-analysis ../charts/forms-flow-data-analysis --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-data-analysis-$namespace.$domain_name --set ingress.tls=true --set image.repository=formsflow/forms-flow-data-analysis-api-ee -n $namespace --version $version_ff_data_analysis helm upgrade --install forms-flow-web ../charts/forms-flow-web --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-web-$namespace.$domain_name --set image.repository=formsflow/forms-flow-web-ee -n $namespace --version $version_ff_web - helm upgrade --install forms-flow-admin ../charts/forms-flow-admin --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-admin-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_admin + helm upgrade --install forms-flow-admin ../charts/forms-flow-admin --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-admin-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_admin fi else @@ -111,10 +111,10 @@ runHelmInstall() { helm upgrade --install forms-flow-analytics ../charts/forms-flow-analytics --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-analytics-$namespace.$domain_name -n $namespace --version $version_ff_analytics fi fi - helm upgrade --install forms-flow-idm ../charts/forms-flow-idm --set keycloak.ingress.hostname=forms-flow-idm-$namespace.$domain_name --set postgresql-ha.postgresql.podSecurityContext.enabled=true --set keycloak.ingress.ingressClassName=$classname -n $namespace --version $version_ff_idm + helm upgrade --install forms-flow-idm ../charts/forms-flow-idm --set keycloak.ingress.hostname=forms-flow-idm-$namespace.$domain_name --set postgresql-ha.postgresql.podSecurityContext.enabled=true --set keycloak.ingress.ingressClassName=$classname -n $namespace --version $version_ff_idm helm upgrade --install forms-flow-forms ../charts/forms-flow-forms --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-forms-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_forms helm upgrade --install forms-flow-api ../charts/forms-flow-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-api-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_api - helm upgrade --install forms-flow-bpm ../charts/forms-flow-bpm --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-bpm-$namespace.$domain_name --set ingress.tls=true --set camunda.websocket.securityOrigin=https://forms-flow-web-$namespace.$domain_name -n $namespace --version $version_ff_bpm + helm upgrade --install forms-flow-bpm ../charts/forms-flow-bpm --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-bpm-$namespace.$domain_name --set ingress.tls=true --set camunda.websocket.securityOrigin=https://forms-flow-web-$namespace.$domain_name -n $namespace --version $version_ff_bpm helm upgrade --install forms-flow-documents-api ../charts/forms-flow-documents-api --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-documents-api-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_documents_api helm upgrade --install forms-flow-web ../charts/forms-flow-web --set ingress.ingressClassName=$classname --set ingress.hostname=forms-flow-web-$namespace.$domain_name --set ingress.tls=true -n $namespace --version $version_ff_web fi