-
Notifications
You must be signed in to change notification settings - Fork 21
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
Add support for OCI registries through ORAS #541
Conversation
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.
@isc-dchui done an initial pass (not very thoroughly). Left some comments/questions
@@ -0,0 +1 @@ | |||
oras == 0.1.30 |
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.
If we are using embedded python in IPM, does this further limit the earliest IRIS version that IPM can be installed on?
I believe requirements.txt is currently always enforced. We should maybe make this optional so that IPM can still be installed on older versions of IRIS which don't have embedded python with just ORAS support disabled unless embedded python exists.
cc @isc-tleavitt
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.
Thanks for the feedback! Just had a discussion with @isc-tleavitt and it seems one possible approach is allow IRIS versions without embedded python to tolerate a failure to compile requirements.txt and handle run time issues by preventing the creation of ORAS repository definitions. This would also mean avoiding [Language = python ] methods so that the classes compile.
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.
@isc-shuliu @isc-tleavitt Not a blocker for this PR but what happens behind a firewall with installing python dependencies? Should IPM be packaged with a version of oras as a backup in case the internet is not available to install the latest version?
cc @isc-eneil @isc-jili @isc-jlechtne
…ic for easier subclassing
@isc-kiyer, @isc-shuliu fixed the majority of the requested changes. The only issue is the backwards compatibility with embedded Python. Unfortunately it looks like removing all
Unless there's something I'm missing (which could be very possible), iterating through the Python dictionary in Objectscript is incredibly painful. |
@isc-dchui Hmm I checked and embedded python was introduced in 21.2 and the first EM release to include it was 22.1. If we want to say we don't support older versions of IRIS for IPM v1, we could include this embedded python (I am fine with that but would want @isc-tleavitt to confirm). That being said, we need to make sure we don't hit any bugs embedded python may have had in those older versions so would need to test this so am a bit conflicted. |
In weekly meeting today, https://openexchange.intersystems.com/package/PyHelper came up as an option - specifically ArrayFrompyDict looks useful. |
Discussed with @isc-shuliu today. Plan is:
|
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.
Looks to me like this is in good shape!
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.
@isc-shuliu final round of comments!
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.
@isc-shuliu I left a few small comments/questions!
Introduce support for OCI registries using ORAS.
Mostly uses the ORAS Python client library via embedded Python, but augmented with ObjectScript and REST.
A docker container containing a simple OCI registry (ZOT) has been added to the docker-compose. To test out the containerized zot registry, in IPM configure an ORAS registry with http://oras:5000 as the URL.
It can then be published to and installed from like any other remote registry. Visit http://localhost:5001 to see the registry's UI.
Fixes #581