coffea-casa 2023.12.12.post1__tar.gz → 2024.8.7__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.
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/dockercd-dev.yml +1 -1
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/dockerci-dev.yml +1 -1
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/PKG-INFO +2 -2
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/_version.py +2 -2
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/coffea_casa.py +2 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/jobqueue-coffea-casa.yaml +2 -1
- coffea_casa-2024.8.7/docker/Dockerfile.cc-analysis-alma8 +221 -0
- coffea_casa-2024.8.7/docker/Dockerfile.cc-analysis-alma9 +217 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/Dockerfile.cc-analysis-centos7 +58 -53
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/Dockerfile.cc-analysis-ubuntu +3 -3
- coffea_casa-2024.8.7/docker/Dockerfile.cc-base-alma8 +327 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/Dockerfile.cc-base-centos7 +112 -66
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/Dockerfile.cc-base-ubuntu +3 -3
- coffea_casa-2024.8.7/docker/Dockerfile.cc-dask-alma8 +335 -0
- coffea_casa-2024.8.7/docker/Dockerfile.cc-dask-alma9 +332 -0
- coffea_casa-2024.8.7/docker/README.IDAP.md +12 -0
- coffea_casa-2024.8.7/docker/certs/isrgrootx1.pem +31 -0
- coffea_casa-2024.8.7/docker/certs/lets-encrypt-r3.pem +30 -0
- coffea_casa-2024.8.7/docker/certs/lets-encrypt-r4.pem +30 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/dask.yaml +6 -4
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/jobqueue-coffea-casa.yaml +2 -1
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/prepare-env/prepare-env-cc-analysis.sh +49 -21
- coffea_casa-2023.12.12.post1/docker/Dockerfile.cc-centos7 +0 -116
- coffea_casa-2023.12.12.post1/docker/prepare-env/prepare-env-cc-base.sh +0 -45
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.gitattributes +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/dependabot.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/charts-lint.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/charts-publish.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/charts-test-minikube.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/charts-test.yaml_k3d +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/pypi-ci.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.github/workflows/pypi-tag-deploy.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.gitignore +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.gitmodules +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.pre-commit-config.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/.readthedocs.yml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/LICENSE +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/MAINTAINERS +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/MANIFEST.in +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/README.md +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/chartpress.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/.helmignore +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/Chart.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/README.md +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/ingressroute.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/ingressroutetcp.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/ingressrouteudp.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/middlewares.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/middlewarestcp.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/serverstransports.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/tlsoptions.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/tlsstores.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/crds/traefikservices.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/docs/DEVNOTES.md +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/files/hub-extra/auth.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/files/hub-extra/oauthenticator-coffea.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/files/hub-extra/oauthenticator-generic.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/files/hub-extra/oauthenticator-oauth2-14.2.0.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/files/hub-extra/secret_creation_hook.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/pebble-config.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/schema.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/NOTES.txt +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/_helpers.tpl +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/af-secrets.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/hub-extra-config-d.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/hub-extra-rbac.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/traefik/deployment.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/traefik/service.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/traefik/traefik-dashboard.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/templates/traefik/traefik-rbac.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/unl-extra/login.html +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/unl-extra/logo.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/unl-extra/logo.png.bin +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/values-prod.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/coffea-casa/values.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/dev-requirements.txt +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/charts/requirements.txt +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/ci/common +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/__init__.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/_version.pyi +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/config.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/coffea_casa/plugin.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/README.md +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/ceph/ceph.conf +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/ceph/keyring +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/certs/hcc-flatiron.pem +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/condor/condor_config +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/condor/config.d/99-coffea-condor-master-config +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/dask_tls.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/distributed/0001-Patch-from-bbockelman-adaptive-scaling.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/distributed/0002-Allow-scheduler-to-preserve-worker-hostnames.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/distributed/0003-Activate-patch.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/distributed/0004-Add-possibility-to-setup-external_adress-for-schedul.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/distributed/0005-Add-nanny-patch.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/dask/labextension.yaml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/fix-permissions +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/jupyter_notebook_config.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/jupyterlab-workspace.json +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/start-notebook.sh +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/start-singleuser.sh +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/jupyterhub/start.sh +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/k8s-worker/supervisord.conf +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/prepare-env/prepare-env-cc.sh +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/skyhook/.coffea.toml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/skyhook/build-skyhook.sh +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docker/uproot/uproot_xrd_source.patch +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/Makefile +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/atlas-auth.web.cern.ch_login.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/browser.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-cilogon.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-email.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-enter.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-invitation.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-login.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-reg1.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-reg2.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/cc-request.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-authz-approval.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-authz.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-connection_success.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-dashboard.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-dashboard_taskstream.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-dashboard_workers.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-draft.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-enter.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-image.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-labext.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-newlauncher.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-newtab.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-performance_report.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-pytest.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-resources.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-server_stop.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-start.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-startr.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea-casa-tutorials.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea.af.uchicago.edu_hub_login.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea.af.uchicago.edu_hub_spawn.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea.af.uchicago.edu_user_clusters.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea.af.uchicago.edu_user_clusters.scale.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/coffea.af.uchicago.edu_user_fengping.hu.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/dask-labextention-address.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/example1-plot.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/examplezpeak-plot.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/git.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/git2.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/servicex-coffea-workflow.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/servicex-dashboard.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/servicex-profile.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/_static/servicex-registration.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_api.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_condor.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_configuration.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_deployment.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_issues.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_metrics.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_packages.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_setup.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_support.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_user.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/cc_user_registration.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/conf.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/agc_schema.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/analysis-casa.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/analysis_tutorial.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/coffea-casa-template.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/coffea_analysis.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example1.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example2.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example3.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example4.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example5.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example6.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example7.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/example8.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/ttbar_HT.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/utilities/columnar.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/utilities/processor.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/gallery/zpeak_example.ipynb +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/index.rst +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs/make.bat +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_B&W_500X500.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_IconOnlyI_B&W_500X500.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/B&W/CoffeaCasa_InverseB&W_500X500.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_1080X1080_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_Brown_500X500_WhiteBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_IconOnly_Brown_500X500_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Brown/CoffeaCasa_TextOnly_1080X182_Brown.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_IconOnly_Purple_500X500_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_1080X1080_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_TransparentBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_Purple_500X500_WhiteBG.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/docs-img/logo/coffea-casa-img/Purple/CoffeaCasa_TextOnly_1080X182_Purple.png +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/pyproject.toml +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/requirements.txt +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests/ca.pem +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests/key.pem +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests/test_coffeacasa.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests/test_coffeacasa_args.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests/test_config.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests-charts/conftest.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tests-charts/test_hub.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tools/generate-json-schema.py +0 -0
- {coffea_casa-2023.12.12.post1 → coffea_casa-2024.8.7}/tools/values.lint-validate.yaml +0 -0
|
@@ -20,7 +20,7 @@ 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
24
|
# Keep this line in sync with gh actions @ coffea-dask repo
|
|
25
25
|
# python: [3.8, 3.9, '3.10']
|
|
26
26
|
#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-base-ubuntu, cc-analysis-ubuntu, cc-dask-alma8, cc-analysis-alma8, 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
|
+
Metadata-Version: 2.3
|
|
2
2
|
Name: coffea-casa
|
|
3
|
-
Version:
|
|
3
|
+
Version: 2024.8.7
|
|
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 = '
|
|
16
|
-
__version_tuple__ = version_tuple = (
|
|
15
|
+
__version__ = version = '2024.8.7'
|
|
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: "
|
|
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"]
|