**Breaking API change:**
- Splitting out AllocCloudInstance into Resources and AllocCloudInstance:
Before:
python
result = await run_function(
lambda: sum(range(1000)) / 1000,
AllocCloudInstance(
logical_cpu_required=1,
memory_gb_required=4,
interruption_probability_threshold=15,
cloud_provider="EC2"
),
await Deployment.mirror_local()
)
After:
python
result = await meadowrun.run_function(
this is where the function to run goes
lambda: sum(range(1000)) / 1000,
run on a dynamically allocated AWS EC2 instance
meadowrun.AllocCloudInstance(cloud_provider="EC2"),
requirements to choose an appropriate EC2 instance
meadowrun.Resources(logical_cpu=1, memory_gb=4, max_eviction_rate=15),
mirror the local code and python environment
await meadowrun.Deployment.mirror_local()
)
Equivalent changes in `run_command` and `run_map` as well. Also, `num_concurrent_tasks` has been moved out from `AllocCloudInstances` to a top-level parameter in `run_map`.
**New features:**
- Initial rudimentary support for Kubernetes
- Add support for sidecar containers
- `mirror_local` now allows specifying non .py files in the current working directory
- Add `meadowrun-manage-ec2 grant-permission-to-ecr-repo`, make identity-based access to ECR work for private containers
**Improvements and bug fixes:**
- Allow large tasks/results in `run_map`, these will use S3 if we are above the SQS message limit
- Fix an issue where us-east-1 did not work in AWS
- Add support for specifying credentials on container images
- grant-permission-to-s3-bucket grants ListBucket permissions as well
- `run_map`'s "running" tasks was previously running + completed, now it is just running as expected
- Handle more ways of specifying git dependencies in pip and poetry
- Fix `run_map` failure where multiple workers are trying to unzip to the same directory
- Make sure we are always in the current working directory on the remote machine (previously this would only happen if "" was first on `sys.path`)
**Full Changelog**: https://github.com/meadowdata/meadowrun/compare/v0.1.14...v0.2.0