diff --git a/clusters/cl01tl/manifests/talos/ConfigMap-talos-prune-script.yaml b/clusters/cl01tl/manifests/talos/ConfigMap-talos-prune-script.yaml index f1a2a6dc7..ade4ac171 100644 --- a/clusters/cl01tl/manifests/talos/ConfigMap-talos-prune-script.yaml +++ b/clusters/cl01tl/manifests/talos/ConfigMap-talos-prune-script.yaml @@ -9,77 +9,83 @@ metadata: app.kubernetes.io/part-of: talos data: prune.sh: | - export DATE_RANGE=$(date -d @$(( $(date +%s) - ${DATE_RANGE_SECONDS} )) +%Y-%m-%dT%H:%M:%SZ); - export FILE_MATCH="${BUCKET}/cl01tl/etcd/cl01tl-${DATE_RANGE}.snap.age" + DATE_RANGE=$(date -d @$(( $(date +%s) - $DATE_RANGE_SECONDS )) +%Y-%m-%dT%H:%M:%SZ); + FILE_MATCH="${BUCKET}/cl01tl/etcd/cl01tl-${DATE_RANGE}.snap.age"; - echo ">> Running S3 prune for Talos backup repository ${TARGET} ..." + echo " " + echo ">> Running S3 prune for Talos backup repository ${TARGET} ..."; - echo ">> Backups prior to '$DATE_RANGE' will be removed" - echo ">> Backups to be removed:" + echo " " + echo ">> Configured Date Range is $(date -u -d @${DATE_RANGE_SECONDS} +"%j days, %H hours, %M minutes")" + echo ">> Date Range Seconds is ${DATE_RANGE_SECONDS}" + echo ">> Backups prior to '$DATE_RANGE' will be removed"; + echo ">> Backups to be removed:"; s3cmd ls --no-check-certificate ${BUCKET}/cl01tl/etcd/ | - awk -v file_match="$FILE_MATCH" '$4 < file_match {print $4}' + awk -v file_match="$FILE_MATCH" '$4 < file_match {print $4}' echo ">> Deleting ..." s3cmd ls --no-check-certificate ${BUCKET}/cl01tl/etcd/ | - awk -v file_match="$FILE_MATCH" '$4 < file_match {print $4}' | - while read file; do - s3cmd del --no-check-certificate -v "$file"; - if [ $? -ne 0 ]; then - ERROR=true - echo ">> Detected error, will send message to ntfy" - fi - done; + awk -v file_match="$FILE_MATCH" '$4 < file_match {print $4}' | + while read file; do + s3cmd del --no-check-certificate -v "$file"; + if [ $? -ne 0 ]; then + ERROR=true + echo ">> Detected error, will send message to ntfy" + fi + done; if [ "$ERROR" = true ]; then - MAX_RETRIES=5 - SUCCESS=false + MAX_RETRIES=5 + SUCCESS=false - echo " " - echo ">> Sending message to ntfy using curl ..." + echo " " + echo ">> Sending message to ntfy using curl ..." - echo " " - echo ">> Verifying required commands ..." + echo " " + echo ">> Verifying required commands ..." - for i in $(seq 1 "$MAX_RETRIES"); do - if apk update 2>&1 >/dev/null; then - echo ">> Attempt $i: Repositories are reachable"; - SUCCESS=true; - break; - else - echo ">> Attempt $i: Connection failed, retrying in 5 seconds ..."; - sleep 5; - fi; - done; + for i in $(seq 1 "$MAX_RETRIES"); do + if apk update 2>&1 >/dev/null; then + echo ">> Attempt $i: Repositories are reachable"; + SUCCESS=true; + break; + else + echo ">> Attempt $i: Connection failed, retrying in 5 seconds ..."; + sleep 5; + fi; + done; - if [ "$SUCCESS" = false ]; then - echo ">> ERROR: Could not connect to apk repositories after $MAX_RETRIES attempts, exiting ..."; - exit 1; - fi + if [ "$SUCCESS" = false ]; then + echo ">> ERROR: Could not connect to apk repositories after $MAX_RETRIES attempts, exiting ..."; + exit 1; + fi - if ! command -v curl 2>&1 >/dev/null; then - echo ">> Command curl could not be found, installing"; - apk add --no-cache -q curl; - if [ $? -eq 0 ]; then - echo ">> Installation successful"; - else - echo ">> Installation failed with exit code $?"; - exit 1; - fi; - fi; + if ! command -v curl 2>&1 >/dev/null; then + echo ">> Command curl could not be found, installing"; + apk add --no-cache -q curl; + if [ $? -eq 0 ]; then + echo ">> Installation successful"; + else + echo ">> Installation failed with exit code $?"; + exit 1; + fi; + fi; - echo " " - echo ">> Sending to NTFY ..." - HTTP_STATUS=$(curl \ - --silent \ - --write-out '%{http_code}' \ - -H "Authorization: Bearer ${NTFY_TOKEN}" \ - -H "X-Priority: 5" \ - -H "X-Tags: warning" \ - -H "X-Title: Talos Backup Failed for ${TARGET}" \ - -d "$MESSAGE" \ - ${NTFY_ENDPOINT}/${NTFY_TOPIC} - ) - echo ">> HTTP Status Code: $HTTP_STATUS" + echo " " + echo ">> Sending to NTFY ..." + HTTP_STATUS=$(curl \ + --silent \ + --write-out '%{http_code}' \ + -H "Authorization: Bearer ${NTFY_TOKEN}" \ + -H "X-Priority: 5" \ + -H "X-Tags: warning" \ + -H "X-Title: Talos Backup Failed for ${TARGET}" \ + -d "$MESSAGE" \ + ${NTFY_ENDPOINT}/${NTFY_TOPIC} + ) + echo ">> HTTP Status Code: $HTTP_STATUS" + + fi; echo ">> Completed S3 prune for Talos backup repository ${TARGET}"