jupyter: new image to add esgf-pyclient and xncml to fix Jenkins failure#308
jupyter: new image to add esgf-pyclient and xncml to fix Jenkins failure#308
Conversation
…ix Jenkins failure (#118) # Overview This is a build on top of an existing build. A fresh full build because it would pull a newer RavenPy which would requires a newer RavenWPS, which do not start at this moment. This incremental build is faster to test and will fix our failing Jenkins due to missing package `esgf-pyclient`. It is annoying to have Jenkins failing since a while just for a missing package. ## Changes - Adds `esgf-pyclient` for esgf-dap.ipynb (Ouranosinc/pavics-sdi#269) - Adds `xncml` for gen_catalog refactoring (Ouranosinc/pavics-vdb#46) - Fixes annoying harmless error `ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed` - Jenkins: lower job retention duration since we now have separated jobs for nightly trigger and manual trigger - Existing `intake-esm` pin: #109 - Relevant changes (alphabetical order): ```diff > - esgf-pyclient=0.3.1=pyh1a96a4e_2 < - gdal=3.5.3=py38h1f15b03_4 > - gdal=3.6.0=py38h58634bd_13 > - xncml==0.2 ``` ## Test - Deployed as "beta" image in production for bokeh visualization performance regression testing. - Manual test notebook https://github.com/Ouranosinc/PAVICS-landing/blob/master/content/notebooks/climate_indicators/PAVICStutorial_ClimateDataAnalysis-5Visualization.ipynb for bokeh visualization performance and it looks fine. - Jenkins build: one known intermittent error [job-PAVICS-e2e-workflow-tests-quick-fix-production-image-3-consoleText.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151086/job-PAVICS-e2e-workflow-tests-quick-fix-production-image-3-consoleText.txt) ## Related Issue / Discussion - Matching notebook fixes: - Pavics-sdi: Ouranosinc/pavics-sdi#285 - Deployment to PAVICS: bird-house/birdhouse-deploy#308 ## Additional Information Full diff conda env export: [221130-221130-update230403-conda-env-export.diff.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151115/221130-221130-update230403-conda-env-export.diff.txt) Full new conda env export: [221130-update230403-conda-env-export.yml.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151116/221130-update230403-conda-env-export.yml.txt) DockerHub build logs: [Dockerhub-buildlogs-pavics-workflow-tests-221130-update230403.txt](https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/files/11151131/Dockerhub-buildlogs-pavics-workflow-tests-221130-update230403.txt)
|
@matprov The pipeline seems frozen again ! |
| - Adds `esgf-pyclient` for esgf-dap.ipynb (https://github.com/Ouranosinc/pavics-sdi/pull/269) | ||
| - Adds `xncml` for gen_catalog refactoring (https://github.com/Ouranosinc/pavics-vdb/pull/46) | ||
| - Fixes annoying harmless error `ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed` | ||
| - Relevant changes (alphabetical order): |
There was a problem hiding this comment.
Where are these changes actually made? I see the esgf-pyclient and xncml install in Ouranosinc/PAVICS-e2e-workflow-tests#118 but these specific versions aren't mentioned there. And I don't see the gdal change, unless it's a dependency that's not explicitly updated?
There was a problem hiding this comment.
Hehe, let me quickly introduce you to our Jupyter env building process.
Incremental builds are builds on top of previously released Jupyter env. DockerHub will use the Dockerfile.testing to build for incremental builds. DockerHub knows which Dockerfile to use depending on the tag prefix. For incremental build, the tag prefix is dockerupdate-.
In the Dockerfile.testing here https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/pull/118/files#diff-b44bae84e9671e9e5f0a9f5a7f41cfb09c368daacc0873bab1cf3a57da8afdee you see I updated to the previous released version and I added esgf-client and xncml. The rest of the changes (gdal and others), are pull indirectly.
If you look at the PR description, you see at the bottom there are 221130-221130-update230403-conda-env-export.diff.txt which is the full diff vs the previous released Jupyter env. You'll see more than just gdal but I only report gdal because it can potentially cause problem.
Full conda env export like 221130-update230403-conda-env-export.yml.txt are generated during each Jenkins builds so we know exactly what runtime env produce the error during the build. See https://github.com/Ouranosinc/PAVICS-e2e-workflow-tests/blob/597529c35f0a9eabac92374b3797bff0f30509db/testall#L109-L114
The "Relevant changes" section is very "subjective". It's what I considered "of interest" or "can cause trouble".
Full DockerHub builds will use regular Dockerfile and triggered by tag prefix docker-.
The name of our Jupyter env is funny too, it's pavics/workflow-tests. Historically it was meant only for Jenkins to test the notebooks but then I realized I can deploy exactly the same image to production so I kill 2 birds with 1 stone. I test the notebooks and I guaranty the runtime image works because both the notebooks and the runtime image are tested together. I basically deploy exactly what I test.
UofT can have your own Jupyter env too. CRIM actually have 2 more Jupyter env (EO and NLP at https://github.com/crim-ca/pavics-jupyter-images) that they deploy alongside our image for Climate.
The Jupyterhub can be configured to display several choices of Jupyter env image for use to choose, see
birdhouse-deploy/birdhouse/env.local.example
Lines 232 to 260 in 60116e2
There was a problem hiding this comment.
Thank you for the detailed explanation!
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1416/Result : failure BIRDHOUSE_DEPLOY_BRANCH : new-jupyter-env DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-69.rdext.crim.ca Infrastructure deployment failed. Instance has not been destroyed. @matprov |
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac/61/Result : failure BIRDHOUSE_DEPLOY_BRANCH : new-jupyter-env DACCS_CONFIGS_BRANCH : PAVICS_E2E_WORKFLOW_TESTS_BRANCH : PAVICS_SDI_BRANCH : DESTROY_INFRA_ON_EXIT : PAVICS_HOST : https:// PAVICS-e2e-workflow-tests Pipeline ResultsTests URL :NOTEBOOK TEST RESULTS
|
@tlvu Thanks for noticing me of this misbehaviour. I have taken a look but haven't found the issue. Restarting jenkins made queued job finish. I'll continue investigation when problem arise in the future but for now I think the pipeline can accept new jobs. |
|
run tests |
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1426/Result : failure BIRDHOUSE_DEPLOY_BRANCH : new-jupyter-env DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-36.rdext.crim.ca PAVICS-e2e-workflow-tests Pipeline ResultsTests URL : http://daccs-jenkins.crim.ca:80/job/PAVICS-e2e-workflow-tests/job/master/1058/NOTEBOOK TEST RESULTS |
E2E Test ResultsDACCS-iac Pipeline ResultsBuild URL : http://daccs-jenkins.crim.ca:80/job/DACCS-iac-birdhouse/1442/Result : failure BIRDHOUSE_DEPLOY_BRANCH : new-jupyter-env DACCS_CONFIGS_BRANCH : master PAVICS_E2E_WORKFLOW_TESTS_BRANCH : master PAVICS_SDI_BRANCH : master DESTROY_INFRA_ON_EXIT : true PAVICS_HOST : https://host-140-154.rdext.crim.ca Infrastructure deployment failed. Instance has not been destroyed. @matprov |

Jupyter: new image to add esgf-pyclient and xncml to fix Jenkins failure
See PR Ouranosinc/PAVICS-e2e-workflow-tests#118 for more details.
esgf-pyclientfor esgf-dap.ipynb (Modify nb on ESGF access to remove authentication process Ouranosinc/pavics-sdi#269)xncmlfor gen_catalog refactoring (Define data model for catalog attributes using pydantic Ouranosinc/pavics-vdb#46)ERROR 1: PROJ: proj_create_from_database: Open of /opt/conda/envs/birdy/share/proj failed