Backups
Data Backup and Recovery in the IGAAWI Infrastructure
S3 Buckets
The project uses S3 buckets for storing application data. The primary production bucket is:
- Backend:
igaawi-prod-api-backend-bucket
The bucket has versioning enabled and CORS configured for wiperinstall.rainx.com and api.wiperinstall.rainx.com. Public read access is configured for the public/* and web/* prefixes (AI models and 3D wiper models).
Note
S3 cross-region replication is currently disabled. The replication account is configured as the root account (113727184156) and can be enabled in terraform if needed (s3_enable_replication = true in envs/prod/apps/api-backend/prod.tfvars).
See more instruction in the official documentation #1 official documentation #2
Kubernetes Cluster Backup Using Velero
To protect data and configurations in our Kubernetes cluster, we use Velero — a tool for backup and recovery of Kubernetes resources. Backups are created daily and include:
- All resources and objects in namespaces (Pods, Services, Deployments, etc.),
- PVCs (if a snapshot provider is configured),
- Associated metadata and configurations.
Backups are stored in the following S3 buckets:
- Production:
igaawi-prod-eks-backup
Example: Creating a Backup and Restoring from a Backup
For example, let’s say we need to create a backup of the prod namespace using the following command:
velero backup create velero-prod-$(date +%Y%m%d%H%M) --include-namespaces prod
Suppose we need to restore the prod namespace in the production cluster from the backup. This can be done using the following command:
velero restore create --from-backup velero-prod-20260622024511 --namespace-mappings prod:prod-restored
After executing the command, Velero will create all resources from the backup in the prod-restored namespace, where the recovery can be tested or migrated back.
See more instruction about velero in the official documentation