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:
A new route to serve the GetImageURL request from the SDK.
Helper functions to retrieve ECR credentials and refresh token ECR (container_registry/ecr.go).
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
[ ] I have created a descriptive PR title. The PR title should complete the sentence "This PR...".
[ ] I have performed a self-review of my code.
[ ] I have included a small demo of the changes. For the UI, this would be a screenshot or a Loom video.
[ ] If this is a new feature, I have added unit tests and integration tests.
[ ] I have run the integration tests locally and they are passing.
[ ] I have run the linter script locally (See python3 scripts/run_linters.py -h for usage).
[ ] All features on the UI continue to work correctly.
[ ] Added one of the following CI labels:
run_integration_test: Runs integration tests
skip_integration_test: Skips integration tests (Should be used when changes are ONLY documentation/UI)
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 sugarclient.integration("ecr").image("image:tag")
that generates a dictionary that can serve as input to theimage
field above. This API also sends a request to the backend to validate if the image is accessible and returns the full url.Backend:
container_registry/ecr.go
).Related issue number (if any)
Loom demo (if any)
Checklist before requesting a review
python3 scripts/run_linters.py -h
for usage).run_integration_test
: Runs integration testsskip_integration_test
: Skips integration tests (Should be used when changes are ONLY documentation/UI)