Container infrastructure for backing up container stacks using Borg
Go to file
2024-02-01 02:31:33 -05:00
stackup Add logic for detecting stack and associated volumes 2024-02-01 02:31:33 -05:00
.gitignore Add barebones implementation plans 2024-02-01 02:31:04 -05:00
Containerfile Rename project to stackup 2024-01-31 23:44:28 -05:00
LICENSE.md Update license to markdown 2023-03-14 21:57:24 -04:00
Makefile Add makefile for build and publication automation 2023-03-14 23:08:25 -04:00
poetry.lock Add barebones implementation plans 2024-02-01 02:31:04 -05:00
pyproject.toml Add barebones implementation plans 2024-02-01 02:31:04 -05:00
README.md Add barebones implementation plans 2024-02-01 02:31:04 -05:00

stackup

"Backups for your stacks!"

Container infrastructure for backing up container stacks using Borg

Implementation

  1. Wakup
  2. Identify volumes for a selected stack
  3. Identify current container ID
  4. Verify that all volumes for the stack are mounted to the current container
  5. Pull in settings from volume definition
    • Credentials are configured on current container
  6. Assemble borg command(s) to perform backup(s)

Example label structures:

# labels applied to volumes in a stack definition

stackup.enable: 'true'  # whether stackup should look at this volume
stackup.repo.foo.target: 'ssh://blorp@fizz.buzz.com:/backups/thing'  # the borg repo
stackup.repo.foo.naming: 'timestamp|phrase|uuid'  # internal archive name generator choice
stackup.repo.foo.init: 'false'  # whether to initialize the borg repo if it doesn't exist
stackup.repo.foo.exclude[0]: blarg/cache  # path in the volume to exclude from backup
stackup.repo.foo.exclude[1]: run/something.pid  # path in the volume to exclude from backup