Skip to content

Commit 5a1c58d

Browse files
author
Sheyla Trudo
committed
fixup! Artifacts
1 parent c1f3be2 commit 5a1c58d

File tree

1 file changed

+33
-15
lines changed

1 file changed

+33
-15
lines changed

.pipelines/templates/artifact-storage.steps.yaml

Lines changed: 33 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -144,23 +144,27 @@ steps:
144144
set -e
145145
[[ -n $SYSTEM_DEBUG ]] && [[ $SYSTEM_DEBUG =~ $IS_TRUE ]] && set -x || set +x
146146
147-
MI_DATA=$(az identity list \
148-
--resource-group "$ACNCI_BUILD_RESOURCEGROUP" | \
149-
jq -rc '.')
150-
MI_DATA_LENGTH=$(echo "$MI_DATA" | jq length)
151-
echo >&2 "##vso[task.setvariable variable=MI_DATA]$MI_DATA"
152-
echo >&2 "##vso[task.setvariable variable=MI_DATA_LENGTH]$MI_DATA_LENGTH"
153-
154-
if [[ -n $MI_DATA ]] && \
155-
[[ $MI_DATA != null ]] && \
156-
(( $MI_DATA_LENGTH > 0 )); then
147+
R_QUERY="[? tags.\""$ACNCI_BUILDTAG_DEFINITIONID"\" && tags.\""$ACNCI_BUILDTAG_CREATEDBYAPPID"\"]"
148+
MI_LIST=$(az identity list /
149+
--resource-group "$ACNCI_BUILD_RESOURCEGROUP" /
150+
--query "$R_QUERY" -o json | /
151+
jq -rc \
152+
--arg ACNCI_BUILDTAG_CREATEDBYAPPID "$ACNCI_BUILDTAG_CREATEDBYAPPID" /
153+
--arg APPID "$servicePrincipalId" /
154+
--arg ACNCI_BUILDTAG_DEFINITIONID "$ACNCI_BUILDTAG_DEFINITIONID" /
155+
--arg DEFINITIONID "$SYSTEM_DEFINITIONID" /
156+
'[ .[] | select(.tags[$ACNCI_BUILDTAG_DEFINITIONID] == $DEFINITIONID ) | select( .tags[$ACNCI_BUILDTAG_CREATEDBYAPPID] == $APPID) ]')
157+
MI_LIST_LENGTH=$(echo "$MI_LIST" | jq length)
158+
159+
if [[ -n $MI_LIST ]] && \
160+
[[ $MI_LIST != null ]] && \
161+
(( $MI_LIST_LENGTH > 0 )); then
157162
echo >&2 "##vso[task.setvariable variable=CREATE_NEW_MI;]false"
158163
else
159164
echo >&2 "##vso[task.setvariable variable=CREATE_NEW_MI;]true"
160165
fi
161166
env:
162167
ACNCI_BUILD_RESOURCEGROUP: $(resourcegroups.ACNCI_BUILD_RESOURCEGROUP)
163-
ACNCI_BUILD_RESOURCEGROUP_ID: $(resourcegroups.ACNCI_BUILD_RESOURCEGROUP_ID)
164168

165169
- task: AzureCLI@2
166170
displayName: "[Provision] Build User ManagedIdentity"
@@ -183,11 +187,9 @@ steps:
183187
"$ACNCI_BUILDTAG_CREATEDBYBUILDID"="$BUILD_BUILDID" \
184188
"$ACNCI_BUILDTAG_CREATEDBYAPPID"="$servicePrincipalId"
185189
env:
186-
LOCATION: $(ACNCI_RG_LOCATION)
187190
LOCAL_ACNCI_UNIQUE_ID: $(LOCAL_ACNCI_UNIQUE_ID)
188191
ACNCI_MANAGEDIDENTITY_PREFIX: $(ACNCI_MANAGEDIDENTITY_PREFIX)
189192
ACNCI_BUILD_RESOURCEGROUP: $(resourcegroups.ACNCI_BUILD_RESOURCEGROUP)
190-
ACNCI_BUILD_RESOURCEGROUP_ID: $(resourcegroups.ACNCI_BUILD_RESOURCEGROUP_ID)
191193

192194
- task: AzureCLI@2
193195
name: managedidentity
@@ -201,6 +203,23 @@ steps:
201203
set -e
202204
[[ -n $SYSTEM_DEBUG ]] && [[ $SYSTEM_DEBUG =~ $IS_TRUE ]] && set -x || set +x
203205
206+
R_QUERY="[? tags.\""$ACNCI_BUILDTAG_DEFINITIONID"\" && tags.\""$ACNCI_BUILDTAG_CREATEDBYAPPID"\"]"
207+
MI_LIST=$(az identity list /
208+
--resource-group "$ACNCI_BUILD_RESOURCEGROUP" /
209+
--query "$R_QUERY" -o json | /
210+
jq -rc \
211+
--arg ACNCI_BUILDTAG_CREATEDBYAPPID "$ACNCI_BUILDTAG_CREATEDBYAPPID" /
212+
--arg APPID "$servicePrincipalId" /
213+
--arg ACNCI_BUILDTAG_DEFINITIONID "$ACNCI_BUILDTAG_DEFINITIONID" /
214+
--arg DEFINITIONID "$SYSTEM_DEFINITIONID" /
215+
'[ .[] | select(.tags[$ACNCI_BUILDTAG_DEFINITIONID] == $DEFINITIONID ) | select( .tags[$ACNCI_BUILDTAG_CREATEDBYAPPID] == $APPID) ]')
216+
MI_LIST_LENGTH=$(echo "$MI_LIST" | jq length)
217+
218+
# Select MI to use
219+
RANDOM_SELECT=`tr -dc '1-9' < /dev/urandom | head -c${1:-7}`
220+
IDX=$(( "$RANDOM_SELECT" % "$MI_LIST_LENGTH" ))
221+
MI_DATA=$(echo "$MI_LIST" | jq --argjson IDX "$IDX" -rc '.[$IDX]')
222+
204223
MI_ID=$(echo "$MI_DATA" | jq -r '.id')
205224
echo >&2 "##vso[task.setvariable variable=ACNCI_MANAGEDIDENTITY_ID;isoutput=true]$MI_ID"
206225
MI_PRINCIPALID=$(echo "$MI_DATA" | jq -r '.principalId')
@@ -210,8 +229,7 @@ steps:
210229
MI_NAME=$(echo "$MI_DATA" | jq -r '.name')
211230
echo >&2 "##vso[task.setvariable variable=ACNCI_MANAGEDIDENTITY_NAME;isoutput=true]$MI_NAME"
212231
env:
213-
MI_DATA: $(MI_DATA)
214-
MI_DATA_LENGTH: $(MI_DATA_LENGTH)
232+
ACNCI_BUILD_RESOURCEGROUP: $(resourcegroups.ACNCI_BUILD_RESOURCEGROUP)
215233

216234

217235
## MI Role Assignments ##

0 commit comments

Comments
 (0)