From e7a61c35638b6d043e9f9b774eb1b8ea1fc3967f Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Tue, 13 May 2025 11:58:31 +1000 Subject: [PATCH 1/2] feat: add script to login to argocd using the cli Signed-off-by: Chris Butler --- scripts/argocd-login.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 scripts/argocd-login.sh diff --git a/scripts/argocd-login.sh b/scripts/argocd-login.sh new file mode 100755 index 00000000..bf0130fb --- /dev/null +++ b/scripts/argocd-login.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash + +## Login to validated patterns argocd instances + +# Detect Argo CD namespaces +ARGOCD_NAMESPACES=$(oc get argoCD -A -o jsonpath='{.items[*].metadata.namespace}') +if [ -z "$ARGOCD_NAMESPACES" ]; then + echo "Error: No Argo CD instances found in the cluster." + exit 1 +fi + +# Split the namespaces into an array +NAMESPACES=($ARGOCD_NAMESPACES) + +# Check if there are at least two Argo CD instances +if [ ${#NAMESPACES[@]} -lt 2 ]; then + echo "Error: Less than two Argo CD instances found. Found instances in namespaces: $ARGOCD_NAMESPACES" + exit 1 +fi + + +for NAMESPACE in ${NAMESPACES[@]}; do + # get the instance name + ARGOCD_INSTANCE=$(oc get argocd -n "$NAMESPACE" -o jsonpath='{.items[0].metadata.name}') # assume only one per NS + SERVER_URL=$(oc get route "$ARGOCD_INSTANCE"-server -n "$NAMESPACE" -o jsonpath='{.status.ingress[0].host}') + PASSWORD=$(oc get secret "$ARGOCD_INSTANCE"-cluster -n "$NAMESPACE" -o jsonpath='{.data.admin\.password}' | base64 -d) + echo $PASSWORD + argocd login --skip-test-tls --insecure --grpc-web "$SERVER_URL" --username "admin" --password "$PASSWORD" + if [ "$?" -ne 0 ]; then + echo "Login to Argo CD ${SERVER_URL} failed. Exiting." + exit 1 + fi + argocd context switch "$SERVER_URL" +done From cbdaac5d321dd9aaf37c1ac22b92c5d54197f8ba Mon Sep 17 00:00:00 2001 From: Chris Butler Date: Thu, 15 May 2025 09:45:28 +1000 Subject: [PATCH 2/2] fix: strip out unneeded code Signed-off-by: Chris Butler --- scripts/argocd-login.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/argocd-login.sh b/scripts/argocd-login.sh index bf0130fb..99512c57 100755 --- a/scripts/argocd-login.sh +++ b/scripts/argocd-login.sh @@ -30,5 +30,5 @@ for NAMESPACE in ${NAMESPACES[@]}; do echo "Login to Argo CD ${SERVER_URL} failed. Exiting." exit 1 fi - argocd context switch "$SERVER_URL" + done