Agent skill
local:full-test
Run full end-to-end test workflows for Kagenti. Supports Kind and HyperShift clusters with automated setup and testing.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/local-full-test
SKILL.md
Local Full Test Skill
Run complete end-to-end test workflows that create clusters, deploy Kagenti, and run tests.
When to Use
- Running full CI-like workflow locally
- Testing before submitting PR
- Validating changes on real clusters
- User asks "run full test", "test everything", or "validate deployment"
Quick Start
Kind (Local Docker)
# Full test with Kind cluster
./.github/scripts/local-setup/kind-full-test.sh
OpenShift (Standard RHOCP)
# Login to any OpenShift cluster
oc login https://api.your-cluster.example.com:6443 -u kubeadmin -p <password>
# Full test (no AWS/.env needed)
./.github/scripts/local-setup/openshift-full-test.sh
# Show help
./.github/scripts/local-setup/openshift-full-test.sh --help
HyperShift (AWS OpenShift)
# Setup first (one-time)
./.github/scripts/hypershift/preflight-check.sh
./.github/scripts/hypershift/setup-hypershift-ci-credentials.sh
./.github/scripts/hypershift/local-setup.sh
# Full test with HyperShift cluster (keeps cluster after)
source .env.kagenti-hypershift-custom
./.github/scripts/local-setup/hypershift-full-test.sh --skip-cluster-destroy
# With custom suffix
./.github/scripts/local-setup/hypershift-full-test.sh pr123 --skip-cluster-destroy
# Include cleanup after test
./.github/scripts/local-setup/hypershift-full-test.sh --include-cluster-destroy
# Show help
./.github/scripts/local-setup/hypershift-full-test.sh --help
Kind Full Test Workflow
The kind-full-test.sh script runs:
- Cleanup - Remove existing cluster (optional)
- Create Cluster - Create Kind cluster
- Deploy Platform - Deploy Kagenti via Ansible
- Deploy Agents - Build and deploy demo agents
- Run E2E Tests - Execute test suite
- Show Access - Display UI access information
Options
# Keep cluster after test (default)
./.github/scripts/local-setup/kind-full-test.sh
# Destroy cluster after test
./.github/scripts/local-setup/kind-full-test.sh --include-cluster-destroy
# Skip specific phases
SKIP_DEPLOY=true ./.github/scripts/local-setup/kind-full-test.sh
SKIP_TESTS=true ./.github/scripts/local-setup/kind-full-test.sh
HyperShift Full Test Workflow
The hypershift-full-test.sh script runs:
- Create Cluster - Create HyperShift cluster on AWS (~15 min)
- Deploy Platform - Deploy Kagenti via Ansible
- Wait for CRDs - Wait for Kagenti CRDs
- Apply Pipelines - Apply Tekton pipeline templates
- Build Tools - Build weather tool via Tekton
- Deploy Agents - Deploy weather agent and tool
- Run E2E Tests - Execute test suite
- Cleanup (optional) - Destroy cluster
Options
# With custom cluster suffix
./.github/scripts/local-setup/hypershift-full-test.sh pr529
# Keep cluster (default with --skip-cluster-destroy)
./.github/scripts/local-setup/hypershift-full-test.sh --skip-cluster-destroy
# Destroy cluster after test
./.github/scripts/local-setup/hypershift-full-test.sh --include-cluster-destroy
Manual Step-by-Step
Kind Workflow
# 1. Create cluster
./.github/scripts/kind/create-cluster.sh
# 2. Deploy platform
./.github/scripts/kind/deploy-platform.sh
# 3. Run E2E tests
./.github/scripts/kind/run-e2e-tests.sh
# 4. Access UI
./.github/scripts/kind/access-ui.sh
HyperShift Workflow
# 1. Create cluster
./.github/scripts/hypershift/create-cluster.sh
# 2. Set kubeconfig
export KUBECONFIG=~/clusters/hcp/<cluster-name>/auth/kubeconfig
# 3. Deploy platform
./.github/scripts/kagenti-operator/30-run-installer.sh --env ocp
./.github/scripts/kagenti-operator/41-wait-crds.sh
./.github/scripts/kagenti-operator/42-apply-pipeline-template.sh
# 4. Deploy agents
./.github/scripts/kagenti-operator/71-build-weather-tool.sh
./.github/scripts/kagenti-operator/72-deploy-weather-tool.sh
./.github/scripts/kagenti-operator/73-patch-weather-tool.sh
./.github/scripts/kagenti-operator/74-deploy-weather-agent.sh
# 5. Run E2E tests
export AGENT_URL="https://$(oc get route -n team1 weather-service -o jsonpath='{.spec.host}')"
export KAGENTI_CONFIG_FILE=deployments/envs/ocp_values.yaml
./.github/scripts/kagenti-operator/90-run-e2e-tests.sh
# 6. Cleanup (when done)
./.github/scripts/hypershift/destroy-cluster.sh <suffix>
Show Services
# Show all deployed services and access URLs
./.github/scripts/local-setup/show-services.sh
Output includes:
- Kagenti UI URL
- Keycloak URL
- Phoenix URL
- Kiali URL
- Agent endpoints
- Port-forward commands
Deploy Kagenti Operator Only
For testing just the operator:
./.github/scripts/local-setup/deploy-kagenti-operator.sh
Environment Variables
| Variable | Description |
|---|---|
SKIP_DEPLOY |
Skip platform deployment |
SKIP_TESTS |
Skip E2E tests |
SKIP_OLLAMA |
Skip Ollama installation (Kind) |
SKIP_LLAMA |
Skip Ollama in HyperShift tests |
CLUSTER_NAME |
Custom cluster name |
KUBECONFIG |
Kubernetes config file (management cluster for HyperShift) |
HOSTED_KUBECONFIG |
Hosted cluster kubeconfig (for running middle phases only) |
HyperShift: Dual Kubeconfig
HyperShift workflows use two separate kubeconfigs:
| Kubeconfig | Purpose | Location |
|---|---|---|
| Management cluster | Create/destroy hosted clusters | Set via KUBECONFIG in .env.kagenti-hypershift-custom |
| Hosted cluster | Deploy Kagenti, run tests | ~/clusters/hcp/<cluster-name>/auth/kubeconfig |
The script automatically switches between them at phase boundaries.
Simplified Usage (Middle Phases Only)
When only running install/agents/test (skipping create/destroy), you can set just HOSTED_KUBECONFIG:
# No need to source .env - just set the hosted cluster kubeconfig
export HOSTED_KUBECONFIG=~/clusters/hcp/kagenti-hypershift-custom-ladas/auth/kubeconfig
./.github/scripts/local-setup/hypershift-full-test.sh --skip-cluster-create --skip-cluster-destroy
Prerequisites
Kind
- Docker Desktop/Rancher Desktop (12GB RAM, 4 cores)
- Kind, kubectl, helm
- Python 3.11+ with uv
HyperShift
- AWS CLI with admin credentials
- OpenShift CLI (oc)
- Ansible
- HyperShift credentials configured
Debugging Failed Tests
Check Pod Status
# All namespaces
kubectl get pods -A | grep -v Running
# Specific namespace
kubectl get pods -n team1
kubectl get pods -n kagenti-system
View Logs
# Agent logs
kubectl logs -n team1 deployment/weather-service --tail=100
# Operator logs
kubectl logs -n kagenti-system -l app=kagenti-operator --tail=100
Check Events
kubectl get events -A --sort-by='.lastTimestamp' | tail -30
Retry Tests
# Just rerun tests (don't redeploy)
./.github/scripts/kind/run-e2e-tests.sh
# Or for HyperShift
./.github/scripts/kagenti-operator/90-run-e2e-tests.sh
Comparison: Kind vs HyperShift
| Aspect | Kind | HyperShift |
|---|---|---|
| Setup time | ~15 min | ~25 min |
| Cost | Free | AWS costs |
| Platform | Docker | AWS |
| Use case | Dev, quick tests | Real OCP testing |
| Cleanup | Instant | ~5 min |
| Resources | Local machine | AWS EC2 |
Related Skills
- kind:cluster: Manage Kind clusters
- hypershift:cluster: Manage HyperShift clusters
- kagenti:operator: Deploy Kagenti operator
- local:testing: Detailed local testing guide
Related Documentation
.github/scripts/local-setup/README.md- Local setup documentation
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?