coffea-casa 2023.12.12.post1__tar.gz → 2024.8.7.post0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/dockercd-dev.yml +2 -1
  2. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/dockerci-dev.yml +1 -1
  3. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/PKG-INFO +2 -2
  4. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/_version.py +2 -2
  5. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/coffea_casa.py +2 -0
  6. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/jobqueue-coffea-casa.yaml +2 -1
  7. coffea_casa-2024.8.7.post0/docker/Dockerfile.cc-analysis-alma8 +221 -0
  8. coffea_casa-2024.8.7.post0/docker/Dockerfile.cc-analysis-alma9 +217 -0
  9. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/Dockerfile.cc-analysis-centos7 +58 -53
  10. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/Dockerfile.cc-analysis-ubuntu +3 -3
  11. coffea_casa-2024.8.7.post0/docker/Dockerfile.cc-base-alma8 +327 -0
  12. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/Dockerfile.cc-base-centos7 +112 -66
  13. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/Dockerfile.cc-base-ubuntu +3 -3
  14. coffea_casa-2024.8.7.post0/docker/Dockerfile.cc-dask-alma8 +335 -0
  15. coffea_casa-2024.8.7.post0/docker/Dockerfile.cc-dask-alma9 +332 -0
  16. coffea_casa-2024.8.7.post0/docker/README.IDAP.md +12 -0
  17. coffea_casa-2024.8.7.post0/docker/certs/isrgrootx1.pem +31 -0
  18. coffea_casa-2024.8.7.post0/docker/certs/lets-encrypt-r3.pem +30 -0
  19. coffea_casa-2024.8.7.post0/docker/certs/lets-encrypt-r4.pem +30 -0
  20. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/dask.yaml +6 -4
  21. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/jobqueue-coffea-casa.yaml +2 -1
  22. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/prepare-env/prepare-env-cc-analysis.sh +49 -21
  23. coffea_casa-2023.12.12.post1/docker/Dockerfile.cc-centos7 +0 -116
  24. coffea_casa-2023.12.12.post1/docker/prepare-env/prepare-env-cc-base.sh +0 -45
  25. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.gitattributes +0 -0
  26. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/dependabot.yml +0 -0
  27. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/charts-lint.yml +0 -0
  28. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/charts-publish.yml +0 -0
  29. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/charts-test-minikube.yaml +0 -0
  30. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/charts-test.yaml_k3d +0 -0
  31. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/pypi-ci.yml +0 -0
  32. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.github/workflows/pypi-tag-deploy.yml +0 -0
  33. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.gitignore +0 -0
  34. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.gitmodules +0 -0
  35. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.pre-commit-config.yaml +0 -0
  36. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/.readthedocs.yml +0 -0
  37. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/LICENSE +0 -0
  38. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/MAINTAINERS +0 -0
  39. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/MANIFEST.in +0 -0
  40. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/README.md +0 -0
  41. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/chartpress.yaml +0 -0
  42. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/.helmignore +0 -0
  43. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/Chart.yaml +0 -0
  44. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/README.md +0 -0
  45. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/ingressroute.yaml +0 -0
  46. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/ingressroutetcp.yaml +0 -0
  47. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/ingressrouteudp.yaml +0 -0
  48. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/middlewares.yaml +0 -0
  49. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/middlewarestcp.yaml +0 -0
  50. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/serverstransports.yaml +0 -0
  51. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/tlsoptions.yaml +0 -0
  52. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/tlsstores.yaml +0 -0
  53. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/crds/traefikservices.yaml +0 -0
  54. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/docs/DEVNOTES.md +0 -0
  55. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/files/hub-extra/auth.py +0 -0
  56. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/files/hub-extra/oauthenticator-coffea.py +0 -0
  57. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/files/hub-extra/oauthenticator-generic.py +0 -0
  58. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/files/hub-extra/oauthenticator-oauth2-14.2.0.py +0 -0
  59. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/files/hub-extra/secret_creation_hook.py +0 -0
  60. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/pebble-config.yaml +0 -0
  61. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/schema.yaml +0 -0
  62. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/NOTES.txt +0 -0
  63. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/_helpers.tpl +0 -0
  64. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/af-secrets.yaml +0 -0
  65. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/hub-extra-config-d.yaml +0 -0
  66. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/hub-extra-rbac.yaml +0 -0
  67. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/traefik/deployment.yaml +0 -0
  68. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/traefik/service.yaml +0 -0
  69. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/traefik/traefik-dashboard.yaml +0 -0
  70. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/templates/traefik/traefik-rbac.yaml +0 -0
  71. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/unl-extra/login.html +0 -0
  72. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/unl-extra/logo.png +0 -0
  73. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/unl-extra/logo.png.bin +0 -0
  74. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/values-prod.yaml +0 -0
  75. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/coffea-casa/values.yaml +0 -0
  76. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/dev-requirements.txt +0 -0
  77. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/charts/requirements.txt +0 -0
  78. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/ci/common +0 -0
  79. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/__init__.py +0 -0
  80. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/_version.pyi +0 -0
  81. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/config.py +0 -0
  82. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/coffea_casa/plugin.py +0 -0
  83. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/README.md +0 -0
  84. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/ceph/ceph.conf +0 -0
  85. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/ceph/keyring +0 -0
  86. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/certs/hcc-flatiron.pem +0 -0
  87. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/condor/condor_config +0 -0
  88. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/condor/config.d/99-coffea-condor-master-config +0 -0
  89. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/dask_tls.yaml +0 -0
  90. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/distributed/0001-Patch-from-bbockelman-adaptive-scaling.patch +0 -0
  91. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/distributed/0002-Allow-scheduler-to-preserve-worker-hostnames.patch +0 -0
  92. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/distributed/0003-Activate-patch.patch +0 -0
  93. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/distributed/0004-Add-possibility-to-setup-external_adress-for-schedul.patch +0 -0
  94. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/distributed/0005-Add-nanny-patch.patch +0 -0
  95. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/dask/labextension.yaml +0 -0
  96. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/fix-permissions +0 -0
  97. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/jupyter_notebook_config.py +0 -0
  98. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/jupyterlab-workspace.json +0 -0
  99. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/start-notebook.sh +0 -0
  100. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/start-singleuser.sh +0 -0
  101. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/jupyterhub/start.sh +0 -0
  102. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/k8s-worker/supervisord.conf +0 -0
  103. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/prepare-env/prepare-env-cc.sh +0 -0
  104. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/skyhook/.coffea.toml +0 -0
  105. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/skyhook/build-skyhook.sh +0 -0
  106. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docker/uproot/uproot_xrd_source.patch +0 -0
  107. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/Makefile +0 -0
  108. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/atlas-auth.web.cern.ch_login.png +0 -0
  109. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/browser.png +0 -0
  110. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-cilogon.png +0 -0
  111. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-email.png +0 -0
  112. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-enter.png +0 -0
  113. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-invitation.png +0 -0
  114. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-login.png +0 -0
  115. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-reg1.png +0 -0
  116. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-reg2.png +0 -0
  117. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/cc-request.png +0 -0
  118. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-authz-approval.png +0 -0
  119. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-authz.png +0 -0
  120. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-connection_success.png +0 -0
  121. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-dashboard.png +0 -0
  122. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-dashboard_taskstream.png +0 -0
  123. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-dashboard_workers.png +0 -0
  124. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-draft.png +0 -0
  125. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-enter.png +0 -0
  126. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-image.png +0 -0
  127. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-labext.png +0 -0
  128. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-newlauncher.png +0 -0
  129. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-newtab.png +0 -0
  130. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-performance_report.png +0 -0
  131. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-pytest.png +0 -0
  132. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-resources.png +0 -0
  133. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-server_stop.png +0 -0
  134. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-start.png +0 -0
  135. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-startr.png +0 -0
  136. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea-casa-tutorials.png +0 -0
  137. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea.af.uchicago.edu_hub_login.png +0 -0
  138. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea.af.uchicago.edu_hub_spawn.png +0 -0
  139. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea.af.uchicago.edu_user_clusters.png +0 -0
  140. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea.af.uchicago.edu_user_clusters.scale.png +0 -0
  141. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/coffea.af.uchicago.edu_user_fengping.hu.png +0 -0
  142. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/dask-labextention-address.png +0 -0
  143. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/example1-plot.png +0 -0
  144. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/examplezpeak-plot.png +0 -0
  145. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/git.png +0 -0
  146. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/git2.png +0 -0
  147. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/servicex-coffea-workflow.png +0 -0
  148. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/servicex-dashboard.png +0 -0
  149. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/servicex-profile.png +0 -0
  150. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/_static/servicex-registration.png +0 -0
  151. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_api.rst +0 -0
  152. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_condor.rst +0 -0
  153. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_configuration.rst +0 -0
  154. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_deployment.rst +0 -0
  155. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_issues.rst +0 -0
  156. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_metrics.rst +0 -0
  157. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_packages.rst +0 -0
  158. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_setup.rst +0 -0
  159. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_support.rst +0 -0
  160. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_user.rst +0 -0
  161. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/cc_user_registration.rst +0 -0
  162. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/conf.py +0 -0
  163. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/agc_schema.py +0 -0
  164. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/analysis-casa.ipynb +0 -0
  165. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/analysis_tutorial.ipynb +0 -0
  166. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/coffea-casa-template.ipynb +0 -0
  167. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/coffea_analysis.ipynb +0 -0
  168. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example1.ipynb +0 -0
  169. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example2.ipynb +0 -0
  170. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example3.ipynb +0 -0
  171. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example4.ipynb +0 -0
  172. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example5.ipynb +0 -0
  173. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example6.ipynb +0 -0
  174. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example7.ipynb +0 -0
  175. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/example8.ipynb +0 -0
  176. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/ttbar_HT.ipynb +0 -0
  177. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/utilities/columnar.png +0 -0
  178. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/utilities/processor.png +0 -0
  179. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/gallery/zpeak_example.ipynb +0 -0
  180. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/index.rst +0 -0
  181. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs/make.bat +0 -0
  182. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_B&W_500X500.png +0 -0
  183. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_IconOnlyI_B&W_500X500.png +0 -0
  184. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_InverseB&W_500X500.png +0 -0
  185. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_1080X1080_TransparentBG.png +0 -0
  186. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_TransparentBG.png +0 -0
  187. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_WhiteBG.png +0 -0
  188. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_IconOnly_Brown_500X500_TransparentBG.png +0 -0
  189. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_TextOnly_1080X182_Brown.png +0 -0
  190. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_IconOnly_Purple_500X500_TransparentBG.png +0 -0
  191. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_1080X1080_TransparentBG.png +0 -0
  192. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_TransparentBG.png +0 -0
  193. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_WhiteBG.png +0 -0
  194. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_TextOnly_1080X182_Purple.png +0 -0
  195. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/pyproject.toml +0 -0
  196. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/requirements.txt +0 -0
  197. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests/ca.pem +0 -0
  198. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests/key.pem +0 -0
  199. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests/test_coffeacasa.py +0 -0
  200. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests/test_coffeacasa_args.py +0 -0
  201. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests/test_config.py +0 -0
  202. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests-charts/conftest.py +0 -0
  203. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tests-charts/test_hub.py +0 -0
  204. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tools/generate-json-schema.py +0 -0
  205. {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7.post0}/tools/values.lint-validate.yaml +0 -0
@@ -20,7 +20,8 @@ jobs:
20
20
  strategy:
21
21
  fail-fast: false
22
22
  matrix:
23
- image: [cc-base-ubuntu, cc-analysis-ubuntu]
23
+ #image: [cc-base-ubuntu, cc-analysis-ubuntu, cc-dask-alma8, cc-analysis-alma8, cc-dask-alma9, cc-analysis-alma9]
24
+ image: [cc-dask-alma9, cc-analysis-alma9]
24
25
  # Keep this line in sync with gh actions @ coffea-dask repo
25
26
  # python: [3.8, 3.9, '3.10']
26
27
  #exclude:
@@ -18,7 +18,7 @@ jobs:
18
18
  strategy:
19
19
  fail-fast: false
20
20
  matrix:
21
- image: [cc-base-ubuntu, cc-analysis-ubuntu]
21
+ image: [cc-dask-alma9, cc-analysis-alma9]
22
22
  # Keep this line in sync with gh actions @ coffea-dask repo
23
23
  # python: [3.8, 3.9, '3.10']
24
24
  #exclude:
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.1
1
+ Metadata-Version: 2.3
2
2
  Name: coffea-casa
3
- Version: 2023.12.12.post1
3
+ Version: 2024.8.7.post0
4
4
  Summary: Wrappers for Dask clusters to be used from coffea-casa AF
5
5
  Project-URL: Homepage, https://github.com/CoffeaTeam/coffea-casa
6
6
  Project-URL: Documentation, https://coffea-casa.readthedocs.io/en/latest/
@@ -12,5 +12,5 @@ __version__: str
12
12
  __version_tuple__: VERSION_TUPLE
13
13
  version_tuple: VERSION_TUPLE
14
14
 
15
- __version__ = version = '2023.12.12.post1'
16
- __version_tuple__ = version_tuple = (2023, 12, 12)
15
+ __version__ = version = '2024.8.7.post0'
16
+ __version_tuple__ = version_tuple = (2024, 8, 7)
@@ -205,7 +205,9 @@ class CoffeaCasaCluster(HTCondorCluster):
205
205
  {"should_transfer_files": "YES"},
206
206
  {"Stream_Output": "False"},
207
207
  {"Stream_Error": "False"},
208
+ {"+CoffeaCasaWorkerType": "dask"},
208
209
  {"+DaskSchedulerAddress": external_ip_string},
210
+ {"+AccountingGroup": "cms.other.coffea.$ENV(HOSTNAME)"},
209
211
  job_kwargs.get(
210
212
  "job_extra_directives", dask.config.get(f"jobqueue.{cls.config_name}.job_extra_directives")
211
213
  ),
@@ -3,11 +3,12 @@ jobqueue:
3
3
  name: dask-worker
4
4
  # Dask worker options, taken from https://github.com/dask/dask-jobqueue/tree/master/dask_jobqueue
5
5
  cores: 1 # Total number of cores per job
6
- memory: "2GiB" # Total amount of memory per job
6
+ memory: "3GiB" # Total amount of memory per job
7
7
  processes: 1 # Number of Python processes per jobs
8
8
  worker-image: "hub.opensciencegrid.org/coffea-casa/cc-analysis-ubuntu:development"
9
9
 
10
10
  # Comunication settings
11
+ python: null # Python executable
11
12
  interface: null # Network interface to use like eth0 or ib0
12
13
  death-timeout: 60 # Number of seconds to wait if a worker can not find a scheduler
13
14
  local-directory: null # Location of fast local storage like /scratch or $TMPDIR
@@ -0,0 +1,221 @@
1
+ #FROM coffeateam/coffea-base-almalinux8:0.7.22-py3.10
2
+ FROM coffeateam/coffea-dask-almalinux8:latest-py3.10
3
+
4
+ USER root
5
+ LABEL maintainer="Oksana Shadura <ksu.shadura@gmail.com>"
6
+ # Jupyterhub
7
+ ARG TAG="development"
8
+ ARG NB_USER="cms-jovyan"
9
+ ARG NB_UID="6440"
10
+ ARG NB_GID="11265"
11
+ ARG CERT_DIR="/etc/cmsaf-secrets"
12
+ # Hack for GH Actions
13
+ ARG GITHUB_ACTIONS="false"
14
+ # FIX ME AFTER TEST:
15
+ #ARG BEARER_TOKEN_FILE="/tmp/.xcache/access_token"
16
+ ARG BEARER_TOKEN_FILE="/tmp/.xcache/access_token"
17
+ ARG SEC_TOKEN_SYSTEM_DIRECTORY="/tmp/.condor"
18
+ ARG XCACHE_HOST="xcache"
19
+ #ARG XCACHE_HOST="red-xcache1.unl.edu"
20
+
21
+
22
+ # Configure environment
23
+ ENV CONDA_DIR /usr/local
24
+ ENV CERT_DIR $CERT_DIR
25
+ ENV XCACHE_HOST $XCACHE_HOST
26
+ ENV BEARER_TOKEN_FILE $BEARER_TOKEN_FILE
27
+ ENV SEC_TOKEN_SYSTEM_DIRECTORY $SEC_TOKEN_SYSTEM_DIRECTORY
28
+ ENV SHELL /bin/bash
29
+ ENV NB_USER $NB_USER
30
+ ENV USER $NB_USER
31
+ ENV NB_UID $NB_UID
32
+ ENV NB_GID $NB_GID
33
+ ENV HOME /home/$NB_USER
34
+ ENV PATH "${CONDA_DIR}/bin/:$PATH"
35
+ ENV LC_ALL en_US.UTF-8
36
+ ENV LANG en_US.UTF-8
37
+ ENV LANGUAGE en_US.UTF-8
38
+
39
+ # Install all OS dependencies for notebook server that starts but lacks all
40
+ # features (e.g., download as all possible file formats)
41
+ RUN yum -y update \
42
+ && yum -y group install "Development Tools" \
43
+ && yum -y install \
44
+ wget \
45
+ epel-release \
46
+ gettext \
47
+ bzip2 \
48
+ ca-certificates \
49
+ sudo \
50
+ langpacks-en \
51
+ glibc-langpack-en \
52
+ glibc-all-langpacks \
53
+ liberation-fonts \
54
+ wget \
55
+ nss_wrapper \
56
+ openssl \
57
+ emacs \
58
+ git \
59
+ unzip \
60
+ nano \
61
+ vim \
62
+ curl \
63
+ net-tools \
64
+ libXext \
65
+ libSM \
66
+ libXrender \
67
+ nc \
68
+ openssh-clients \
69
+ tzdata \
70
+ unzip \
71
+ gdb \
72
+ && yum clean all && rm -rf /var/cache/yum
73
+
74
+ ENV TINI_VERSION v0.19.0
75
+ ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-amd64 /usr/bin/tini
76
+ RUN chmod +x /usr/bin/tini
77
+
78
+ # Copy a script that we will use to correct permissions after running certain commands
79
+ COPY jupyterhub/fix-permissions /usr/local/bin/fix-permissions
80
+ RUN chmod a+rx /usr/local/bin/fix-permissions
81
+
82
+ RUN rm -rf /etc/grid-security && \
83
+ ln -s /usr/local/etc/grid-security /etc/grid-security && \
84
+ chmod 755 /etc/grid-security/certificates && \
85
+ chmod g-w /etc/grid-security/certificates
86
+
87
+ # Enable prompt color in the skeleton .bashrc before creating the default NB_USER
88
+ # hadolint ignore=SC2016
89
+ RUN sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc && \
90
+ # Add call to conda init script see https://stackoverflow.com/a/58081608/4413446
91
+ echo 'eval "$(command conda shell.bash hook 2> /dev/null)"' >> /etc/skel/.bashrc
92
+
93
+ # Create NB_USER with name jovyan user with given UID and in the 'users' group
94
+ # and make sure these dirs are writable by the `users` group.
95
+ RUN echo "auth requisite pam_deny.so" >> /etc/pam.d/su && \
96
+ sed -i.bak -e 's/^%admin/#%admin/' /etc/sudoers && \
97
+ sed -i.bak -e 's/^%sudo/#%sudo/' /etc/sudoers && \
98
+ groupadd -r "${NB_USER}" --gid "$NB_GID" && \
99
+ useradd -l -m -s /bin/bash -N -u "${NB_UID}" "${NB_USER}" && \
100
+ mkdir -p "${CONDA_DIR}" && \
101
+ mkdir -p "${CERT_DIR}" && \
102
+ mkdir -p /var/lib/condor && \
103
+ chown -R "${NB_USER}:${NB_GID}" "${CONDA_DIR}" && \
104
+ chown -R "${NB_USER}:${NB_GID}" "${HOME}" && \
105
+ chmod g+w /etc/passwd && \
106
+ fix-permissions "${HOME}" && \
107
+ fix-permissions "${CONDA_DIR}"
108
+
109
+ USER $NB_USER
110
+ WORKDIR $HOME
111
+ # Setup work directory for backward-compatibility
112
+ RUN mkdir $HOME/work && \
113
+ mkdir -p $HOME/.local && \
114
+ mkdir -p $HOME/.condor/tokens.d && \
115
+ fix-permissions $HOME
116
+
117
+ RUN mamba remove htcondor
118
+
119
+ #Dask dependencies and HTCondor
120
+ RUN mamba install --yes \
121
+ -c conda-forge \
122
+ htcondor==10.8.0 \
123
+ xgboost \
124
+ pyhf \
125
+ xrootd \
126
+ scipy>=1.8.1 \
127
+ cabinetry \
128
+ vector \
129
+ hist \
130
+ mplhep \
131
+ iminuit \
132
+ cmake \
133
+ ndcctools \
134
+ && mamba clean \
135
+ --all \
136
+ --force-pkgs-dirs \
137
+ --yes
138
+
139
+ RUN pip install --no-cache-dir \
140
+ aiostream \
141
+ supervisor \
142
+ correctionlib \
143
+ funcx \
144
+ pyyaml \
145
+ # ML packages
146
+ dask-ml \
147
+ dask-gateway \
148
+ prometheus_client \
149
+ comm>=0.1.2 \
150
+ mlflow
151
+
152
+ #RUN if [ "${TAG:-}" == "development" ]; then pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa ; else pip install --no-cache-dir coffea_casa -U ; fi
153
+ RUN pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa
154
+
155
+ # ------- xrootd-xcache-plugin -------------------------------
156
+ RUN cd /tmp && \
157
+ git clone -b xcache https://github.com/jthiltges/xrdcl-authz-plugin.git && \
158
+ cd xrdcl-authz-plugin && \
159
+ mkdir build && \
160
+ cd build && \
161
+ cmake /tmp/xrdcl-authz-plugin -DCMAKE_INSTALL_PREFIX=${CONDA_DIR} && \
162
+ make && \
163
+ make install
164
+
165
+ ENV XRD_PLUGINCONFDIR="${CONDA_DIR}/etc/xrootd/client.plugins.d/"
166
+ ENV XRD_PLUGIN="${CONDA_DIR}/lib/libXrdClXcachePlugin-5.so"
167
+
168
+ # Include additional CA certificates beyond ca-policy-lcg
169
+ COPY certs/* /etc/grid-security/certificates/
170
+ RUN openssl rehash /etc/grid-security/certificates/
171
+
172
+ # TODO: RETEST IF WE STILL NEED THIS
173
+ ENV LD_LIBRARY_PATH="${CONDA_DIR}/lib/:$LD_LIBRARY_PATH"
174
+ ENV PATH="${CONDA_DIR}/bin/:$PATH"
175
+
176
+ USER root
177
+ # Setup supervisord files
178
+ COPY k8s-worker/supervisord.conf /etc/supervisor/
179
+ # Setup HTCondor user/group and change group for user $NB_USER
180
+ # Fix error (submitting jobs as user/group 0 (root) is not allowed for security reasons) and
181
+ # it configured from kubernetes side and updated in docker container to match it
182
+ RUN groupadd -r condor && \
183
+ useradd -r -g condor -d /var/lib/condor -s /sbin/nologin condor
184
+
185
+ # FIXME: merge PRs open in distributed.git (oshadura)
186
+ # Distributed: we need to install patched version of distributed version
187
+ COPY dask/distributed ${CONDA_DIR}/lib/python3.10/site-packages/distributed
188
+ RUN cd ${CONDA_DIR}/lib/python3.10/site-packages/distributed && \
189
+ patch -p2 < 0001-Patch-from-bbockelman-adaptive-scaling.patch && \
190
+ patch -p2 < 0002-Allow-scheduler-to-preserve-worker-hostnames.patch
191
+ # && patch -p2 < 0003-Activate-patch.patch
192
+ # && patch -p2 < 0004-Add-possibility-to-setup-external_adress-for-schedul.patch
193
+ # && patch -p2 < 0005-Add-nanny-patch.patch
194
+
195
+ # FIXME: we have a wrong path, let's make a link.
196
+ # cms-jovyan@jupyter-oksana-2eshadura-40cern-2ech:~$ echo $PATH
197
+ # ${CONDA_DIR}/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
198
+ RUN rm -rf ${CONDA_DIR}/condabin && ln -s ${CONDA_DIR}/bin ${CONDA_DIR}/condabin
199
+
200
+ # Cleanup
201
+ RUN rm -rf /tmp/* \
202
+ && rm -rf $HOME/.cache/.pip/* \
203
+ && mamba clean --all -f -y \
204
+ && find ${CONDA_DIR} -type f -name '*.a' -delete \
205
+ && find ${CONDA_DIR} -type f -name '*.pyc' -delete \
206
+ && find ${CONDA_DIR} -type f -name '*.js.map' -delete \
207
+ && (find ${CONDA_DIR}/lib/python3.10/site-packages/bokeh/server/static -type f,l -name '*.js' -not -name '*.min.js' -delete || echo "no bokeh static files to cleanup") \
208
+ && rm -rf ${CONDA_DIR}/pkgs
209
+
210
+ # Mkdir CVMFS mount directory. Mount done upstream in configs. Harmless
211
+ # if not utilized, crucial if CVMFS is desired
212
+ RUN mkdir /cvmfs
213
+
214
+ # Prepare HTCondor spec. environment and execute dask-worker command
215
+ # If we using this container as a sidecar, we don't setup any HTCondor spec. environment
216
+ # nor and execute dask-worker command
217
+ ADD prepare-env/prepare-env-cc-analysis.sh /usr/local/bin/prepare-env.sh
218
+ RUN chmod ugo+x /usr/local/bin/prepare-env.sh
219
+
220
+ USER $NB_USER
221
+ ENTRYPOINT ["tini", "-g", "--", "/usr/local/bin/prepare-env.sh"]
@@ -0,0 +1,217 @@
1
+ #FROM coffeateam/coffea-base-almalinux8:0.7.22-py3.10
2
+ FROM coffeateam/coffea-dask-almalinux9:latest-py3.10
3
+
4
+
5
+ USER root
6
+ LABEL maintainer="Oksana Shadura <ksu.shadura@gmail.com>"
7
+ # Jupyterhub
8
+ ARG TAG="development"
9
+ ARG NB_USER="cms-jovyan"
10
+ ARG NB_UID="6440"
11
+ ARG NB_GID="11265"
12
+ ARG CERT_DIR="/etc/cmsaf-secrets"
13
+ # Hack for GH Actions
14
+ ARG GITHUB_ACTIONS="false"
15
+ # FIX ME AFTER TEST:
16
+ #ARG BEARER_TOKEN_FILE="/tmp/.xcache/access_token"
17
+ ARG BEARER_TOKEN_FILE="/tmp/.xcache/access_token"
18
+ ARG SEC_TOKEN_SYSTEM_DIRECTORY="/tmp/.condor"
19
+ ARG XCACHE_HOST="xcache.cmsaf-dev.flatiron.hollandhpc.org"
20
+ #ARG XCACHE_HOST="red-xcache1.unl.edu"
21
+
22
+ # Configure environment
23
+ ENV CONDA_DIR /usr/local
24
+ ENV CERT_DIR $CERT_DIR
25
+ ENV XCACHE_HOST $XCACHE_HOST
26
+ ENV BEARER_TOKEN_FILE $BEARER_TOKEN_FILE
27
+ ENV SEC_TOKEN_SYSTEM_DIRECTORY $SEC_TOKEN_SYSTEM_DIRECTORY
28
+ ENV SHELL /bin/bash
29
+ ENV NB_USER $NB_USER
30
+ ENV USER $NB_USER
31
+ ENV NB_UID $NB_UID
32
+ ENV NB_GID $NB_GID
33
+ ENV HOME /home/$NB_USER
34
+ ENV PATH "${CONDA_DIR}/bin/:$PATH"
35
+ ENV LC_ALL en_US.UTF-8
36
+ ENV LANG en_US.UTF-8
37
+ ENV LANGUAGE en_US.UTF-8
38
+
39
+ # Install all OS dependencies for notebook server that starts but lacks all
40
+ # features (e.g., download as all possible file formats)
41
+ RUN yum -y update \
42
+ && yum -y group install "Development Tools" \
43
+ && yum -y install \
44
+ wget \
45
+ epel-release \
46
+ gettext \
47
+ bzip2 \
48
+ ca-certificates \
49
+ sudo \
50
+ langpacks-en \
51
+ glibc-langpack-en \
52
+ glibc-all-langpacks \
53
+ liberation-fonts \
54
+ wget \
55
+ nss_wrapper \
56
+ openssl \
57
+ emacs \
58
+ git \
59
+ unzip \
60
+ nano \
61
+ vim \
62
+ net-tools \
63
+ libXext \
64
+ libSM \
65
+ libXrender \
66
+ nc \
67
+ openssh-clients \
68
+ tzdata \
69
+ unzip \
70
+ gdb \
71
+ && yum clean all && rm -rf /var/cache/yum
72
+
73
+ ENV TINI_VERSION v0.19.0
74
+ ADD https://github.com/krallin/tini/releases/download/${TINI_VERSION}/tini-static-amd64 /usr/bin/tini
75
+ RUN chmod +x /usr/bin/tini
76
+
77
+ # Copy a script that we will use to correct permissions after running certain commands
78
+ COPY jupyterhub/fix-permissions /usr/local/bin/fix-permissions
79
+ RUN chmod a+rx /usr/local/bin/fix-permissions
80
+
81
+ RUN rm -rf /etc/grid-security && \
82
+ ln -s /usr/local/etc/grid-security /etc/grid-security && \
83
+ chmod 755 /etc/grid-security/certificates && \
84
+ chmod g-w /etc/grid-security/certificates
85
+
86
+ # Enable prompt color in the skeleton .bashrc before creating the default NB_USER
87
+ # hadolint ignore=SC2016
88
+ RUN sed -i 's/^#force_color_prompt=yes/force_color_prompt=yes/' /etc/skel/.bashrc && \
89
+ # Add call to conda init script see https://stackoverflow.com/a/58081608/4413446
90
+ echo 'eval "$(command conda shell.bash hook 2> /dev/null)"' >> /etc/skel/.bashrc
91
+
92
+ # Create NB_USER with name jovyan user with given UID and in the 'users' group
93
+ # and make sure these dirs are writable by the `users` group.
94
+ RUN echo "auth requisite pam_deny.so" >> /etc/pam.d/su && \
95
+ sed -i.bak -e 's/^%admin/#%admin/' /etc/sudoers && \
96
+ sed -i.bak -e 's/^%sudo/#%sudo/' /etc/sudoers && \
97
+ groupadd -r "${NB_USER}" --gid "$NB_GID" && \
98
+ useradd -l -m -s /bin/bash -N -u "${NB_UID}" "${NB_USER}" && \
99
+ mkdir -p "${CONDA_DIR}" && \
100
+ mkdir -p "${CERT_DIR}" && \
101
+ mkdir -p /var/lib/condor && \
102
+ chown -R "${NB_USER}:${NB_GID}" "${CONDA_DIR}" && \
103
+ chown -R "${NB_USER}:${NB_GID}" "${HOME}" && \
104
+ chmod g+w /etc/passwd && \
105
+ fix-permissions "${HOME}" && \
106
+ fix-permissions "${CONDA_DIR}"
107
+
108
+ USER $NB_USER
109
+ WORKDIR $HOME
110
+ # Setup work directory for backward-compatibility
111
+ RUN mkdir $HOME/work && \
112
+ mkdir -p $HOME/.local && \
113
+ mkdir -p $HOME/.condor/tokens.d && \
114
+ fix-permissions $HOME
115
+
116
+ #Dask dependencies and HTCondor
117
+ RUN mamba install --yes \
118
+ -c conda-forge \
119
+ xgboost \
120
+ pyhf \
121
+ xrootd \
122
+ scipy>=1.8.1 \
123
+ cabinetry \
124
+ vector \
125
+ hist \
126
+ mplhep \
127
+ iminuit \
128
+ cmake \
129
+ ndcctools \
130
+ && mamba clean \
131
+ --all \
132
+ --force-pkgs-dirs \
133
+ --yes
134
+
135
+ RUN pip install --no-cache-dir \
136
+ aiostream \
137
+ supervisor \
138
+ correctionlib \
139
+ funcx \
140
+ pyyaml \
141
+ # ML packages
142
+ dask-ml \
143
+ dask-gateway \
144
+ prometheus_client \
145
+ comm>=0.1.2 \
146
+ mlflow
147
+
148
+ #RUN if [ "${TAG:-}" == "development" ]; then pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa ; else pip install --no-cache-dir coffea_casa -U ; fi
149
+ RUN pip install --no-cache-dir git+https://github.com/CoffeaTeam/coffea-casa.git#egg=coffea_casa
150
+
151
+ # ------- xrootd-xcache-plugin -------------------------------
152
+ RUN cd /tmp && \
153
+ git clone -b xcache https://github.com/jthiltges/xrdcl-authz-plugin.git && \
154
+ cd xrdcl-authz-plugin && \
155
+ mkdir build && \
156
+ cd build && \
157
+ cmake /tmp/xrdcl-authz-plugin -DCMAKE_INSTALL_PREFIX=${CONDA_DIR} && \
158
+ make && \
159
+ make install
160
+
161
+ ENV XRD_PLUGINCONFDIR="${CONDA_DIR}/etc/xrootd/client.plugins.d/"
162
+ ENV XRD_PLUGIN="${CONDA_DIR}/lib/libXrdClXcachePlugin-5.so"
163
+
164
+ # Include additional CA certificates beyond ca-policy-lcg
165
+ COPY certs/* /etc/grid-security/certificates/
166
+ RUN openssl rehash /etc/grid-security/certificates/
167
+
168
+ # TODO: RETEST IF WE STILL NEED THIS
169
+ ENV LD_LIBRARY_PATH="${CONDA_DIR}/lib/:$LD_LIBRARY_PATH"
170
+ ENV PATH="${CONDA_DIR}/bin/:$PATH"
171
+
172
+ USER root
173
+ # Setup supervisord files
174
+ COPY k8s-worker/supervisord.conf /etc/supervisor/
175
+ # Setup HTCondor user/group and change group for user $NB_USER
176
+ # Fix error (submitting jobs as user/group 0 (root) is not allowed for security reasons) and
177
+ # it configured from kubernetes side and updated in docker container to match it
178
+ RUN groupadd -r condor && \
179
+ useradd -r -g condor -d /var/lib/condor -s /sbin/nologin condor
180
+
181
+ # FIXME: merge PRs open in distributed.git (oshadura)
182
+ # Distributed: we need to install patched version of distributed version
183
+ COPY dask/distributed ${CONDA_DIR}/lib/python3.10/site-packages/distributed
184
+ RUN cd ${CONDA_DIR}/lib/python3.10/site-packages/distributed && \
185
+ patch -p2 < 0001-Patch-from-bbockelman-adaptive-scaling.patch && \
186
+ patch -p2 < 0002-Allow-scheduler-to-preserve-worker-hostnames.patch
187
+ # && patch -p2 < 0003-Activate-patch.patch
188
+ # && patch -p2 < 0004-Add-possibility-to-setup-external_adress-for-schedul.patch
189
+ # && patch -p2 < 0005-Add-nanny-patch.patch
190
+
191
+ # FIXME: we have a wrong path, let's make a link.
192
+ # cms-jovyan@jupyter-oksana-2eshadura-40cern-2ech:~$ echo $PATH
193
+ # ${CONDA_DIR}/condabin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
194
+ RUN rm -rf ${CONDA_DIR}/condabin && ln -s ${CONDA_DIR}/bin ${CONDA_DIR}/condabin
195
+
196
+ # Cleanup
197
+ RUN rm -rf /tmp/* \
198
+ && rm -rf $HOME/.cache/.pip/* \
199
+ && mamba clean --all -f -y \
200
+ && find ${CONDA_DIR} -type f -name '*.a' -delete \
201
+ && find ${CONDA_DIR} -type f -name '*.pyc' -delete \
202
+ && find ${CONDA_DIR} -type f -name '*.js.map' -delete \
203
+ && (find ${CONDA_DIR}/lib/python3.10/site-packages/bokeh/server/static -type f,l -name '*.js' -not -name '*.min.js' -delete || echo "no bokeh static files to cleanup") \
204
+ && rm -rf ${CONDA_DIR}/pkgs
205
+
206
+ # Mkdir CVMFS mount directory. Mount done upstream in configs. Harmless
207
+ # if not utilized, crucial if CVMFS is desired
208
+ RUN mkdir /cvmfs
209
+
210
+ # Prepare HTCondor spec. environment and execute dask-worker command
211
+ # If we using this container as a sidecar, we don't setup any HTCondor spec. environment
212
+ # nor and execute dask-worker command
213
+ ADD prepare-env/prepare-env-cc-analysis.sh /usr/local/bin/prepare-env.sh
214
+ RUN chmod ugo+x /usr/local/bin/prepare-env.sh
215
+
216
+ USER $NB_USER
217
+ ENTRYPOINT ["tini", "-g", "--", "/usr/local/bin/prepare-env.sh"]