[Nanobox] Stream backups to the warehouse (#6799)
The `curl` docs are terrible. Use `-X POST -T` instead of `--data-binary`, to avoid loading entire backups into memory _before_ transferring to the warehouse, and just stream the data across as it comes in.
This commit is contained in:
		
				
					committed by
					
						
						Eugen Rochko
					
				
			
			
				
	
			
			
			
						parent
						
							fd385e256d
						
					
				
				
					commit
					64fc8d2b07
				
			@@ -195,7 +195,7 @@ data.db:
 | 
				
			|||||||
      command: |
 | 
					      command: |
 | 
				
			||||||
        PGPASSWORD=${DATA_DB_PASS} pg_dump -U ${DATA_DB_USER} -w -Fc -O gonano |
 | 
					        PGPASSWORD=${DATA_DB_PASS} pg_dump -U ${DATA_DB_USER} -w -Fc -O gonano |
 | 
				
			||||||
        gzip |
 | 
					        gzip |
 | 
				
			||||||
        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).sql.gz --data-binary @- &&
 | 
					        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).sql.gz -X POST -T - >&2
 | 
				
			||||||
        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
					        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
				
			||||||
        sed 's/,/\n/g' |
 | 
					        sed 's/,/\n/g' |
 | 
				
			||||||
        grep ${HOSTNAME} |
 | 
					        grep ${HOSTNAME} |
 | 
				
			||||||
@@ -215,7 +215,7 @@ data.redis:
 | 
				
			|||||||
    - id: backup
 | 
					    - id: backup
 | 
				
			||||||
      schedule: '0 3 * * *'
 | 
					      schedule: '0 3 * * *'
 | 
				
			||||||
      command: |
 | 
					      command: |
 | 
				
			||||||
        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).rdb --data-binary @/data/var/db/redis/dump.rdb &&
 | 
					        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).rdb -X POST -T /data/var/db/redis/dump.rdb >&2
 | 
				
			||||||
        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
					        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
				
			||||||
        sed 's/,/\n/g' |
 | 
					        sed 's/,/\n/g' |
 | 
				
			||||||
        grep ${HOSTNAME} |
 | 
					        grep ${HOSTNAME} |
 | 
				
			||||||
@@ -236,7 +236,7 @@ data.storage:
 | 
				
			|||||||
      schedule: '0 3 * * *'
 | 
					      schedule: '0 3 * * *'
 | 
				
			||||||
      command: |
 | 
					      command: |
 | 
				
			||||||
        tar cz -C /data/var/db/unfs/ . |
 | 
					        tar cz -C /data/var/db/unfs/ . |
 | 
				
			||||||
        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz --data-binary @- &&
 | 
					        curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz -X POST -T - >&2
 | 
				
			||||||
        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
					        curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
 | 
				
			||||||
        sed 's/,/\n/g' |
 | 
					        sed 's/,/\n/g' |
 | 
				
			||||||
        grep ${HOSTNAME} |
 | 
					        grep ${HOSTNAME} |
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user