-
Notifications
You must be signed in to change notification settings - Fork 23
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
feat(api): Refactor API server to introduce support for Docker image registries and s3 bucket support #394
feat(api): Refactor API server to introduce support for Docker image registries and s3 bucket support #394
Conversation
f8f3467
to
af76f16
Compare
8103341
to
0d57552
Compare
aea677b
to
728d5bd
Compare
Codecov ReportAll modified and coverable lines are covered by tests ✅
Additional details and impacted files@@ Coverage Diff @@
## main #394 +/- ##
=======================================
Coverage 95.92% 95.92%
=======================================
Files 25 25
Lines 2035 2035
=======================================
Hits 1952 1952
Misses 83 83
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
c687358
to
16e7bb1
Compare
16e7bb1
to
728d5bd
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you for this PR and the detailed changelog! A bit of question, you mentioned that Docker Hub doesn’t support image name with slash, are we planning to change the name format later, or what's the plan for it?
6e94c22
to
611615f
Compare
@bthari hmm I'm thinking/hoping that it might just be a problem specific to Docker Hub but if we aren't pushing to Docker Hub then it should be okay. However, I think a more comprehensive solution would be to allow the naming convention to be configurable on a platform-level (via the API server configs) but that might need a little more time to expose as a config. |
Thanks a lot for the comments @tiopramayudi and @bthari ! I should've covered and addressed all of the outstanding comments. If all looks good feel free to approve it again otherwise let me know what additional changes we should include and I'll get back to it. Thanks once again! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Adding one more feedback, the rest is LGTM! Feel free to merge this, thanks @deadlycoconuts !
Thanks for the re-review @tiopramayudi! I'll merge this soon! :D |
Note 🚨
This PR should not be merged without the changes in caraml-dev/mlp#116 being merged, published and imported as dependencies first. This PR is currently only using a branch of a fork (the source of the quoted PR) of the MLP repository.
Context
In order to provide support for using image registries that use Docker registry credentials as well as AWS S3-based blob storage services, this PR refactors the API server to support these additional image registry and bob storage options. More concretely, these are the following changes made:
Modifications
api/turing/api/appcontext.go
- Add additional argument to be passed to the job builder so that it knows what file blob type storage it needs to useapi/turing/config/config.go
- Introduce new configs for platform maintainers to specify thePushRegistryType
and theDockerCredentialSecretName
api/turing/imagebuilder/imagebuilder.go
- Make changes to the image builder to configure the Kaniko job spec correctly depending on the selected registry type and blob storage typeengines/pyfunc-ensembler-job/Dockerfile
- Add steps to the base batch ensembler image to install the AWS CLIengines/pyfunc-ensembler-job/app.Dockerfile
- Add steps to the batch ensembler docker image to authenticate and pull ensembler artifacts correctly depending on the configured blob storage typeengines/pyfunc-ensembler-service/Dockerfile
- Add steps to the base real-time ensembler image to install the AWS CLIengines/pyfunc-ensembler-service/app.Dockerfile
- Add steps to the real-time ensembler docker image to authenticate and pull ensembler artifacts correctly depending on the configured blob storage typeinfra/charts/turing/values.yaml
- Added configs needed for the e2e test in the CICD jobSome tiny caveats found
/
, seems to not work when pushing to Docker Hub, as Docker Hub doesn't seem to accept slashes in a repository (image)'s name.