-
Notifications
You must be signed in to change notification settings - Fork 4
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
What org to use to host Bakery Docker images #18
Comments
Changed my mind including the The tag will therefore likely be something like |
Thanks @ciaranevans for putting such careful though into this.
Let's use the existing account.
According to ADR 1, the
I would prefer to leave this out of the name if possible if indeed it is not necessary. |
Nice, I'd missed this to be fair, that might do for the recipe side.
For the recipe contributor, it isn't necessary, though it will be necessary to distinguish them for flow registration & bakery management, but like you noted above, really the deciding factor here is likely the We might have to have something on the registration side that rejects a recipe into a bakery if it doesn't have a image that has On the account front - are you okay with the name |
And by this I mean, when registering, the bakery logic in there will hold a map of the |
@ciaranevans it looks like we are maxed out on our free dockerhub account so can't add any new users. We could either
Do folks have thoughts on whether we need the "pro" dockerhub features for this project?
I think this sounds fine in general, but it would be great to record this decision in verbose detail via an ADR. |
@rabernat I'm fine with a new free account, but I'll let others chime in on that front. For sure, I think I'll compare notes with @sharkinsspatial and we'll draft an ADR so that this is fleshed out |
@ciaranevans This approach sounds good to me. I agree that While being able to select the worker image used by the bakery is straightforward during registration the more problematic issue is how to dynamically set container version used by the Github action for registration. I have tried several approaches for this but there are limitation within Github Actions about dynamically setting
Using this approach we are always ensuring that recipe developers and bakery operators are always using up to date releases while we tightly control version pinning to ensure functioning environments and prevent nightmare issues like this one. I have all this implemented I'll try to update the workflow PR in |
@rabernat On the question of a Free vs Pro Dockerhub account this revolves mainly on whether we would like to put the burden of container maintenance on bakery operators or not. Because of the limitations of Free Dockerhub accounts @ciaranevans and I had originally considered having bakery operators maintain there own image repositories to avoid rate limiting issues when creating large Dask clusters dynamically that might generate many simultaneous container pulls. If we can use a Pro account we could in theory manage the image repository centrally which would simplify things. I'd be curious to hear experiences from the core |
Hey @rabernat have you had a chance to take a look at ☝️ ? We can always wait and discuss next Monday! |
The answer is no, because all our jupyterhubs and binders build derived containers and store them in the cloud-provider's private container registry in-region. So we only pull from docker hub once--when we upgrade a particular hub image--and then all the rest of the pulls (e.g. spinning up a big dask cluster) are from the cloud-provider's registry and are not rate limited. Coincidentally, we just started discussing bypassing this and going straight for dockerhub (jupyterhub/binderhub#1298), in which case we would confront the rate limitation issue. Bottom line, $25 / month is a very small expense in the context of this project, and I'll happily sign us up for a paid account if it will help the project. |
As a specific step forward, we would need to decide who would have an account on the paid Dockerhub org. Currently we have 7 members. The basic pro subscription only allows 5, so we would need to remove at least 3 of these users (one extra in order to allow someone from Devseed to get an account.) My impression is that very few of these users are still actively using their membership in this org. Could folks please confirm whether or not you still need admin access to the Pangeo dockerhub account? |
@rabernat - would it be easier to carve out a |
I would rather not pay for two separate pro accounts. Assuming that the broader pangeo effort will eventually hit these limits as well, it makes sense to me to combine them. |
Hi @rabernat - I don't need this admin access any more, so feel free to delete my membership! |
Same here, feel free to remove me. |
I don't need either. |
I haven't used the pangeo account directly in months. Happy to give up my spot. It is possible (haven't checked) that some of our CI/CD systems are publishing via my credentials though so it may be worth removing me only if necessary. |
Same for me too :) I also personally just use quay.io now for images instead of dockerhub. |
i'd prefer to stay on as an admin for now, but not critical.
We should make sure all the pangeo CI workflows are using access tokens. If building an image via github actions it's straightforward to push to multiple hosts (example for dockerhub and quay.io: https://github.com/uwhackweek/docker-template/blob/main/.github/workflows/CI.yml). |
I have upgraded our Pangeo Docker subscription to pro with 5 seats. @ciaranevans + @sharkinsspatial: please let me know the Docker IDs you'd like to have added. |
@rabernat I'm down as |
Ok you should be all set: https://hub.docker.com/orgs/pangeo |
Wait a minute before building any new containers. I'm about to release pangeo-forge-recipes. |
Looking at it, is there 1 more person due to go? There isn't room for @sharkinsspatial currently |
I'm happy to add Sean (and remove Yuvi) if he tells me his Docker ID. But FWIW, I'm not certain that everyone involved needs to have a membership in this org. As noted above by Scott, a good practice is to create access tokens for all automated pushing of images. You (Ciaran) now have owner privs and can create all the access tokens you need, which can be used either by CI or directly on the command line. The org can also be linked to GitHub via a service user |
Closing this as we're actively developing on https://hub.docker.com/repository/docker/pangeo/pangeo-forge-bakery-images |
Mainly a question for @rabernat
To ensure that our Bakeries can all provide the same dependencies and so that we can ensure registering a flow involves the same dependencies as the ones used to run the flow, we're looking to host the Bakery Worker images somewhere.
Ideally DockerHub would be great - would we be able to use the
pangeo
org already there, or shall we make apangeo-forge
org?From conversations with @sharkinsspatial, the images should only really be pulled by our CI workflows to be used in registering flows. For actual Bakery usage, we'll be recommending that Bakery maintainers checkout the repo we'll be storing the definitions in, then building & pushing the images they're hoping to support to their cloud providers registry of choice (ECR/ACR/etc.)
I envision the flow to be something like:
staged-recipes
meta.yaml
specifies the image that matches theirpangeo-forge-recipes
version andpython
versionpangeo-forge/bakery-worker:prefect_14-1-0_pangeo-forge-recipes_0-3-0_python_8-6
(Very much adlib-ing that right now)meta.yaml
to use as the base image (from DockerHub) for registering the flow with the specified bakeryworker_image
inside the flow - This might require a mapping to the Bakeries equivalent image, eg:If we get a case where the Recipe maintainer wishes to bump the version of
pangeo-forge-recipes
orpython
, we probably want that to be a PR onto the Feedstock/staged-recipes
so that we can re-register the flow and make sure the Bakery has the required version on its end.Also, should probably point out that the
prefect
version shouldn't really matter to the recipe maintainer, so maybe we don't include that in the tag? Not sure. @sharkinsspatial what are your thoughts?Cheers!
The text was updated successfully, but these errors were encountered: