New to HyperFleet E2E? This guide will help you run your first test in 10 minutes.
- Go 1.25+ - Required for building the framework
- HyperFleet deployment - Running HyperFleet API and Maestro instance
- 10 minutes - Time to complete this guide
Need to set up a HyperFleet environment first? See the Setup Guide for complete instructions using Kind (local) or GCP.
git clone https://github.com/openshift-hyperfleet/hyperfleet-e2e.git
cd hyperfleet-e2e
make build./bin/hyperfleet-e2e --helpYou should see the command help output.
Step 1: Set required environment variables
export HYPERFLEET_API_URL=<your-hyperfleet-api-url>
export MAESTRO_URL=<your-maestro-url>
export NAMESPACE=<your-deployment-namespace>Step 2: Run tier0 tests
./bin/hyperfleet-e2e test --label-filter=tier0What happens:
- Framework creates a new cluster via API
- Waits for cluster to reach Reconciled state
- Validates adapter conditions
- Deletes cluster after test completes
The framework:
- Loaded configuration - Merged config file, environment variables, and CLI flags
- Executed tests - Ran all tests matching your filter
- Managed resources - Created and deleted temporary test clusters
- Generated results - Displayed test outcomes
# Run critical tests only
./bin/hyperfleet-e2e test --label-filter=tier0
# Run important features
./bin/hyperfleet-e2e test --label-filter=tier1
# Run edge cases (requires sourcing env/env.local first)
source env/env.local && ./bin/hyperfleet-e2e test --label-filter=tier2
# Run all cluster suite tests
./bin/hyperfleet-e2e test --focus "\[Suite: cluster\]"
# Run cluster tier0 tests only
./bin/hyperfleet-e2e test --label-filter="tier0" --focus "\[Suite: cluster\]"
# Deep debug mode (add API calls and framework internals)
./bin/hyperfleet-e2e test --log-level=debugUse --dry-run to discover which specs match your filters without connecting to the API or creating resources. No --api-url is required in dry-run mode.
# List all tier0 tests
./bin/hyperfleet-e2e test --dry-run --label-filter=tier0
# List tier1 cluster tests
./bin/hyperfleet-e2e test --dry-run --label-filter=tier1 --focus "\[Suite: cluster\]"
# List tests for each tier via Makefile
make list-testsNote: The default output already shows detailed test execution steps. If a test fails, you can usually diagnose the issue from the logs without re-running in debug mode. Use --log-level=debug when you need to see API calls and framework internals. See Debugging Guide for more debugging techniques.
make build # Build binary
make test # Run unit tests
make e2e # Run E2E tests
make list-tests # List tests by tier (dry-run, no API required)
make lint # Run linter
make generate # Regenerate OpenAPI clientAPI connection errors:
# Verify API URLs are set
echo $HYPERFLEET_API_URL
echo $MAESTRO_URL
echo $NAMESPACE
# Test connectivity
curl -f -X GET ${HYPERFLEET_API_URL}/api/hyperfleet/v1/clusters/Test timeouts: Increase timeouts via environment variables:
HYPERFLEET_TIMEOUTS_CLUSTER_RECONCILED=45m make e2eNamespace mismatch: Ensure NAMESPACE matches your deployment namespace. Some tests deploy adapters dynamically and must target the same namespace where HyperFleet components are running.
Configuration not taking effect:
Priority order (highest to lowest):
- CLI flags (
--api-url) - Environment variables (
HYPERFLEET_API_URL,MAESTRO_URL,NAMESPACE) - Config file (
configs/config.yaml) - Built-in defaults
Need detailed logs:
# Default (info) shows test execution steps
./bin/hyperfleet-e2e test
# Debug mode shows API calls and framework internals
./bin/hyperfleet-e2e test --log-level=debugFor more troubleshooting help and environment issues, see the Runbook or Setup Guide.
- Runbook - Running tests and troubleshooting guide
- Architecture - Understand how the framework works
- Development - Write your own tests
- CLI Reference - Run
./bin/hyperfleet-e2e --help - Configuration - See detailed comments in
configs/config.yaml