-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
COSI-75: e2e-test-for-brown-field-scenario
- Loading branch information
1 parent
ba5c8d8
commit c8af6d3
Showing
3 changed files
with
114 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
#!/bin/bash | ||
set -e | ||
|
||
LOG_FILE=".github/e2e_tests/artifacts/logs/e2e_tests/brownfield.log" | ||
mkdir -p "$(dirname "$LOG_FILE")" | ||
|
||
IAM_USER_PREFIX="ba" | ||
SECRET_NAME="brownfield-bucket-secret" | ||
IAM_ENDPOINT="http://$HOST_IP:8600" | ||
S3_ENDPOINT="http://$HOST_IP:8000" | ||
BUCKET_NAME="brownfield-bucket" | ||
NAMESPACE="scality-object-storage" | ||
ATTEMPTS=12 # Total AWS CLI attempts (2 minutes / 10 seconds per attempt) | ||
DELAY=10 # Delay between AWS CLI requests attempts in seconds | ||
|
||
# Error handling function | ||
error_handler() { | ||
echo "An error occurred during bucket creation tests. Check the log file for details." | tee -a "$LOG_FILE" | ||
echo "Failed command: $BASH_COMMAND" | tee -a "$LOG_FILE" | ||
exit 1 | ||
} | ||
|
||
# Trap errors and call the error handler | ||
trap 'error_handler' ERR | ||
|
||
# Log command execution to the log file for debugging | ||
log_and_run() { | ||
echo "Running: $*" | tee -a "$LOG_FILE" | ||
"$@" | tee -a "$LOG_FILE" | ||
} | ||
|
||
|
||
# Create the bucket fir brownfield scenario | ||
log_and_run echo "Creating bucket: $BUCKET_NAME" | ||
log_and_run aws s3api create-bucket --bucket "$BUCKET_NAME" --region us-west-2 --endpoint-url "$S3_ENDPOINT" | ||
|
||
# Check if the bucket exists | ||
log_and_run echo "Checking if bucket $BUCKET_NAME exists" | ||
aws --endpoint-url "$S3_ENDPOINT" s3api head-bucket --bucket "$BUCKET_NAME" | ||
log_and_run echo "Bucket $BUCKET_NAME exists!" | ||
|
||
log_and_run echo "Applying Bucket Class to use existing bucket..." | ||
log_and_runkubectl apply -f cosi-examples/brownfield/bucketclass.yaml | ||
|
||
log_and_run echo "Manually creating Bucket object with existing bucket..." | ||
log_and_run kubectl apply -f cosi-examples/brownfield/bucket.yaml | ||
|
||
log_and_run echo "Applying Bucket Claim referencing the Bucket object..." | ||
log_and_run kubectl apply -f cosi-examples/brownfield/bucketclaim.yaml | ||
|
||
log_and_run echo "Applying Bucket Access Class..." | ||
log_and_run kubectl apply -f cosi-examples/brownfield/bucketaccessclass.yaml | ||
|
||
log_and_run echo "Applying Bucket Access..." | ||
log_and_run kubectl apply -f cosi-examples/brownfield/bucketaccess.yaml | ||
|
||
# Step 10: Verify the object-storage-access-secret | ||
log_and_run echo "Verifying object-storage-access-secret in the default namespace..." | ||
SECRET_JSON="$(kubectl get secret "$SECRET_NAME" --namespace "$NAMESPACE" -o json)" | ||
|
||
log_and_run echo "Decoded BucketInfo: $BUCKET_INFO_JSON" | ||
|
||
# Extract values to verify | ||
ACTUAL_BUCKET_NAME=$(echo "$BUCKET_INFO_JSON" | jq -r '.spec.bucketName') | ||
ACTUAL_ENDPOINT=$(echo "$BUCKET_INFO_JSON" | jq -r '.spec.secretS3.endpoint') | ||
ACTUAL_REGION=$(echo "$BUCKET_INFO_JSON" | jq -r '.spec.secretS3.region') | ||
ACTUAL_ACCESS_KEY_ID=$(echo "$BUCKET_INFO_JSON" | jq -r '.spec.secretS3.accessKeyID') | ||
ACTUAL_ACCESS_SECRET_KEY=$(echo "$BUCKET_INFO_JSON" | jq -r '.spec.secretS3.accessSecretKey') | ||
ACTUAL_PROTOCOLS=$(echo "$BUCKET_INFO_JSON" | jq -c '.spec.protocols') | ||
|
||
# Verify bucketName | ||
if [[ "$ACTUAL_BUCKET_NAME" != "$BUCKET_NAME" ]]; then | ||
log_and_run echo "Bucket name mismatch! Expected: $BUCKET_NAME, Found: $ACTUAL_BUCKET_NAME" | ||
exit 1 | ||
fi | ||
|
||
# Verify endpoint | ||
EXPECTED_ENDPOINT="$S3_ENDPOINT" | ||
if [[ "$ACTUAL_ENDPOINT" != "$EXPECTED_ENDPOINT" ]]; then | ||
log_and_run echo "Endpoint mismatch! Expected: $EXPECTED_ENDPOINT, Found: $ACTUAL_ENDPOINT" | ||
exit 1 | ||
fi | ||
|
||
# Verify region | ||
if [[ "$ACTUAL_REGION" != "$REGION" ]]; then | ||
log_and_run echo "Region mismatch! Expected: $REGION, Found: $ACTUAL_REGION" | ||
exit 1 | ||
fi | ||
|
||
# Verify accessSecretKey exists | ||
if [[ -z "$ACTUAL_ACCESS_KEY_ID" ]]; then | ||
log_and_run echo "AccessSecretKey is empty!" | ||
exit 1 | ||
fi | ||
|
||
# Verify accessSecretKey exists | ||
if [[ -z "$ACTUAL_ACCESS_SECRET_KEY" ]]; then | ||
log_and_run echo "AccessSecretKey is empty!" | ||
exit 1 | ||
fi | ||
|
||
# Verify protocols | ||
EXPECTED_PROTOCOLS='["s3"]' | ||
if [[ "$ACTUAL_PROTOCOLS" != "$EXPECTED_PROTOCOLS" ]]; then | ||
log_and_run echo "Protocols mismatch! Expected: $EXPECTED_PROTOCOLS, Found: $ACTUAL_PROTOCOLS" | ||
exit 1 | ||
fi |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters