From 3a1d8b078eaff2b83ebc203baaaa5d09c3ca6d0b Mon Sep 17 00:00:00 2001 From: Andrey Sitnik Date: Wed, 26 Feb 2025 20:29:59 +0000 Subject: [PATCH] Use file for database for staging --- .github/actions/deploy/action.yml | 2 +- .github/workflows/main.yml | 2 +- .github/workflows/preview-deploy.yml | 8 ++++---- .github/workflows/proxy.yml | 2 +- .github/workflows/server.yml | 7 ++++--- scripts/prepare-google-cloud.sh | 19 ++++++++++++++----- 6 files changed, 25 insertions(+), 15 deletions(-) diff --git a/.github/actions/deploy/action.yml b/.github/actions/deploy/action.yml index 8df279b3..7b2a94ae 100644 --- a/.github/actions/deploy/action.yml +++ b/.github/actions/deploy/action.yml @@ -29,7 +29,7 @@ runs: - name: Auth Google Cloud uses: google-github-actions/auth@v2.1.7 with: - workload_identity_provider: projects/223708816691/locations/global/workloadIdentityPools/github/providers/hplush + workload_identity_provider: projects/900797847730/locations/global/workloadIdentityPools/github/providers/hplush service_account: github-deploy@${{ inputs.projectId }}.iam.gserviceaccount.com - name: Install Google Cloud uses: google-github-actions/setup-gcloud@v2.1.2 diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 7e287380..d6e3313c 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -61,7 +61,7 @@ jobs: - name: Deploy to Google Cloud uses: ./.github/actions/deploy with: - projectId: slowreader-421120 + projectId: slowreader-452120 region: europe-west1 folder: ./web/ registry: staging/web diff --git a/.github/workflows/preview-deploy.yml b/.github/workflows/preview-deploy.yml index 7eaade19..888ca394 100644 --- a/.github/workflows/preview-deploy.yml +++ b/.github/workflows/preview-deploy.yml @@ -44,15 +44,15 @@ jobs: id: deploy uses: ./.github/actions/deploy with: - projectId: slowreader-421120 + projectId: slowreader-452120 region: europe-west1 folder: ./server/ registry: staging/server service: staging-server tag: preview-${{ env.PR_NUMBER }} - env: ASSETS=1,PROXY_ORIGIN=^https:\/\/preview-\d+---staging-server-jfj4bxwwxq-ew\.a\.run\.app$ - flags: | - --update-secrets=DATABASE_URL=preview-db-url:latest + env: ASSETS=1,DATABASE_URL=memory://,PROXY_ORIGIN=^https:\/\/preview-\d+---staging-server-jfj4bxwwxq-ew\.a\.run\.app$ + # flags: | + # --update-secrets=DATABASE_URL=preview-db-url:latest - name: Update deployment status uses: bobheadxi/deployments@v1.5.0 if: always() diff --git a/.github/workflows/proxy.yml b/.github/workflows/proxy.yml index 3f92f282..f2b3f188 100644 --- a/.github/workflows/proxy.yml +++ b/.github/workflows/proxy.yml @@ -87,7 +87,7 @@ jobs: - name: Deploy to Google Cloud uses: ./.github/actions/deploy with: - projectId: slowreader-421120 + projectId: slowreader-452120 region: europe-west1 folder: ./proxy/ registry: staging/proxy diff --git a/.github/workflows/server.yml b/.github/workflows/server.yml index 85d335d5..d7cdfb79 100644 --- a/.github/workflows/server.yml +++ b/.github/workflows/server.yml @@ -85,15 +85,16 @@ jobs: - name: Deploy to Google Cloud uses: ./.github/actions/deploy with: - projectId: slowreader-421120 + projectId: slowreader-452120 region: europe-west1 folder: ./server/ registry: staging/server service: staging-server - env: ASSETS=,PROXY_ORIGIN= + env: ASSETS=,PROXY_ORIGIN=,DATABASE_URL=file:///var/mnt/staging-db/pgdata # Persistent database was disable temporary to save money # flags: | # --vpc-connector db-connector # --update-secrets=DATABASE_URL=staging-db-url:latest flags: | - --update-secrets=DATABASE_URL=preview-db-url:latest + --add-volume=name=db,type=cloud-storage,bucket=staging-db + --add-volume-mount=volume=db,mount-path=/var/mnt/staging-db/ diff --git a/scripts/prepare-google-cloud.sh b/scripts/prepare-google-cloud.sh index 71407414..106dd213 100755 --- a/scripts/prepare-google-cloud.sh +++ b/scripts/prepare-google-cloud.sh @@ -3,7 +3,7 @@ # Google Cloud settings can be complex. We have this file to not forget them. # Do not change Google Cloud by web. Always use `gcloud` and update this script. -PROJECT_ID=slowreader-421120 +PROJECT_ID=slowreader-452120 REGION=europe-west1 WORKFLOWS=( ".github/actions/deploy/action.yml" @@ -64,7 +64,19 @@ gcloud iam service-accounts add-iam-policy-binding "$ACCOUNT_EMAIL" \ --role="roles/iam.workloadIdentityUser" \ --member="principalSet://iam.googleapis.com/${WORKLOAD_IDENTITY_POOL_ID}/attribute.repository/hplush/slowreader" -# Persistent database was disable temporary to save money +# In-memory storage for preview +echo -n "memory://" | gcloud secrets create preview-db-url \ + --replication-policy=automatic \ + --data-file=- + +# To save money on prototype state, we will use file for DB +gcloud storage buckets create gs://staging-db \ + --project=$PROJECT_ID \ + --location=$REGION +echo -n "file:///var/mnt/staging-db/pgdata" | gcloud secrets create staging-db-url \ + --replication-policy=automatic \ + --data-file=- + # # Create private network for database # gcloud services enable compute.googleapis.com --project=$PROJECT_ID # gcloud services enable servicenetworking.googleapis.com --project=$PROJECT_ID @@ -115,9 +127,6 @@ gcloud iam service-accounts add-iam-policy-binding "$ACCOUNT_EMAIL" \ # echo -n $STAGING_DB | gcloud secrets create staging-db-url \ # --replication-policy=automatic \ # --data-file=- -echo -n "memory://" | gcloud secrets create preview-db-url \ - --replication-policy=automatic \ - --data-file=- # Enable Google Cloud Run gcloud services enable run.googleapis.com --project=$PROJECT_ID