From c3d0c07276c90766540b2d0787d4e9e737ac4d44 Mon Sep 17 00:00:00 2001 From: Max Date: Fri, 16 Aug 2024 21:55:02 +0200 Subject: [PATCH] cluster/services/storage: take over existing buckets and keys --- cluster/services/storage/garage-options.nix | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/cluster/services/storage/garage-options.nix b/cluster/services/storage/garage-options.nix index 0f4ad65..7cfcbcd 100644 --- a/cluster/services/storage/garage-options.nix +++ b/cluster/services/storage/garage-options.nix @@ -179,9 +179,13 @@ in key = { destroyAfterDays = 0; create = key: '' - # don't print secret key - garage key new --name ${lib.escapeShellArg key} >/dev/null - echo Key ${lib.escapeShellArg key} was created. + if [[ "$(garage key info ${lib.escapeShellArg key}) 2>&1 >/dev/null)" == "Error: 0 matching keys" ]]; then + # don't print secret key + garage key new --name ${lib.escapeShellArg key} >/dev/null + echo Key ${lib.escapeShellArg key} was created. + else + echo "Key already exists, assuming ownership" + fi ''; destroy = '' garage key delete --yes "$OBJECT" @@ -196,7 +200,11 @@ in deps = [ "key" ]; destroyAfterDays = 30; create = bucket: '' - garage bucket create ${lib.escapeShellArg bucket} + if [[ "$(garage bucket info ${lib.escapeShellArg bucket} 2>&1 >/dev/null)" == "Error: Bucket not found" ]]; then + garage bucket create ${lib.escapeShellArg bucket} + else + echo "Bucket already exists, assuming ownership" + fi ''; destroy = '' garage bucket delete --yes "$OBJECT"