-
Notifications
You must be signed in to change notification settings - Fork 0
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
Can KubernetesRun.image
and DaskExecutor...image
differ from Prefect Agent image?
#40
Comments
@cisaacstern I have been searching for the issue which details this but can't seem to locate it. In our discussions with the Prefect team there are 2 versioning compatibility issues to account for. The first is the Python version used for flow serialization, this must match the Python version used on the container where the Prefect agent is running for flow deserialization to function properly. The second is the Prefect Agent version. According to the Prefect support team this should be backward compatible so the Prefect Agent will support flows created with any =< version. I'd like to find a canonical link to Prefect documentation or an issue discussion which confirms this so we can reference it here. Dynamically setting the image for |
@cisaacstern For reference this is a previous comment where I discussed some of our image versioning concerns pangeo-forge/roadmap#18 (comment) |
Thanks for weighing in, @sharkinsspatial. I now have a version of this idea working in https://github.com/pangeo-forge/registrar/pull/12.
I was seeing an version incompatibility problem in the worker container (the specifics might not matter, but it was an I am now unsure if this was actually an image incompatibility problem, or rather that the prior release of the graph LR;
registrar --> agent --> worker;
all using fsspec/s3fs/gcsfs == What I'm not clear on, however, is what would happen if one or multiple of the above images had different fsspec/s3fs/gcsfs versions than the others. We will encounter this scenario quite soon, though, because recent releases of |
Dynamically selecting an versioned Docker image for a given recipe execution seems quite important. We currently have multiple released versions of
pangeo-forge-recipes
, and even if current recipe developers only use the latest version, that doesn't solve the problem of released feedstocks having been built with specific older versions. We always need to be able re-run all released feedstocks.As a concrete example, our released NOAA OISST feedstock was released with
pangeo-forge-recipes==0.5.0
, which is already many versions behind the bakery image (pinned topangeo-forge-recipes==0.6.1
) that was used to deploy our current bakery:My question for @tracetechnical and @sharkinsspatial is, should we expect that, if at the time of registration we change the value of
image
in theKubernetesRun
andDaskExecutor
...pangeo-forge-gcs-bakery/test/recipes/oisst_recipe.py
Lines 69 to 71 in 2d164b4
pangeo-forge-gcs-bakery/test/recipes/oisst_recipe.py
Lines 76 to 80 in 2d164b4
...that this will create workers which can execute recipes with a different environment from the Prefect Agent?
As far as I can tell, the only place that the
BAKERY_IMAGE
used to deploy the bakery is actually used is in the Prefect Agent deployment specpangeo-forge-gcs-bakery/kubernetes/prefect-agent.deployment.yaml
Line 50 in 2d164b4
...so dynamically setting the
image
for theKubernetesRun
andDaskExecutor
should be possible? I've been experimenting with this for ... a few hours now 🙃 ... and not quite able to get it to work yet, so just wanted to check that I wasn't overlooking something obvious.cc @rabernat @jhamman
The text was updated successfully, but these errors were encountered: