RunLLM / aqueduct

Aqueduct is no longer being maintained. Aqueduct allows you to run LLM and ML workloads on any cloud infrastructure.
https://aqueducthq.com
Apache License 2.0
521 stars 18 forks source link

Allow users to specify custom Docker image when running operators on K8s #1264

Closed cw75 closed 1 year ago

cw75 commented 1 year ago

Describe your changes and why you are making these changes

Apologies for the long PR. Overall it contains 3 pieces.

UI: implements integration registration and editing. All of UI code changes are boiler plate that's borrowed from other integrations. In the future we should refactor and consolidate credentials for S3, AWS, and ECR.

SDK: contains similar logic as UI, plus allowing users to specify custom Docker image via the image field in the decorator. We also add syntax sugar client.integration("ecr").image("image:tag") that generates a dictionary that can serve as input to the image field above. This API also sends a request to the backend to validate if the image is accessible and returns the full url.

Backend:

  1. A new route to serve the GetImageURL request from the SDK.
  2. Helper functions to retrieve ECR credentials and refresh token ECR (container_registry/ecr.go).
  3. k8s secret creation and deletion logic during job launch and teardown.

Related issue number (if any)

Loom demo (if any)

Checklist before requesting a review