Files
formae-plugin-proxmox/scripts/ci/clean-environment.sh
2026-01-30 22:44:32 +01:00

62 lines
2.1 KiB
Bash
Executable File

#!/bin/bash
# © 2025 Platform Engineering Labs Inc.
# SPDX-License-Identifier: Apache-2.0
#
# Clean Environment Hook
# ======================
# This script is called before AND after conformance tests to clean up
# test resources in your cloud environment.
#
# Purpose:
# - Before tests: Remove orphaned resources from previous failed runs
# - After tests: Clean up resources created during the test run
#
# The script should be idempotent - safe to run multiple times.
# It should delete all resources matching the test resource prefix.
#
# Test resources typically use a naming convention like:
# formae-plugin-sdk-test-{run-id}-*
#
# Implementation varies by provider. Examples:
#
# AWS:
# - List and delete resources with test prefix using AWS CLI
# - Use resource tagging for easier identification
#
# OpenStack:
# - Use openstack CLI to list and delete test resources
# - Clean up in order: instances, volumes, networks, security groups, etc.
#
# Exit with non-zero status only for unexpected errors.
# Missing resources (already cleaned) should not cause failures.
set -euo pipefail
# Prefix used for test resources - should match what conformance tests create
TEST_PREFIX="${TEST_PREFIX:-formae-plugin-sdk-test-}"
echo "clean-environment.sh: Cleaning resources with prefix '${TEST_PREFIX}'"
echo ""
echo "To implement cleanup for your provider, edit this script."
echo "See comments in this file for examples."
echo ""
# Uncomment and modify for your provider:
#
# # AWS - clean up S3 buckets with test prefix
# echo "Cleaning S3 buckets..."
# aws s3api list-buckets --query "Buckets[?starts_with(Name, '${TEST_PREFIX}')].Name" --output text | \
# xargs -r -n1 aws s3 rb --force s3://
#
# # OpenStack - clean up instances
# echo "Cleaning instances..."
# openstack server list --name "^${TEST_PREFIX}" -f value -c ID | \
# xargs -r -n1 openstack server delete --wait
#
# # OpenStack - clean up volumes
# echo "Cleaning volumes..."
# openstack volume list --name "^${TEST_PREFIX}" -f value -c ID | \
# xargs -r -n1 openstack volume delete
echo "clean-environment.sh: Cleanup complete (no-op - not configured)"