Skip to main content

AWS EKS/Fargate execution backend for Harbor benchmarks

Project description

harbor-aws

License

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

harbor_aws-0.4.0.tar.gz (256.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harbor_aws-0.4.0-py3-none-any.whl (45.7 kB view details)

Uploaded Python 3

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

Hashes for harbor_aws-0.4.0.tar.gz
Algorithm Hash digest
SHA256 09813c79545b30737b78d1891f9dac4c9efb8179e7ae3aa2d94d37cac7eac6ae
MD5 b9b93c4843045910caf2820351de78b4
BLAKE2b-256 db06e2925c2c8151e1c6b483cbbdc2bb28e9b1a24a5df8698362af3fde744b1b

See more details on using hashes here.

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

Hashes for harbor_aws-0.4.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0d4bc8b4868f8447bd4904af1bb866f356b9c27a9384d6f1e04d1092bf0ff3b6
MD5 a71a9ef3cd869ffdb15cde12e2723adb
BLAKE2b-256 e5017c8fd29b604d4ce87c68da3cabc0cd6734e9b6743ec955c7a562571eed3b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page