Skip to content

postgres/open-firewall-to-your-ip/README.md #100

postgres/open-firewall-to-your-ip/README.md

postgres/open-firewall-to-your-ip/README.md #100

on:
schedule:
- cron: '0 19 * * 1'
workflow_dispatch:
name: 'postgres/open-firewall-to-your-ip/README.md'
jobs:
validate:
runs-on: 'ubuntu-latest'
steps:
- uses: 'azure/login@v1'
with:
subscription-id: '${{ secrets.AZURE_SUBSCRIPTION_ID }}'
client-id: '${{ secrets.AZURE_CLIENT_ID }}'
tenant-id: '${{ secrets.AZURE_TENANT_ID }}'
- uses: 'actions/checkout@v3'
- run: |
if [[ -z $REGION ]]; then
export REGION=westus
fi
if [[ -z $RESOURCE_GROUP ]]; then
export RESOURCE_GROUP=joazrg-$RANDOM
echo "Using '"$RESOURCE_GROUP"' as resource group"
fi
az group create --name $RESOURCE_GROUP --location $REGION
if [[ -z $POSTGRESQL_NAME ]]; then
export POSTGRESQL_NAME=postgresql-$RANDOM
export POSTGRESQL_USERNAME=postgresql
export POSTGRESQL_PASSWORD=p#ssw0rd-$RANDOM
fi
az postgres server create \
--admin-user $POSTGRESQL_USERNAME \
--admin-password $POSTGRESQL_PASSWORD \
--name $POSTGRESQL_NAME \
--resource-group $RESOURCE_GROUP \
--sku GP_Gen5_2
export LOCAL_IP=`curl -s whatismyip.akamai.com`
az postgres server firewall-rule create \
--resource-group $RESOURCE_GROUP \
--server-name $POSTGRESQL_NAME \
--name AllowMyLocalIP \
--start-ip-address $LOCAL_IP \
--end-ip-address $LOCAL_IP
export RESULT=$(az postgres server firewall-rule show --resource-group $RESOURCE_GROUP --server-name $POSTGRESQL_NAME --name AllowMyLocalIP --query name --output tsv)
az group delete --name $RESOURCE_GROUP --yes || true
if [[ "$RESULT" != AllowMyLocalIP ]]; then
echo "PostgreSQL firewall was NOT configured to allow access from " $LOCAL_IP
exit 1
fi
permissions:
contents: 'read'
id-token: 'write'