Skip to content

Comments

Phase 2: Nightly prod-to-staging data refresh#10

Merged
manana2520 merged 1 commit intomainfrom
phase-2-staging-refresh
Feb 12, 2026
Merged

Phase 2: Nightly prod-to-staging data refresh#10
manana2520 merged 1 commit intomainfrom
phase-2-staging-refresh

Conversation

@manana2520
Copy link
Contributor

Implementation Summary

Bash script for nightly production-to-staging Neo4j data refresh via GCP disk snapshot restore. Cloud Run Job + Cloud Scheduler for automated daily execution at 3 AM UTC.

Acceptance Criteria

  • sync-prod-to-staging.sh: executable, set -euo pipefail
  • Script finds latest snapshot, stops VM, swaps disk, starts VM
  • Disk uses same name neo4j-staging-data-disk with device-name neo4j-staging-data
  • Script validates VM RUNNING status + serial port Neo4j confirmation
  • Script exits 1 on no snapshot, 0 on success
  • backup.tf: Cloud Run Job with cloud-sdk:slim image
  • backup.tf: Cloud Scheduler at 0 3 * * * UTC
  • terraform validate passes

Tests

  • shellcheck / bash -n syntax check passes
  • terraform validate passes
  • Script references correct GCP resource names

Files Changed

  • deploy/scripts/sync-prod-to-staging.sh (NEW)
  • deploy/terraform/backup.tf (MODIFIED — appended)

Add bash script and Terraform resources for automated nightly
production-to-staging Neo4j data refresh via GCP disk snapshot restore.

- sync-prod-to-staging.sh: finds latest prod snapshot, stops staging VM,
  swaps disk (delete old + create from snapshot with same name), starts VM,
  validates Neo4j startup via serial port output
- Cloud Run Job (cloud-sdk:slim) to execute the script
- Cloud Scheduler at 0 3 * * * UTC (1 hour after daily snapshot)
@manana2520 manana2520 merged commit 57e01e1 into main Feb 12, 2026
1 check passed
@manana2520 manana2520 deleted the phase-2-staging-refresh branch February 12, 2026 10:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant