|
1 | 1 | #!/bin/bash
|
2 |
| -set -e |
| 2 | +set -euo pipefail |
3 | 3 |
|
4 | 4 | INPUT=$(cat)
|
5 | 5 | REGION=$(echo "$INPUT" | jq -r '.REGION')
|
6 | 6 | RESOURCE_GROUP_ID=$(echo "$INPUT" | jq -r '.RESOURCE_GROUP_ID')
|
7 | 7 | IBMCLOUD_API_KEY=$(echo "$INPUT" | jq -r '.IBMCLOUD_API_KEY')
|
| 8 | +export IBMCLOUD_API_KEY |
8 | 9 |
|
9 | 10 | if [[ -z "${IBMCLOUD_API_KEY}" || "${IBMCLOUD_API_KEY}" == "null" ]]; then
|
10 |
| - echo "IBMCLOUD_API_KEY is required" >&2 |
11 |
| - exit 1 |
| 11 | + echo '{"error": "IBMCLOUD_API_KEY is required"}' |
| 12 | + exit 0 |
12 | 13 | fi
|
13 | 14 |
|
14 | 15 | if [[ -z "${RESOURCE_GROUP_ID}" || "${RESOURCE_GROUP_ID}" == "null" ]]; then
|
15 |
| - echo "RESOURCE_GROUP_ID is required" >&2 |
16 |
| - exit 1 |
| 16 | + echo '{"error": "RESOURCE_GROUP_ID is required"}' |
| 17 | + exit 0 |
17 | 18 | fi
|
18 | 19 |
|
19 | 20 | if [[ -z "${REGION}" || "${REGION}" == "null" ]]; then
|
20 |
| - echo "REGION is required" >&2 |
21 |
| - exit 1 |
| 21 | + echo '{"error": "REGION is required"}' |
| 22 | + exit 0 |
22 | 23 | fi
|
23 | 24 |
|
24 |
| -# Login to IBM Cloud quietly |
25 |
| -if ! ibmcloud login -r "${REGION}" -g "${RESOURCE_GROUP_ID}" --apikey "${IBMCLOUD_API_KEY}" --quiet > /dev/null 2>&1; then |
26 |
| - exit 1 |
| 25 | +if ! ibmcloud login -r "${REGION}" -g "${RESOURCE_GROUP_ID}" --quiet > /dev/null 2>&1; then |
| 26 | + printf '{"error": "Failed to login using: ibmcloud login -r %s -g %s"}' "$REGION" "$RESOURCE_GROUP_ID" |
| 27 | + exit 0 |
27 | 28 | fi
|
28 | 29 |
|
29 | 30 | # extract registry value from text "You are targeting region 'us-south', the registry is 'us.icr.io'."
|
30 |
| -registry=$(ibmcloud cr region 2>/dev/null | grep registry | sed -E "s/.*registry is '([^']+)'.*/\1/") || exit 1 |
| 31 | +registry=$(ibmcloud cr region 2>/dev/null | grep registry | sed -E "s/.*registry is '([^']+)'.*/\1/") |
| 32 | + |
| 33 | +# Validate registry value |
| 34 | +if [[ -z "$registry" ]]; then |
| 35 | + echo '{"error": "Failed to parse registry region from ibmcloud cr region"}' |
| 36 | + exit 0 |
| 37 | +fi |
31 | 38 |
|
32 |
| -# Output valid JSON for Terraform external data source |
33 | 39 | echo "{\"registry\": \"${registry}\"}"
|
0 commit comments