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"