fix: e2e verify ssl

This commit is contained in:
Julian
2026-01-28 15:36:11 +10:00
parent adfc54a7f0
commit a4e7b71d6c
2 changed files with 12 additions and 27 deletions
+1 -8
View File
@@ -4,13 +4,6 @@
# Provides utilities for managing simulated IPs, starting/stopping node services,
# and verifying NATS cluster health.
# Suppress urllib3 InsecureRequestWarning from AWS CLI (we use --no-verify-ssl)
export PYTHONWARNINGS="ignore::urllib3.exceptions.InsecureRequestWarning"
# Helper to filter AWS CLI output (removes Python warnings that break jq)
aws_json() {
"$@" 2>&1 | grep -v "^urllib3\|^InsecureRequestWarning\|certificate verification"
}
# Network configuration
SIMULATED_NETWORK="10.11.12"
@@ -163,7 +156,7 @@ wait_for_instance_state() {
while [ $attempt -lt $max_attempts ]; do
local state
state=$(aws_json aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} --no-verify-ssl ec2 describe-instances \
state=$(aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} ec2 describe-instances \
--instance-ids "$instance_id" \
--query 'Reservations[0].Instances[0].State.Name' \
--output text) || {
+11 -19
View File
@@ -35,13 +35,6 @@ trap cleanup EXIT
# Use Hive profile for AWS CLI
export AWS_PROFILE=hive
# Suppress urllib3 InsecureRequestWarning from AWS CLI (we use --no-verify-ssl)
export PYTHONWARNINGS="ignore::urllib3.exceptions.InsecureRequestWarning"
# Helper to filter AWS CLI output (removes Python warnings that break jq)
aws_json() {
"$@" 2>&1 | grep -v "^urllib3\|^InsecureRequestWarning\|certificate verification"
}
echo "========================================"
echo "Multi-Node E2E Test Suite"
@@ -141,13 +134,12 @@ echo ""
wait_for_gateway "${NODE1_IP}" 30
# Define AWS CLI args pointing to node1's gateway
# Use --no-verify-ssl because the self-signed cert only has localhost SANs, not node IPs
AWS_EC2="aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} --no-verify-ssl ec2"
AWS_EC2="aws --endpoint-url https://${NODE1_IP}:${AWSGW_PORT} ec2"
# Verify gateway responds
echo ""
echo "Testing gateway connectivity..."
aws_json $AWS_EC2 describe-regions | jq -e '.Regions | length > 0' || {
$AWS_EC2 describe-regions | jq -e '.Regions | length > 0' || {
echo "ERROR: Gateway not responding correctly"
exit 1
}
@@ -160,7 +152,7 @@ echo "========================================"
# Discover instance types
echo "Discovering available instance types..."
AVAILABLE_TYPES=$(aws_json $AWS_EC2 describe-instance-types --query 'InstanceTypes[*].InstanceType' --output text)
AVAILABLE_TYPES=$($AWS_EC2 describe-instance-types --query 'InstanceTypes[*].InstanceType' --output text)
echo " Available: $AVAILABLE_TYPES"
# Pick nano instance type
@@ -172,14 +164,14 @@ fi
echo " Selected: $INSTANCE_TYPE"
# Get architecture
ARCH=$(aws_json $AWS_EC2 describe-instance-types --instance-types "$INSTANCE_TYPE" \
ARCH=$($AWS_EC2 describe-instance-types --instance-types "$INSTANCE_TYPE" \
--query 'InstanceTypes[0].ProcessorInfo.SupportedArchitectures[0]' --output text)
echo " Architecture: $ARCH"
# Create test key
echo ""
echo "Creating test key pair..."
KEY_MATERIAL=$(aws_json $AWS_EC2 create-key-pair --key-name multinode-test-key --query 'KeyMaterial' --output text)
KEY_MATERIAL=$($AWS_EC2 create-key-pair --key-name multinode-test-key --query 'KeyMaterial' --output text)
echo "$KEY_MATERIAL" > multinode-test-key.pem
chmod 600 multinode-test-key.pem
echo " Key created: multinode-test-key"
@@ -205,7 +197,7 @@ fi
echo " AMI ID: $AMI_ID"
# Verify AMI
aws_json $AWS_EC2 describe-images --image-ids "$AMI_ID" | jq -e ".Images[0] | select(.ImageId==\"$AMI_ID\")" > /dev/null
$AWS_EC2 describe-images --image-ids "$AMI_ID" | jq -e ".Images[0] | select(.ImageId==\"$AMI_ID\")" > /dev/null
echo " AMI verified"
# Phase 5: Multi-Node Instance Tests
@@ -222,7 +214,7 @@ echo "Launching 3 instances to test distribution across nodes..."
INSTANCE_IDS=()
for i in 1 2 3; do
echo " Launching instance $i..."
RUN_OUTPUT=$(aws_json $AWS_EC2 run-instances \
RUN_OUTPUT=$($AWS_EC2 run-instances \
--image-id "$AMI_ID" \
--instance-type "$INSTANCE_TYPE" \
--key-name multinode-test-key)
@@ -260,7 +252,7 @@ echo "Test 2: DescribeInstances Aggregation"
echo "----------------------------------------"
echo "Verifying all instances are returned via fan-out query..."
DESCRIBE_OUTPUT=$(aws_json $AWS_EC2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text)
DESCRIBE_OUTPUT=$($AWS_EC2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text)
DESCRIBED_COUNT=$(echo "$DESCRIBE_OUTPUT" | wc -w)
echo " Launched: ${#INSTANCE_IDS[@]} instances"
@@ -285,12 +277,12 @@ echo " Test instance: $TEST_INSTANCE"
# Stop instance
echo " Stopping instance..."
aws_json $AWS_EC2 stop-instances --instance-ids "$TEST_INSTANCE" > /dev/null
$AWS_EC2 stop-instances --instance-ids "$TEST_INSTANCE" > /dev/null
wait_for_instance_state "$TEST_INSTANCE" "stopped" 30
# Start instance
echo " Starting instance..."
aws_json $AWS_EC2 start-instances --instance-ids "$TEST_INSTANCE" > /dev/null
$AWS_EC2 start-instances --instance-ids "$TEST_INSTANCE" > /dev/null
wait_for_instance_state "$TEST_INSTANCE" "running" 30
echo " Cross-node operations test passed"
@@ -311,7 +303,7 @@ echo "Cleanup: Terminating test instances"
echo "----------------------------------------"
for instance_id in "${INSTANCE_IDS[@]}"; do
echo " Terminating $instance_id..."
aws_json $AWS_EC2 terminate-instances --instance-ids "$instance_id" > /dev/null
$AWS_EC2 terminate-instances --instance-ids "$instance_id" > /dev/null
done
# Wait for termination - track failures