Skip to content

Commit f5d7567

Browse files
committed
Rename resource group variables to explicitly distinguish cluster and global resource groups
1 parent e48d973 commit f5d7567

14 files changed

+105
-103
lines changed

.github/workflows/_deploy-container.yml

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,15 +100,16 @@ jobs:
100100
101101
- name: Deploy Container
102102
run: |
103+
CLUSTER_RESOURCE_GROUP_NAME="${{ env.UNIQUE_PREFIX }}-${{ env.ENVIRONMENT }}-${{ env.CLUSTER_LOCATION_ACRONYM }}"
103104
SUFFIX=$(echo "${{ inputs.version }}" | sed 's/\./-/g')
104-
az containerapp update --name ${{ inputs.image_name }} --resource-group "${{ env.UNIQUE_PREFIX }}-${{ env.ENVIRONMENT }}-${{ env.CLUSTER_LOCATION_ACRONYM }}" --image "${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }}.azurecr.io/${{ inputs.image_name }}:${{ inputs.version }}" --revision-suffix $SUFFIX
105+
az containerapp update --name ${{ inputs.image_name }} --resource-group "$CLUSTER_RESOURCE_GROUP_NAME" --image "${{ env.UNIQUE_PREFIX }}${{ env.ENVIRONMENT }}.azurecr.io/${{ inputs.image_name }}:${{ inputs.version }}" --revision-suffix $SUFFIX
105106
106107
echo "Waiting for the new revision to be active..."
107108
for i in {1..10}; do
108109
sleep 15
109110
110-
RUNNING_STATUS=$(az containerapp revision list --name ${{ inputs.image_name }} --resource-group "${{ env.UNIQUE_PREFIX }}-${{ env.ENVIRONMENT }}-${{ env.CLUSTER_LOCATION_ACRONYM }}" --query "[?contains(name, '$SUFFIX')].properties.runningState" --output tsv)
111-
HEALTH_STATUS=$(az containerapp revision list --name ${{ inputs.image_name }} --resource-group "${{ env.UNIQUE_PREFIX }}-${{ env.ENVIRONMENT }}-${{ env.CLUSTER_LOCATION_ACRONYM }}" --query "[?contains(name, '$SUFFIX')].properties.healthState" --output tsv)
111+
RUNNING_STATUS=$(az containerapp revision list --name ${{ inputs.image_name }} --resource-group "$CLUSTER_RESOURCE_GROUP_NAME" --query "[?contains(name, '$SUFFIX')].properties.runningState" --output tsv)
112+
HEALTH_STATUS=$(az containerapp revision list --name ${{ inputs.image_name }} --resource-group "$CLUSTER_RESOURCE_GROUP_NAME" --query "[?contains(name, '$SUFFIX')].properties.healthState" --output tsv)
112113
if [[ "$HEALTH_STATUS" == "Healthy" ]]; then
113114
echo "New revision is healthy. Running state: $RUNNING_STATUS"
114115
exit 0

.github/workflows/_deploy-infrastructure.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -83,17 +83,17 @@ jobs:
8383
- name: Show DNS Configuration
8484
if: ${{ inputs.domain_name != '' && inputs.domain_name != '-' }}
8585
run: |
86-
RESOURCE_GROUP_NAME="${{ inputs.unique_prefix }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}"
86+
CLUSTER_RESOURCE_GROUP_NAME="${{ inputs.unique_prefix }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}"
8787
8888
# Try to get the Container Apps Environment details
89-
env_details=$(az containerapp env show --name $RESOURCE_GROUP_NAME --resource-group $RESOURCE_GROUP_NAME 2>&1 || echo "")
89+
env_details=$(az containerapp env show --name $CLUSTER_RESOURCE_GROUP_NAME --resource-group $CLUSTER_RESOURCE_GROUP_NAME 2>&1 || echo "")
9090
9191
if [[ "$env_details" != "" ]] && [[ "$env_details" != *"ResourceNotFound"* ]] && [[ "$env_details" != *"ResourceGroupNotFound"* ]]; then
9292
custom_domain_verification_id=$(echo "$env_details" | jq -r '.properties.customDomainConfiguration.customDomainVerificationId')
9393
default_domain=$(echo "$env_details" | jq -r '.properties.defaultDomain')
9494
9595
# Check if app-gateway already has the custom domain configured
96-
app_gateway_details=$(az containerapp show --name app-gateway --resource-group $RESOURCE_GROUP_NAME 2>&1 || echo "")
96+
app_gateway_details=$(az containerapp show --name app-gateway --resource-group $CLUSTER_RESOURCE_GROUP_NAME 2>&1 || echo "")
9797
custom_domains=$(echo "$app_gateway_details" | jq -r '.properties.configuration.ingress.customDomains // []')
9898
9999
if [[ "$custom_domains" != "[]" ]] && [[ "$custom_domains" != "null" ]]; then

.github/workflows/_migrate-database.yml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
env:
5252
UNIQUE_PREFIX: ${{ vars.UNIQUE_PREFIX }}
5353
TENANT_ID: ${{ vars.TENANT_ID }}
54-
RESOURCE_GROUP_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
54+
CLUSTER_RESOURCE_GROUP_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
5555
SQL_SERVER_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
5656
SQL_SERVER_FQDN: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}.database.windows.net
5757

@@ -82,7 +82,7 @@ jobs:
8282
- name: Open Firewall
8383
working-directory: cloud-infrastructure/cluster
8484
env:
85-
RESOURCE_GROUP_NAME: ${{ env.RESOURCE_GROUP_NAME }}
85+
CLUSTER_RESOURCE_GROUP_NAME: ${{ env.CLUSTER_RESOURCE_GROUP_NAME }}
8686
SQL_SERVER_NAME: ${{ env.SQL_SERVER_NAME }}
8787
SQL_DATABASE_NAME: ${{ inputs.database_name }}
8888
run: bash ./firewall.sh open
@@ -142,7 +142,7 @@ jobs:
142142
if: always()
143143
working-directory: cloud-infrastructure/cluster
144144
env:
145-
RESOURCE_GROUP_NAME: ${{ env.RESOURCE_GROUP_NAME }}
145+
CLUSTER_RESOURCE_GROUP_NAME: ${{ env.CLUSTER_RESOURCE_GROUP_NAME }}
146146
SQL_SERVER_NAME: ${{ env.SQL_SERVER_NAME }}
147147
SQL_DATABASE_NAME: ${{ inputs.database_name }}
148148
run: bash ./firewall.sh close
@@ -238,7 +238,7 @@ jobs:
238238
env:
239239
UNIQUE_PREFIX: ${{ vars.UNIQUE_PREFIX }}
240240
TENANT_ID: ${{ vars.TENANT_ID }}
241-
RESOURCE_GROUP_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
241+
CLUSTER_RESOURCE_GROUP_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
242242
SQL_SERVER_NAME: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}
243243
SQL_SERVER_FQDN: ${{ vars.UNIQUE_PREFIX }}-${{ inputs.azure_environment }}-${{ inputs.cluster_location_acronym }}.database.windows.net
244244

@@ -269,7 +269,7 @@ jobs:
269269
- name: Open Firewall
270270
working-directory: cloud-infrastructure/cluster
271271
env:
272-
RESOURCE_GROUP_NAME: ${{ env.RESOURCE_GROUP_NAME }}
272+
CLUSTER_RESOURCE_GROUP_NAME: ${{ env.CLUSTER_RESOURCE_GROUP_NAME }}
273273
SQL_SERVER_NAME: ${{ env.SQL_SERVER_NAME }}
274274
SQL_DATABASE_NAME: ${{ inputs.database_name }}
275275
run: bash ./firewall.sh open
@@ -289,7 +289,7 @@ jobs:
289289
if: always()
290290
working-directory: cloud-infrastructure/cluster
291291
env:
292-
RESOURCE_GROUP_NAME: ${{ env.RESOURCE_GROUP_NAME }}
292+
CLUSTER_RESOURCE_GROUP_NAME: ${{ env.CLUSTER_RESOURCE_GROUP_NAME }}
293293
SQL_SERVER_NAME: ${{ env.SQL_SERVER_NAME }}
294294
SQL_DATABASE_NAME: ${{ inputs.database_name }}
295295
run: bash ./firewall.sh close

cloud-infrastructure/README.md

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,10 @@ Examples of cluster-specific resources:
5858
- Communication Service: `ppdemo-stage-weu`, `ppdemo-prod-eus2`
5959
- Storage Accounts: `ppdemostageweuacctmgmt`, `ppdemoprodweudiagnostic`
6060

61-
Examples of environment-specific resources:
62-
- Application Insights: `ppdemo-stage`, `ppdemo-prod`
63-
- Log Analytics workspace: `ppdemo-stage`, `ppdemo-prod`
61+
Examples of global resources (shared across all clusters in an environment):
62+
- Resource Group: `ppdemo-stage-global`, `ppdemo-prod-global`
63+
- Application Insights: `ppdemo-stage-global`, `ppdemo-prod-global`
64+
- Log Analytics workspace: `ppdemo-stage-global`, `ppdemo-prod-global`
6465
- Container Registry: `ppdemostage`, `ppdemoprod`
6566

6667
All Azure resources are tagged with `environment` (e.g., `stage`, `prod`) and `managed-by` (e.g., `bicep`, `manual`) for easier cost tracking and resource management.

cloud-infrastructure/cluster/deploy-cluster.sh

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -32,12 +32,12 @@ export DOMAIN_NAME
3232
export SQL_ADMIN_OBJECT_ID
3333

3434
export CONTAINER_REGISTRY_NAME=$UNIQUE_PREFIX$ENVIRONMENT
35-
export ENVIRONMENT_RESOURCE_GROUP_NAME="$UNIQUE_PREFIX-$ENVIRONMENT"
36-
export RESOURCE_GROUP_NAME="$ENVIRONMENT_RESOURCE_GROUP_NAME-$CLUSTER_LOCATION_ACRONYM"
35+
export GLOBAL_RESOURCE_GROUP_NAME="$UNIQUE_PREFIX-$ENVIRONMENT-global"
36+
export CLUSTER_RESOURCE_GROUP_NAME="$UNIQUE_PREFIX-$ENVIRONMENT-$CLUSTER_LOCATION_ACRONYM"
3737

38-
export APP_GATEWAY_VERSION=$(get_active_version "app-gateway" $RESOURCE_GROUP_NAME)
39-
export ACCOUNT_MANAGEMENT_VERSION=$(get_active_version "account-management-api" $RESOURCE_GROUP_NAME) # The version from the API is use for both API and Workers
40-
export BACK_OFFICE_VERSION=$(get_active_version "back-office-api" $RESOURCE_GROUP_NAME) # The version from the API is use for both API and Workers
38+
export APP_GATEWAY_VERSION=$(get_active_version "app-gateway" $CLUSTER_RESOURCE_GROUP_NAME)
39+
export ACCOUNT_MANAGEMENT_VERSION=$(get_active_version "account-management-api" $CLUSTER_RESOURCE_GROUP_NAME) # The version from the API is use for both API and Workers
40+
export BACK_OFFICE_VERSION=$(get_active_version "back-office-api" $CLUSTER_RESOURCE_GROUP_NAME) # The version from the API is use for both API and Workers
4141

4242
az extension add --name application-insights --allow-preview true --only-show-errors
4343

@@ -56,7 +56,7 @@ cd "$(dirname "${BASH_SOURCE[0]}")"
5656
bicep build-params ./main-cluster.bicepparam --outfile ./main-cluster.parameters.json
5757

5858
DEPLOYMENT_COMMAND="az deployment sub create"
59-
DEPLOYMENT_PARAMETERS="-l $CLUSTER_LOCATION -n $CURRENT_DATE-$RESOURCE_GROUP_NAME --output json -f ./main-cluster.bicep -p ./main-cluster.parameters.json"
59+
DEPLOYMENT_PARAMETERS="-l $CLUSTER_LOCATION -n $CURRENT_DATE-$CLUSTER_RESOURCE_GROUP_NAME --output json -f ./main-cluster.bicep -p ./main-cluster.parameters.json"
6060

6161
. ../deploy.sh
6262

@@ -74,7 +74,7 @@ then
7474
# Check for the specific error message indicating that DNS Records are missing
7575
if [[ $cleaned_output == *"InvalidCustomHostNameValidation"* ]] || [[ $cleaned_output == *"FailedCnameValidation"* ]]; then
7676
# Get details about the container apps environment to provide DNS configuration instructions
77-
env_details=$(az containerapp env show --name $RESOURCE_GROUP_NAME --resource-group $RESOURCE_GROUP_NAME)
77+
env_details=$(az containerapp env show --name $CLUSTER_RESOURCE_GROUP_NAME --resource-group $CLUSTER_RESOURCE_GROUP_NAME)
7878

7979
# Extract the customDomainVerificationId and defaultDomain from the container apps environment
8080
custom_domain_verification_id=$(echo "$env_details" | jq -r '.properties.customDomainConfiguration.customDomainVerificationId')

cloud-infrastructure/cluster/firewall.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ FIREWALL_RULE_NAME="GitHub Action Workflows - ${SQL_DATABASE_NAME} - Only active
44
if [[ "$1" == "open" ]]
55
then
66
echo "$(date +"%Y-%m-%dT%H:%M:%S") Add the IP $IP_ADDRESS to the SQL Server firewall on server $SQL_SERVER_NAME for database $SQL_DATABASE_NAME"
7-
az sql server firewall-rule create --resource-group $RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME --name "$FIREWALL_RULE_NAME" --start-ip-address $IP_ADDRESS --end-ip-address $IP_ADDRESS
7+
az sql server firewall-rule create --resource-group $CLUSTER_RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME --name "$FIREWALL_RULE_NAME" --start-ip-address $IP_ADDRESS --end-ip-address $IP_ADDRESS
88
else
99
echo "$(date +"%Y-%m-%dT%H:%M:%S") Delete the IP $IP_ADDRESS from the SQL Server firewall on server $SQL_SERVER_NAME for database $SQL_DATABASE_NAME"
10-
az sql server firewall-rule delete --resource-group $RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME --name "$FIREWALL_RULE_NAME"
10+
az sql server firewall-rule delete --resource-group $CLUSTER_RESOURCE_GROUP_NAME --server $SQL_SERVER_NAME --name "$FIREWALL_RULE_NAME"
1111
fi

cloud-infrastructure/cluster/grant-database-permissions.sh

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ CLUSTER_LOCATION_ACRONYM=$3
44
SQL_DATABASE_NAME=$4
55
MANAGEMENT_IDENTITY_CLIENT_ID=$5
66

7-
RESOURCE_GROUP_NAME=$UNIQUE_PREFIX-$ENVIRONMENT-$CLUSTER_LOCATION_ACRONYM
8-
MANAGED_IDENTITY_NAME=$RESOURCE_GROUP_NAME-$4
9-
SQL_SERVER_NAME=$RESOURCE_GROUP_NAME
7+
CLUSTER_RESOURCE_GROUP_NAME=$UNIQUE_PREFIX-$ENVIRONMENT-$CLUSTER_LOCATION_ACRONYM
8+
MANAGED_IDENTITY_NAME=$CLUSTER_RESOURCE_GROUP_NAME-$4
9+
SQL_SERVER_NAME=$CLUSTER_RESOURCE_GROUP_NAME
1010
SQL_SERVER=$SQL_SERVER_NAME.database.windows.net
1111

1212
cd "$(dirname "${BASH_SOURCE[0]}")"
@@ -26,7 +26,7 @@ SID=$(awk -v id="$SID" 'BEGIN {
2626
substr(id,17)
2727
}') # Reverse the byte order for the first three sections of the GUID and concatenate
2828

29-
echo "$(date +"%Y-%m-%dT%H:%M:%S") Granting $MANAGED_IDENTITY_NAME (ID: $SID) in Recource group $RESOURCE_GROUP_NAME permissions on $SQL_SERVER/$SQL_DATABASE_NAME database"
29+
echo "$(date +"%Y-%m-%dT%H:%M:%S") Granting $MANAGED_IDENTITY_NAME (ID: $SID) in Resource group $CLUSTER_RESOURCE_GROUP_NAME permissions on $SQL_SERVER/$SQL_DATABASE_NAME database"
3030

3131
# Execute the SQL script using mssql-scripter. Pass the script as a heredoc to sqlcmd to allow for complex SQL.
3232
sqlcmd -S $SQL_SERVER -d $SQL_DATABASE_NAME --authentication-method=ActiveDirectoryDefault --exit-on-error << EOF

0 commit comments

Comments
 (0)