diff --git a/ci-scripts/rhdh-setup/create_resource.sh b/ci-scripts/rhdh-setup/create_resource.sh index c6316d5f..dfca49f7 100755 --- a/ci-scripts/rhdh-setup/create_resource.sh +++ b/ci-scripts/rhdh-setup/create_resource.sh @@ -195,7 +195,7 @@ get_group_path_by_name() { local group_name="$input" token=$(get_token) - response=$(curl -s -k --location --request GET "$(keycloak_url)/auth/admin/realms/backstage/groups?search=${group_name}" \ + response=$(curl -s -k --location --request GET "$(keycloak_url)/admin/realms/backstage/groups?search=${group_name}" \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $token" 2>&1) @@ -221,7 +221,7 @@ get_group_id_by_name() { group_name="$1" token=$(get_token) - response=$(curl -s -k --location --request GET "$(keycloak_url)/auth/admin/realms/backstage/groups?search=${group_name}" \ + response=$(curl -s -k --location --request GET "$(keycloak_url)/admin/realms/backstage/groups?search=${group_name}" \ -H 'Content-Type: application/json' \ -H "Authorization: Bearer $token" 2>&1) @@ -269,7 +269,7 @@ assign_parent_group() { attempt=1 while (( attempt <= max_attempts )); do token=$(get_token) - response="$(curl -s -k --location --request POST "$(keycloak_url)/auth/admin/realms/backstage/groups/${parent_id}/children" \ + response="$(curl -s -k --location --request POST "$(keycloak_url)/admin/realms/backstage/groups/${parent_id}/children" \ -H 'Content-Type: application/json' -H "Authorization: Bearer $token" \ --data-raw '{"name":"'"${child_name}"'"}' 2>&1)" if [ "${PIPESTATUS[0]}" -eq 0 ] && ! echo "$response" | grep -q 'error' >&/dev/null; then @@ -296,7 +296,7 @@ create_group() { groupname="g${idx}" while ((attempt <= max_attempts)); do token=$(get_token) - response="$(curl -s -k --location --request POST "$(keycloak_url)/auth/admin/realms/backstage/groups" \ + response="$(curl -s -k --location --request POST "$(keycloak_url)/admin/realms/backstage/groups" \ -H 'Content-Type: application/json' -H "Authorization: Bearer $token" \ --data-raw '{"name":"'"${groupname}"'"}' 2>&1)" if [ "${PIPESTATUS[0]}" -eq 0 ] && ! echo "$response" | grep -q 'error' >&/dev/null; then @@ -319,7 +319,7 @@ create_group() { groupname="g${idx}" while ((attempt <= max_attempts)); do token=$(get_token) - response="$(curl -s -k --location --request POST "$(keycloak_url)/auth/admin/realms/backstage/groups" \ + response="$(curl -s -k --location --request POST "$(keycloak_url)/admin/realms/backstage/groups" \ -H 'Content-Type: application/json' -H "Authorization: Bearer $token" \ --data-raw '{"name":"'"${groupname}"'"}' 2>&1)" if [ "${PIPESTATUS[0]}" -eq 0 ] && ! echo "$response" | grep -q 'error' >&/dev/null; then @@ -443,8 +443,8 @@ create_user() { groups="$groups]" while ((attempt <= max_attempts)); do token=$(get_token) - username="t${0}" - response="$(curl -s -k --location --request POST "$(keycloak_url)/auth/admin/realms/backstage/users" \ + username="t_${0}" + response="$(curl -s -k --location --request POST "$(keycloak_url)/admin/realms/backstage/users" \ -H 'Content-Type: application/json' \ -H 'Authorization: Bearer '"$token" \ --data-raw '{"firstName":"'"${username}"'","lastName":"tester", "email":"'"${username}"'@test.com","emailVerified":"true", "enabled":"true", "username":"'"${username}"'","groups":'"$groups"',"credentials":[{"type":"password","value":"'"${KEYCLOAK_USER_PASS}"'","temporary":false}]}' 2>&1)" @@ -499,7 +499,13 @@ log_token_err() { } keycloak_token() { - curl -s -k "$(keycloak_url)/auth/realms/master/protocol/openid-connect/token" -d username=admin -d "password=$1" -d 'grant_type=password' -d 'client_id=admin-cli' | jq -r ".expires_in_timestamp = $(python3 -c 'from datetime import datetime, timedelta; t_add=int(30); print(int((datetime.now() + timedelta(seconds=t_add)).timestamp()))')" + client_secret=$(oc -n "${RHDH_NAMESPACE}" get secret keycloak-client-secret-backstage -o template --template='{{.data.CLIENT_SECRET}}' | base64 -d) + curl -s -k "$(keycloak_url)/realms/backstage/protocol/openid-connect/token" \ + -d username=guru \ + -d "password=$1" \ + -d 'grant_type=password' \ + -d 'client_id=backstage' \ + -d "client_secret=$client_secret" | jq -r ".expires_in_timestamp = $(python3 -c 'from datetime import datetime, timedelta; t_add=int(30); print(int((datetime.now() + timedelta(seconds=t_add)).timestamp()))')" } rhdh_token() { @@ -526,7 +532,7 @@ rhdh_token() { --data-urlencode "redirect_uri=${REDIRECT_URL}" \ --data-urlencode "scope=openid email profile" \ --data-urlencode "response_type=code" \ - "$(keycloak_url)/auth/realms/$REALM/protocol/openid-connect/auth" 2>&1| tee "$TMP_DIR/auth_url.log" | grep -oE 'action="[^"]+"' | grep -oE '"[^"]+"' | tr -d '"') + "$(keycloak_url)/realms/$REALM/protocol/openid-connect/auth" 2>&1| tee "$TMP_DIR/auth_url.log" | grep -oE 'action="[^"]+"' | grep -oE '"[^"]+"' | tr -d '"') execution=$(echo "$AUTH_URL" | grep -oE 'execution=[^&]+' | grep -oE '[^=]+$') tab_id=$(echo "$AUTH_URL" | grep -oE 'tab_id=[^&]+' | grep -oE '[^=]+$') @@ -588,7 +594,7 @@ get_token() { log_token_err "Unable to get $token_type token, re-attempting" fi else - keycloak_pass=$(oc -n "${RHDH_NAMESPACE}" get secret credential-rhdh-sso -o template --template='{{.data.ADMIN_PASSWORD}}' | base64 -d) + keycloak_pass=$(oc -n "${RHDH_NAMESPACE}" get secret perf-test-secrets -o template --template='{{.data.keycloak_user_pass}}' | base64 -d) if ! keycloak_token "$keycloak_pass" >"$token_file"; then log_token_err "Unable to get $token_type token, re-attempting" fi diff --git a/ci-scripts/rhdh-setup/deploy.sh b/ci-scripts/rhdh-setup/deploy.sh index a587fe2d..cdb08982 100755 --- a/ci-scripts/rhdh-setup/deploy.sh +++ b/ci-scripts/rhdh-setup/deploy.sh @@ -61,6 +61,7 @@ export GROUP_COUNT="${GROUP_COUNT:-1}" export API_COUNT="${API_COUNT:-1}" export COMPONENT_COUNT="${COMPONENT_COUNT:-1}" export KEYCLOAK_USER_PASS=${KEYCLOAK_USER_PASS:-$(mktemp -u XXXXXXXXXX)} +export KEYCLOAK_ADMIN_PASS=${KEYCLOAK_ADMIN_PASS:-admin} export AUTH_PROVIDER="${AUTH_PROVIDER:-''}" export ENABLE_RBAC="${ENABLE_RBAC:-false}" export ENABLE_ORCHESTRATOR="${ENABLE_ORCHESTRATOR:-false}" @@ -234,11 +235,32 @@ keycloak_install() { ) envsubst