AWS EKS/Fargate execution backend for Harbor benchmarks
Project description
harbor-aws
AWS EKS/Fargate execution backend for Harbor benchmarks. Run thousands of sandbox trials in parallel with per-second billing and VM-level isolation.
How it works
Orchestrator (laptop / CI)
| HTTPS via NLB
v
harbor-control pod (in-cluster gateway)
| TCP via /dev/tcp
v
Trial pods (one per task, Fargate)
Each trial pod runs a small bash runner (runner.sh) as PID 1 — no Python needed in the trial image. The runner dials the in-cluster harbor-control gateway over plain TCP. The orchestrator talks to harbor-control over an NLB. The K8s API server is only used for pod create/delete, never in the exec data path.
Install
pip install "harbor-aws[cdk]"
Quick start
1. Deploy (~15 min, one-time)
python -m harbor_aws deploy --region us-east-1
Creates everything: VPC, EKS, harbor-control, NLB, Load Balancer Controller.
2. Run benchmarks
harbor jobs start -p ./task -a nop -n 2500 \
--environment-import-path harbor_aws.adapter:AWSEnvironment \
--ek stack_name=harbor-aws --ek ecr_cache=true
The adapter auto-discovers the NLB endpoint and admin token from the stack. No env vars needed.
3. Clean up
python -m harbor_aws stop # delete trial pods, keep infra
python -m harbor_aws destroy # tear down everything
Cost
| Component | Cost |
|---|---|
| EKS control plane | ~$73/mo (fixed) |
| Fargate trial pods | per-second, only when running |
| harbor-control pod | ~$5/mo (always-on) |
| NLB | ~$16/mo |
Development
pip install -e ".[dev,cdk]"
ruff check src/
mypy src/
License
Apache License 2.0 — see LICENSE.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file harbor_aws-0.4.0.tar.gz.
File metadata
- Download URL: harbor_aws-0.4.0.tar.gz
- Upload date:
- Size: 256.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
09813c79545b30737b78d1891f9dac4c9efb8179e7ae3aa2d94d37cac7eac6ae
|
|
| MD5 |
b9b93c4843045910caf2820351de78b4
|
|
| BLAKE2b-256 |
db06e2925c2c8151e1c6b483cbbdc2bb28e9b1a24a5df8698362af3fde744b1b
|
File details
Details for the file harbor_aws-0.4.0-py3-none-any.whl.
File metadata
- Download URL: harbor_aws-0.4.0-py3-none-any.whl
- Upload date:
- Size: 45.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d4bc8b4868f8447bd4904af1bb866f356b9c27a9384d6f1e04d1092bf0ff3b6
|
|
| MD5 |
a71a9ef3cd869ffdb15cde12e2723adb
|
|
| BLAKE2b-256 |
e5017c8fd29b604d4ce87c68da3cabc0cd6734e9b6743ec955c7a562571eed3b
|