From 6738a10ab9dacd3640f58bceada5e3716a4e99cb Mon Sep 17 00:00:00 2001 From: Rohan Jha Date: Wed, 10 Jan 2024 13:10:32 +0400 Subject: [PATCH 01/10] added packages for econ 148 --- deployments/data100/image/environment.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/deployments/data100/image/environment.yml b/deployments/data100/image/environment.yml index d19be1116..48ebacd21 100644 --- a/deployments/data100/image/environment.yml +++ b/deployments/data100/image/environment.yml @@ -35,6 +35,10 @@ dependencies: - tensorflow-cpu==2.12.1 - sqlalchemy==2.0.16 - mlxtend==0.23.0 +- geopandas==0.14.2 +- geopy==2.4.1 +- lifelines==0.27.8 +- pycountry==22.3.5 - pip - pip: # - -r infra-requirements.txt @@ -46,3 +50,4 @@ dependencies: - pytest-notebook==0.8.1 - gh-scoped-creds==4.1 - git+https://github.com/shaneknapp/python-popularity-contest.git@add-error-handling + - ydata-profiling==4.6.4 From 50b8a8fb713969bed0b7bb50ee1ad2e0c46e0240 Mon Sep 17 00:00:00 2001 From: Balaji Alwar Date: Wed, 10 Jan 2024 11:23:08 -0800 Subject: [PATCH 02/10] Removing/commenting out packages for LS 22 --- deployments/datahub/images/default/environment.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/deployments/datahub/images/default/environment.yml b/deployments/datahub/images/default/environment.yml index 33a976bc9..97fdfdecb 100644 --- a/deployments/datahub/images/default/environment.yml +++ b/deployments/datahub/images/default/environment.yml @@ -28,11 +28,10 @@ dependencies: - nltk=3.6.* # 3577, L&S 22, Spring 2023 -- spacy-model-en_core_web_sm=3.4.0 -- spacy-model-en_core_web_lg=3.4.0 -- spacy-model-en_core_web_md=3.4.0 -- spacy-model-en_core_web_trf=3.4.0 -- lemminflect=0.2.2 +# Packages listed below will be used during SP 25 +# - spacy-model-en_core_web_sm=3.4.0 +# - spacy-model-en_core_web_md=3.4.0 +# - lemminflect=0.2.2 # EPS88, data100 # https://github.com/berkeley-dsep-infra/datahub/issues/1796 From bfa5f41f7b8f3f625ccda9859fc7b2e837469ada Mon Sep 17 00:00:00 2001 From: Balaji Alwar Date: Wed, 10 Jan 2024 11:41:03 -0800 Subject: [PATCH 03/10] Increase RAM to 4GB for ARE 212 and ENVECON 153 --- deployments/datahub/config/common.yaml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/deployments/datahub/config/common.yaml b/deployments/datahub/config/common.yaml index b5f9f2376..32087ab7c 100644 --- a/deployments/datahub/config/common.yaml +++ b/deployments/datahub/config/common.yaml @@ -173,3 +173,9 @@ jupyterhub: mountPath: /home/jovyan/ugba-88 subPath: _shared/course/ugba-88 readOnly: true + course::1530121: # ARE 212, Spring 2024, issue #5278 + mem_limit: 4096M + mem_guarantee: 4096M + course::1531172: # ENVECON 153, Spring 2024, issue #5279 + mem_limit: 4096M + mem_guarantee: 4096M From 677d4f28f8bd44c7471ac5e703defaf787cac2a9 Mon Sep 17 00:00:00 2001 From: Ryan Lovett Date: Wed, 10 Jan 2024 14:31:09 -0800 Subject: [PATCH 04/10] Remove old oauth services configuration. This was used by datahub hub when it was handling authentication for the other hubs. We transitioned several semesters back to each hub doing its own authentication when it was necessary for each to be able to access per-user Canvas information. --- deployments/datahub/config/prod.yaml | 73 ------------------------ deployments/datahub/config/staging.yaml | 74 ------------------------- 2 files changed, 147 deletions(-) diff --git a/deployments/datahub/config/prod.yaml b/deployments/datahub/config/prod.yaml index 504651186..2755d7a84 100644 --- a/deployments/datahub/config/prod.yaml +++ b/deployments/datahub/config/prod.yaml @@ -10,79 +10,6 @@ jupyterhub: hosts: - datahub.berkeley.edu hub: - services: - cee.datahub.berkeley.edu: - name: cee.datahub.berkeley.edu - oauth_client_id: service-cee.datahub.berkeley.edu - oauth_redirect_uri: https://cee.datahub.berkeley.edu/hub/oauth_callback - astro.datahub.berkeley.edu: - name: astro.datahub.berkeley.edu - oauth_client_id: service-astro.datahub.berkeley.edu - oauth_redirect_uri: https://astro.datahub.berkeley.edu/hub/oauth_callback - data8.datahub.berkeley.edu: - name: data8.datahub.berkeley.edu - oauth_client_id: service-data8.datahub.berkeley.edu - oauth_redirect_uri: https://data8.datahub.berkeley.edu/hub/oauth_callback - data100.datahub.berkeley.edu: - name: data100.datahub.berkeley.edu - oauth_client_id: service-data100.datahub.berkeley.edu - oauth_redirect_uri: https://data100.datahub.berkeley.edu/hub/oauth_callback - data101.datahub.berkeley.edu: - name: data101.datahub.berkeley.edu - oauth_client_id: service-data101.datahub.berkeley.edu - oauth_redirect_uri: https://data101.datahub.berkeley.edu/hub/oauth_callback - data102.datahub.berkeley.edu: - name: data102.datahub.berkeley.edu - oauth_client_id: service-data102.datahub.berkeley.edu - oauth_redirect_uri: https://data102.datahub.berkeley.edu/hub/oauth_callback - dlab.datahub.berkeley.edu: - name: dlab.datahub.berkeley.edu - oauth_client_id: service-dlab.datahub.berkeley.edu - oauth_redirect_uri: https://dlab.datahub.berkeley.edu/hub/oauth_callback - eecs.datahub.berkeley.edu: - name: eecs.datahub.berkeley.edu - oauth_client_id: service-eecs.datahub.berkeley.edu - oauth_redirect_uri: https://eecs.datahub.berkeley.edu/hub/oauth_callback - ischool.datahub.berkeley.edu: - name: ischool.datahub.berkeley.edu - oauth_client_id: service-ischool.datahub.berkeley.edu - oauth_redirect_uri: https://ischool.datahub.berkeley.edu/hub/oauth_callback - julia.datahub.berkeley.edu: - name: julia.datahub.berkeley.edu - oauth_client_id: service-julia.datahub.berkeley.edu - oauth_redirect_uri: https://julia.datahub.berkeley.edu/hub/oauth_callback - logodev.datahub.berkeley.edu: - name: logodev.datahub.berkeley.edu - oauth_client_id: service-logodev.datahub.berkeley.edu - oauth_redirect_uri: https://logodev.datahub.berkeley.edu/hub/oauth_callback - prob140.datahub.berkeley.edu: - name: prob140.datahub.berkeley.edu - oauth_client_id: service-prob140.datahub.berkeley.edu - oauth_redirect_uri: https://prob140.datahub.berkeley.edu/hub/oauth_callback - r.datahub.berkeley.edu: - name: r.datahub.berkeley.edu - oauth_client_id: service-r.datahub.berkeley.edu - oauth_redirect_uri: https://r.datahub.berkeley.edu/hub/oauth_callback - publichealth.datahub.berkeley.edu: - name: publichealth.datahub.berkeley.edu - oauth_client_id: service-publichealth.datahub.berkeley.edu - oauth_redirect_uri: https://publichealth.datahub.berkeley.edu/hub/oauth_callback - stat159.datahub.berkeley.edu: - name: stat159.datahub.berkeley.edu - oauth_client_id: service-stat159.datahub.berkeley.edu - oauth_redirect_uri: https://stat159.datahub.berkeley.edu/hub/oauth_callback - stat20.datahub.berkeley.edu: - name: stat20.datahub.berkeley.edu - oauth_client_id: service-stat20.datahub.berkeley.edu - oauth_redirect_uri: https://stat20.datahub.berkeley.edu/hub/oauth_callback - shiny.datahub.berkeley.edu: - name: shiny.datahub.berkeley.edu - oauth_client_id: service-shiny.datahub.berkeley.edu - oauth_redirect_uri: https://shiny.datahub.berkeley.edu/hub/oauth_callback - a11y.datahub.berkeley.edu: - name: a11y.datahub.berkeley.edu - oauth_client_id: service-a11y.datahub.berkeley.edu - oauth_redirect_uri: https://a11y.datahub.berkeley.edu/hub/oauth_callback db: pvc: # This also holds logs diff --git a/deployments/datahub/config/staging.yaml b/deployments/datahub/config/staging.yaml index 5b888cbac..2602185a2 100644 --- a/deployments/datahub/config/staging.yaml +++ b/deployments/datahub/config/staging.yaml @@ -3,80 +3,6 @@ nfsPVC: shareName: shares/datahub/staging jupyterhub: - hub: - services: - cee-staging.datahub.berkeley.edu: - name: cee-staging.datahub.berkeley.edu - oauth_client_id: service-cee-staging.datahub.berkeley.edu - oauth_redirect_uri: https://cee-staging.datahub.berkeley.edu/hub/oauth_callback - astro-staging.datahub.berkeley.edu: - name: astro-staging.datahub.berkeley.edu - oauth_client_id: service-astro-staging.datahub.berkeley.edu - oauth_redirect_uri: https://astro-staging.datahub.berkeley.edu/hub/oauth_callback - data8-staging.datahub.berkeley.edu: - name: data8-staging.datahub.berkeley.edu - oauth_client_id: service-data8-staging.datahub.berkeley.edu - oauth_redirect_uri: https://data8-staging.datahub.berkeley.edu/hub/oauth_callback - data100-staging.datahub.berkeley.edu: - name: data100-staging.datahub.berkeley.edu - oauth_client_id: service-data100-staging.datahub.berkeley.edu - oauth_redirect_uri: https://data100-staging.datahub.berkeley.edu/hub/oauth_callback - data101-staging.datahub.berkeley.edu: - name: data101-staging.datahub.berkeley.edu - oauth_client_id: service-data101-staging.datahub.berkeley.edu - oauth_redirect_uri: https://data101-staging.datahub.berkeley.edu/hub/oauth_callback - data102-staging.datahub.berkeley.edu: - name: data102-staging.datahub.berkeley.edu - oauth_client_id: service-data102-staging.datahub.berkeley.edu - oauth_redirect_uri: https://data102-staging.datahub.berkeley.edu/hub/oauth_callback - dlab-staging.datahub.berkeley.edu: - name: dlab-staging.datahub.berkeley.edu - oauth_client_id: service-dlab-staging.datahub.berkeley.edu - oauth_redirect_uri: https://dlab-staging.datahub.berkeley.edu/hub/oauth_callback - eecs-staging.datahub.berkeley.edu: - name: eecs-staging.datahub.berkeley.edu - oauth_client_id: service-eecs-staging.datahub.berkeley.edu - oauth_redirect_uri: https://eecs-staging.datahub.berkeley.edu/hub/oauth_callback - ischool-staging.datahub.berkeley.edu: - name: ischool-staging.datahub.berkeley.edu - oauth_client_id: service-ischool-staging.datahub.berkeley.edu - oauth_redirect_uri: https://ischool-staging.datahub.berkeley.edu/hub/oauth_callback - logodev-staging.datahub.berkeley.edu: - name: logodev-staging.datahub.berkeley.edu - oauth_client_id: service-logodev-staging.datahub.berkeley.edu - oauth_redirect_uri: https://logodev-staging.datahub.berkeley.edu/hub/oauth_callback - julia-staging.datahub.berkeley.edu: - name: julia-staging.datahub.berkeley.edu - oauth_client_id: service-julia-staging.datahub.berkeley.edu - oauth_redirect_uri: https://julia-staging.datahub.berkeley.edu/hub/oauth_callback - prob140-staging.datahub.berkeley.edu: - name: prob140-staging.datahub.berkeley.edu - oauth_client_id: service-prob140-staging.datahub.berkeley.edu - oauth_redirect_uri: https://prob140-staging.datahub.berkeley.edu/hub/oauth_callback - publichealth-staging.datahub.berkeley.edu: - name: publichealth-staging.datahub.berkeley.edu - oauth_client_id: service-publichealth-staging.datahub.berkeley.edu - oauth_redirect_uri: https://publichealth-staging.datahub.berkeley.edu/hub/oauth_callback - r-staging.datahub.berkeley.edu: - name: r-staging.datahub.berkeley.edu - oauth_client_id: service-r-staging.datahub.berkeley.edu - oauth_redirect_uri: https://r-staging.datahub.berkeley.edu/hub/oauth_callback - stat159-staging.datahub.berkeley.edu: - name: stat159-staging.datahub.berkeley.edu - oauth_client_id: service-stat159-staging.datahub.berkeley.edu - oauth_redirect_uri: https://stat159-staging.datahub.berkeley.edu/hub/oauth_callback - stat20-staging.datahub.berkeley.edu: - name: stat20-staging.datahub.berkeley.edu - oauth_client_id: service-stat20-staging.datahub.berkeley.edu - oauth_redirect_uri: https://stat20-staging.datahub.berkeley.edu/hub/oauth_callback - shiny-staging.datahub.berkeley.edu: - name: shiny-staging.datahub.berkeley.edu - oauth_client_id: service-shiny-staging.datahub.berkeley.edu - oauth_redirect_uri: https://shiny-staging.datahub.berkeley.edu/hub/oauth_callback - a11y-staging.datahub.berkeley.edu: - name: a11y-staging.datahub.berkeley.edu - oauth_client_id: service-a11y-staging.datahub.berkeley.edu - oauth_redirect_uri: https://a11y-staging.datahub.berkeley.edu/hub/oauth_callback scheduling: userPlaceholder: enabled: false From 7d5282ab5e75bbacfba898f284887aa2eddb203f Mon Sep 17 00:00:00 2001 From: Ryan Lovett Date: Wed, 10 Jan 2024 14:37:13 -0800 Subject: [PATCH 05/10] Remove unused service secrets. --- deployments/datahub/secrets/prod.yaml | 59 +++++---------------- deployments/datahub/secrets/staging.yaml | 67 ++++++------------------ 2 files changed, 28 insertions(+), 98 deletions(-) diff --git a/deployments/datahub/secrets/prod.yaml b/deployments/datahub/secrets/prod.yaml index a2faa5931..9b6ee4c90 100644 --- a/deployments/datahub/secrets/prod.yaml +++ b/deployments/datahub/secrets/prod.yaml @@ -2,41 +2,6 @@ etcGitConfig: githubAppPrivateKey: ENC[AES256_GCM,data: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,iv:xMGXbvawOcOVvUTm5MwbBa7o2HzU4ErIBnmjWUDZIYs=,tag:msoj0Sg+Ktq5ghBrt0N9LQ==,type:str] jupyterhub: hub: - services: - cee.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:dFy/RhyNHBAj46gDYyYOg/J6L5+PMtNKsvwIfyYiPEFeCd94ipSchwUQ5269WiyLVtRWpEFRpSYSvNee5S6fzg==,iv:2qN9FqE/beivaYltCFlxnq4vNSBN+juOGdDSCRItALU=,tag:+5s9zjwaXt4Ktt1DFf1Pkg==,type:str] - astro.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:vmA3eyD3d8X2AQBY8izxBoHF3ZTc1x1WgFaGs/xeKkG3lOS9I7Zv8jn8ZidZqKkerM8Rsfa0iHWzGuXeEgP3ww==,iv:+cmA1GnKT5Y5p67RlXP0jfpGjhm2uiM2a8llIJGSwjk=,tag:q/zOEVTUNr4Der/NpicWmQ==,type:str] - data8.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:FH5qc0IMIp5wOJyuqmysvXxjtdeGzNFenXUJXrS9dZu3fhpx+Fw8AdJQgEdn9xiVXCd6BJK6iaNJHG4jthFGww==,iv:Hsgfi58iDuXH0xVfcq5HZBan5EpKhEKfYFKzapQTACA=,tag:cSKD4oy73mZOB7WvDuT3ng==,type:str] - data100.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:Q26UILVRnynDNQsl3GZZZhA+Z3lztfgHJXdF/4feW5jTbWjm0Rs6RQxiXzTMUO5mgwc2Lq7T+OmzUiLE2PnUtw==,iv:Z3uowvX2uZ6qDelJdy0oo/Y/dVUZNZOM8Xrb2fdpd4w=,tag:hgrgwmDDvCQWhSZZrwHiow==,type:str] - data101.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:QyffzbZ0RVzRJhJt0iIGZ33WBaBjTYE4EruR1cyigUj9j8SF7kh+lvA2RM5xSy88b7+7QtTf1XFufIUtmcC+JQ==,iv:G3PmrNV3c8flbPw589MZrlAVF5UYNMgrRebmMjfpS2o=,tag:7AUNikhaPUlQAMXyuhMbCw==,type:str] - data102.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:mUK8gDjoJ/gMqBNhRvp+A41JDBoN2aHxaHpNGpxGTIcSzcVKWxlryAdJe3/wZw4IKbzZGzLS2rezXCzF68L6qg==,iv:KRdwki7BoDk/L/cxw7KOH4mJeEZjW5qidIVduqBamA0=,tag:ydGwZxDpqCdeplp6GEz+wQ==,type:str] - dlab.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:9/x/E0Hfb7uuiaeASot4vbCE4nBGNKW19XggeMROwj0k6K9rH8HIcg6KhTGnHsF2+6v/0Wa190mOG6J8yqtAGA==,iv:UtS+7JAXyHpFaan0F105e7lEdv3zA2RMM9J3nVf0NtA=,tag:1Qt2JSwifEJ7S/3JK2Vv/w==,type:str] - eecs.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:SlGnEqix+2xes0fY/wYS8KoytXR0v+xH7YahSDGFrfCfmB0ZoapTb3sLMzBiEoHtqKrxY0m4p1pZxFOSq/QhdA==,iv:n8LETf8ZRs8ID+zDvoGBXlVzr6cJETLtTGVfWvqmvEA=,tag:LVsUBzmGeJZ3LbVkQmVmUw==,type:str] - ischool.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:xKGyfcNUtiJifQYr54VlLWGdh+o+d57RrQg5DX/ZI8OLreYO+k3BcOKNZYbO+rLcn5MIuQiB8PJ70IEOPdnF6g==,iv:KEk1T1JhHHAllZi6JmTi16+NsgJDHIwp7aUdnQdLZsk=,tag:NNfiv2EQfUcpHPO+kgZDdw==,type:str] - julia.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:aFLgSrV0uVqbNv0u8qxpZ+AwrV1lKH80KtzJnp2nzRMiphshuwMfblKU0dXG1xV1OIjQ1SlqkVFoMJGScBgldA==,iv:K6gBZmCZ1LefdmLvNiP8oQs4A0nc+v1ksgUTboy73b4=,tag:s+nz6T0ugzOp2vIAdmkYMQ==,type:str] - prob140.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:Ah7DZhnI3NVsnr41x+uKvC+QRqWPmN/vMHz4GXgY7uq5vIhWSkxoQuyZVBHVNs7pZ8BscZ9uJ9DW8GERgOZJsA==,iv:j0cglFR+MAc/L5OHQcjrN+FnQUPepiks3lM6824EjDM=,tag:UutZtgfEyJDgQBRitUevpA==,type:str] - publichealth.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:GBNY8vb0ZD/Lx2qO7wwURLWFunRm8sAO3xcfQaqHKdBbujKR35MrJ38ZKR1Y8TaEdsImifRZE9jGMaGSOiVbog==,iv:A22roc6Yq+IkOBKu3PWJ/ZgzvFsg6M6OX6KmYwUnt7U=,tag:wGbgHeVO2An8ITyc6ZDPog==,type:str] - r.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:1JVVDSVpvdriGGLUjA3ZGWwYjEEz85RWoAHDzzg/l2zjM0YtV7BoXIkghVp3IRwt2PR/oDXuSwcYxRgawMzFAg==,iv:o0gve1wvPz1OCZd4V2x+Y+xgXBPK+8J4V7q7QcFEBHA=,tag:9IhJLpujf61Sq7QDQvWFGw==,type:str] - stat159.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:25OetCVl/lev4dpIVXD1j6gYnVKuoH2KxXCB6SPUAN+Xum7pUqxMwns0kj6yPdIctC80D+ClgcLI5T4zAU47vg==,iv:y0VNAFEhjWhOEDnYb4Qx1wHGQl8l+MVN3Cfxop4b9kg=,tag:3C8pA/waoX33TEN9J4GSpg==,type:str] - stat20.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:nGw2UyBRuFPz/LSJ3Im4x4Ky2RUUSi5bL/NNtHO87ghZhrO4pfNaOYPT0KPEaNywl8LsHPn9jY0t3t7Dq1XF1g==,iv:n4WDx7sb7KwXXJSNsiw98++LSPp5qCjd03oqfP0BosA=,tag:hcKJ57UtRzJ3yhrkOZ2vBg==,type:str] - shiny.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:aQhA063iVHqKOGzF3qRbUGUJc+hF58Nx2Th+dUTbkutpQPoZjqfhdtu3yAI3+eRMe9Czt4t0pymrzVDKawIokw==,iv:jhD8Ewv1NU6Tsmr+/4cFbn4gmukRFJ8u4ENsdbV3hHk=,tag:Pyd7lLy9QVvKE4EWmvVWSw==,type:str] - a11y.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:uYmaDWGFL/mHM+jw9WqYJ3fzMc5i4+hXFN6yiCLkIpepC+zFFjcvOSoLp2/og8qd9eRxVcJJiOuQnN3PUj5bKw==,iv:BonL4AunMGQbvAxUqB5Pl/0q99VZUzTVmkMZWJCOqQc=,tag:K5+MnSsD8KJ6R4PYKULmJA==,type:str] config: CanvasOAuthenticator: client_id: ENC[AES256_GCM,data:jfSsHia74Sd/w9G8nvtUn2w=,iv:8rJlc8PbE4jEGBK7mP7Gb9Hn3TaDrL55sjgJEACS1hg=,tag:5WwPi/a4yN35Bz8U7w7kjg==,type:str] @@ -53,16 +18,16 @@ jupyterhub: - ENC[AES256_GCM,data:L0Ey0FFLe7uel/uu6cnVCMA3tqkSkyDaxJIsV3IS17CzppPoFkXrS8mEp5FVn9oKVi+BSpbsU745EQ==,iv:tdWCyXFFop6HhvO3IeP3AjjQ10fB6WSWoGSOu4oL0po=,tag:ZZLATDzXDCzpGxrUEZtP+g==,type:comment] - ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] - ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] - #ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] - #ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] - #ENC[AES256_GCM,data:L0Ey0FFLe7uel/uu6cnVCMA3tqkSkyDaxJIsV3IS17CzppPoFkXrS8mEp5FVn9oKVi+BSpbsU745EQ==,iv:tdWCyXFFop6HhvO3IeP3AjjQ10fB6WSWoGSOu4oL0po=,tag:ZZLATDzXDCzpGxrUEZtP+g==,type:comment] - #ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] - #ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] - #ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] - #ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] - #ENC[AES256_GCM,data:L0Ey0FFLe7uel/uu6cnVCMA3tqkSkyDaxJIsV3IS17CzppPoFkXrS8mEp5FVn9oKVi+BSpbsU745EQ==,iv:tdWCyXFFop6HhvO3IeP3AjjQ10fB6WSWoGSOu4oL0po=,tag:ZZLATDzXDCzpGxrUEZtP+g==,type:comment] - #ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] - #ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] + - ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] + - ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] + - ENC[AES256_GCM,data:L0Ey0FFLe7uel/uu6cnVCMA3tqkSkyDaxJIsV3IS17CzppPoFkXrS8mEp5FVn9oKVi+BSpbsU745EQ==,iv:tdWCyXFFop6HhvO3IeP3AjjQ10fB6WSWoGSOu4oL0po=,tag:ZZLATDzXDCzpGxrUEZtP+g==,type:comment] + - ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] + - ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] + - ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] + - ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] + - ENC[AES256_GCM,data:L0Ey0FFLe7uel/uu6cnVCMA3tqkSkyDaxJIsV3IS17CzppPoFkXrS8mEp5FVn9oKVi+BSpbsU745EQ==,iv:tdWCyXFFop6HhvO3IeP3AjjQ10fB6WSWoGSOu4oL0po=,tag:ZZLATDzXDCzpGxrUEZtP+g==,type:comment] + - ENC[AES256_GCM,data:2dy9dN35cLzlU7O6NgX1B2MXJF5fOcc6y7ruDYOkb1NLeEE6CXG3SWEJQg3syyCH1jnL8Q5UCa6gnwcRYZQ4ZEk+oPnasSuiS8E7ihhSVwqkhO4BrK62EdY/sKo+6Q==,iv:HynBKylI2gY2U5p2a4OxvKG6xILRtIQ6Ofk6Q0z+PI0=,tag:IzCVCpUrNaahrsrF6RDmBw==,type:comment] + - ENC[AES256_GCM,data:i7pf32VpWBbQaNVKo1r6Al7hMUHQWpq7VgE93fqJbpm0rS9HlkTEhVy5Ho9Mogh2lZh7wVXZtCP0TqM=,iv:UzY+xK5n+tkPhkD3Er8XWMSudXOt5QDSc1LGDQsQ//I=,tag:vzzQQt0XZ2/VsCfdCuAATA==,type:comment] - name: ENC[AES256_GCM,data:vrmKlvUHit2Kme5TcNU=,iv:jN/HJaBsa1ali4lzkpYofTK2YYI114ysIp+A9UtMf7Q=,tag:yVnLGvVtO+ao/95m9nmKuw==,type:str] image: ENC[AES256_GCM,data:ShSADI4ik0t4SA==,iv:Gj7QIM3nNqRsboA2KscquoZRJlkzCo8ljfavxnmqCQE=,tag:Rn5OByAatGtqUgNlIBou7g==,type:str] workingDir: ENC[AES256_GCM,data:gPLfwEtJT0Oz,iv:LR36WXF5khb9NvYkfsmwxt990ekEJyI/mB3T9ON3KNA=,tag:lWHZ/AnLGxSrFpIAQxeoIA==,type:str] @@ -91,8 +56,8 @@ sops: azure_kv: [] hc_vault: [] age: [] - lastmodified: "2023-08-15T19:48:57Z" - mac: ENC[AES256_GCM,data:as4Od6Yji+rhYzyCsuMDUNMS7OO81Jce3/C87dZIzrWO5WNIeKYCWkgsNfp1QLnkVeDQgZO8VV0gAAcbdypBSjP2naiZpTUSM3Ongdm5QWgLT0TED8DDGc+i7MEtadceUOvmsGm5KLo5xEIhcEjOpiIKtK2UMSBcw596M3lAtMo=,iv:unRRvU3oFrerCX/QbTkY7U7Ge+pqIAOBKcckdd8jbJs=,tag:vh42wRp91Vsj302qnENi7Q==,type:str] + lastmodified: "2024-01-10T22:36:28Z" + mac: ENC[AES256_GCM,data:gjYpfGVNZ4GjqKJCOfv4iTvSB4zzzOHxtlDgTitHcdcibY7ng+jpLRnMXt2DCT11oxRF0lyojhxNcLY9P3PMRBUMqUMjF1xMBABJtyNM1x1QNgMGOqC2jDjpPmUIm74E08EL1dQJ1IlwyJgfxwlnPGotL0cPskHlIOuUC3X1Gn0=,iv:sCVcYzNVnnzz/MsSQL+9w49cM6BYQfCO28fYvKt9sus=,tag:YN86XzJP3tip6Ygvym6+Kg==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.7.3 diff --git a/deployments/datahub/secrets/staging.yaml b/deployments/datahub/secrets/staging.yaml index b069488b0..32d2b4351 100644 --- a/deployments/datahub/secrets/staging.yaml +++ b/deployments/datahub/secrets/staging.yaml @@ -2,41 +2,6 @@ etcGitConfig: githubAppPrivateKey: ENC[AES256_GCM,data:mhQ47ifmxoCWsxFn7tSALkHBwyHn4hF0FtroIaQxGoS2SdSjPqE+/vfvHRdVXbiVkXu6uoNey4uFj8FIg+hJ/P+/8bQKKg1Yws83oBdzHAQZ0ozMFQvu54PsenAP791kFpF5BOPN4h/9rW5qBgQyVGv26/6CiAqit7SWgAgDxyZLSxkbspC0fWJrNOaLrE87OfEdYhSIYIDPPZqcbmD2ER2udzs1KsvfmExyDROqGHrRPxwbqk9SDiE8nSMXfPK2C6NALmvaho57qLTgDasoySaF2d2P+xAUpSA+HbwJX6RBZHkMKbNCttdkUcydbVq6k3hLf93Yrai20irB735Db+xe644IMxJ7VkGkr3xJZIUsgbADdms/8x4DIkci/oMHpoNYPslDXEd2RGAH/sep6j7/DXRtrrecAyzMWE3HWaKdjffiynXLBQxJoQ432RV4Y4Vzn520ss0pcvdkvD3BTjGIDZ4UCJrW8TwCSGlJAoqJyHO/6nD7gAG03hMLNjiM1N0ac0qDrdY9d8c1OuQQ1xxmAhYTJ8fSbyCeb2oLWegSZWiOI5Hna5n5lpEn+uHsjSQqpmdK96GgHOux45+QW1EdXKpKVYjVt3venCgYpq1ZEAY0Ah8YZbF+CYPljEKTVHXf9JuKJgARv2DPMQkN78EVzhusLvkU4ivJ5o/nhypeuLWRJ+PsJY3U/EqDk07wAE86OQ1twQkvH+sExxfdSW1YrHVu9U08V7GTxTEbCBQraJzUW2H7e6qXDSkvGzDDGWh0HjtumM1Enoy9XtGFxDEjj0YxJb9YB/exgEOQHNU6kyH032cweK6z8f1R+UhJd2A59wZ+2coyRHLQXCFFpMTBE1dJrOyZXJ8sWicG48rkEG/bhPICnNt7ZfjEv57xFv78MhLGhrCBd+y/j6AhegQM1jgRhHhvUmCh4FDgI1uvoZck/eavsdDkDxfwwrq1Dv6nvpPCILvigW3VfdqgeTP60ZeiaLwNyPwayUOdE2NeCiRziKPdkFbuE7Ma25jDplJOC2hZd5NpG59ohG29P6r/NDD726t79v77M/y17Y1f9VjEOSOvHCqCvIs4iponuFGSfzO9ZBIvocxI/HW0MgDFUVWu61hUMRbvcyOlJCLfzxkPqryqA2GVycwYfnla/cXJbQkb9VMJXv2A1njH8+UN8JMWyzI7RMPBFSk1+wNzrBSSmRGg0pX/2Sjm3M1bn8MIH/7PvkErfhoi+C4l9t8cHUH/kfIncBcyahJYo/lSOADGimpKQiwVPusKoj/HePIUfb62m9qfAm2zhSR4zJPuWzysXyzFxUq/ugotcubz6tKvNi8Z3MfDmZdIrvmZKY9fo83eXNIdrawI5iRbddlFvhfv9+ZVlG5pWrIEFmg2pZIVbvPuG6Y9RwhpL7NxdquWcVG57OQzGnCv5C9tow2s0kAVNNgDWivVR1Pd5j8G/uca7UR8zbfwyE0iEbsdnjMQioGNViuXUfZAfnSiWt2iA8yywnc+5AgWeu6yP0qWTKO5+UKbByn99zuQGzDAKiHT8wChrkQnR7rvYINmCRzeJb5MLYb08IG3abGfpGdxDmWnhUIn4OXTuDHUKcXnJucx6g/6XqkGtnVsJv5ycgvGHDVBAKY3o/zPHn3K4ryk+fvmkgXnMFZRcv0AWfH8p25MiwBrnwbcS0JpQZkQxq1uy64byXenZMUpW4CkngDtJFHYOreearvUpl5C/VAcTwKSQB9n9RLKaRVt82oy8czsp9JBTJHTEd9L/v5+HwgaX6vbm7ecIuvMnAV9LZXccjQugpfIIaHyNApriMaoZhbWgSAfHdXI5nqD1NMFKoC+zjC4YsZ3jZ6AqW+ET4r5sUQcSG7BcuIyK329a+EetBIq1OMtYWXc2TxCpBBb/0JektZ9MT8Xgac/wYlZLOMPouRGflKmVSJy+5yFs8fWRN5VZlxs5wt2J3A38SN1hmnW0ezw0Izz65uW389bJoKk4EnoqNXoEWaQXbZ/wPxBbpxN2FML3FQM1AfurseyuvTbRXvJXO4eXnNzKNnGgxZrwNMTvqEIc4SQKES4fitGpi5McRTHq3FfMWlwr0itVGogUhy9dxnjW8SxD3Iid8OOVLo6VZFGvPP1Yp1Ti1+l5tTYdXjikXIco0JNaqRRhAWLeIGF7qY/192UcPqWCkH6on8pD5hVIzE52Ovjqnn/fxxmyd1D1CyIYs1EEHvyeJm6RSvSsh6ex5ygAw==,iv:rp2UwFS4SyodrxB204odj/3GELqmzOC/+JVdYzIzz8I=,tag:KShupzehMbS1aoekn9iKtw==,type:str] jupyterhub: hub: - services: - cee-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:KaPPFki8z00bexMut6VhykA+bZspUQ7Go3AYYQHAYZjW9QofJvm2xgdrNeHbAIb/Pe+dCVGoKzuWpaonltOHCg==,iv:aTUgnieCquLFLGquOOJgvM0wS4hdciYMXl8fbyqVkJc=,tag:kiMDIJ51fJzLtsSc6i9FRA==,type:str] - astro-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:YT1ljf/Qkjr3Wc3xpyUK6inH6iLMWrMbiOgth5NdpqbvQ1nt04v4dPAHHGQE7VTPNjXmBdd0jEWm+kOJ+DTh7w==,iv:1RusqUxqAhQIf/cBTIGQnTTzpFPJxtixhb4/HwJvo5U=,tag:DcPjN5jZlXEFaxHs3WiSgA==,type:str] - data8-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:7qt8etB62bu6qoo5FWta5de92SNnDA7SkoBaZ20ES5gL1ZEwXdvxWuQHM61Os+H2fU7L5oFdxbgek4IQdsF4nw==,iv:YBFq5ooG+IdJJGm5YawS9CxbGgFU9rWfeGiaj4yb70Q=,tag:Jv5oNnSkmMtOIUEq4tO/YQ==,type:str] - data100-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:4VakrbJcFCxC8y9Lb3IEI8QSMrpZ/xbaphsd3gjU/Apmhze/Cg6RuxPVioaIJsIWADT1wXIkmgF3ws8+rfA2iA==,iv:qDKY/RGBuU6fhs9Qqytts/YCHnSn7XzkrpjgPLrCm90=,tag:RGBnUGldPEib5/auZuSIIA==,type:str] - data101-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:4aGrZ/ilZB6Ra2roW3WS7lky8ER0+wqwqKudCsuohOKK1iE6LpZ5pTXuImA+iS7lmCibjemBUm1Z0OGk+TE0eA==,iv:3fIeoS8J0xy1Omh6PCc6BdnZCDAMkvT4Gy+LTJ7EVpI=,tag:gLntPg02VThyEy6WWOJw+A==,type:str] - data102-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:uQ36BI8rhMt2JGJkJzbrE9WNoT3mQxKr4oJs5yXGRsEapWD7BqXgT6B2SdTMdQWv1Gc+mNbmfyrYMt8246yl8g==,iv:ciXEHYdTKiqr/iHTIi07D2JoquxGM5enfUrOFSV/HJQ=,tag:uyw8MHdVA/9wjrxc99XK2w==,type:str] - dlab-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:dXaOn4DSv6XK2B3ZYGhDgOLL2QUN4AlP9V1gBI45xyyzV4jfIHUn561hM/2QSVKoVkl5o80glUt7Ohk7DgMI7A==,iv:hO/R5riG24QPvzE1ER6Bhai+BWB0TSiuo/27Vfw6EtU=,tag:k1tZFoCrCJYQKRH8swj9Gw==,type:str] - eecs-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:1x51nVFp2ykvtp72dFLfly5icmCL8XGPRwb1wA2ptDFQWSa1k5GYACyTnUjXjfk9P123Ck59bVLPXkbz3oKzQg==,iv:XcC045Q52Jl+QU9/1zG09uur/gIe21LIXseQli4ba5k=,tag:sfycYomdpC9kz/ukPgy9LA==,type:str] - ischool-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:IikAeEIXuX+9wGDWjl4QApRoLRzq6qWO4wOe4G0mwCxTerdqodYjwy41F11BNE+N/v9DwQQoEElqimk0sQ7wzA==,iv:1qGs7Iw3w5NwFlj/ydkRt6hZqEEOcdV/rZqZF6mGOOc=,tag:dJmTRp+lOwl5mFQtvrK2Ow==,type:str] - julia-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:NbbZ7HoygsQ6T4eNMycAtj7b5McXFPT4kgfy3FUIsPsupWUS5jpxAf2KScVdIYM8iMb4JfnlRcVcbPZrgbT/bg==,iv:FwkxG+7u9YNEfo+5ZSQlEMR+cr7bakUfz6M6JAsdh5k=,tag:dQcH0OCvyul9/f7R6h2uoQ==,type:str] - prob140-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:yWcpzWwaYwF/fho1K9jl6vu1Q09EPWPhNZnllc5Uwt/5dy5m4ki9lSmi3ibEB3TJJFHBoA7f6mXAQ4EWAQvDjg==,iv:xK017TqYdI3WWVN2Bozq9yLn9Lj+UDKZmkwKdedh/MM=,tag:0IDBuJ4Z4nu33a5IbiYf7g==,type:str] - publichealth-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:Wt9VrqvXZbhz0rW08dkRUwwSH+u8U08qXvYDahK4AlkNHmeLerYPWKoUUPxMbcTgw0MBhtxDCuqLP3PA8f2EGQ==,iv:D6OtBhe/3gU1/xoj7YYBdP9iftdCVGPNqKq5Z2xTOyQ=,tag:FtgqcdBAFar8AYEZAfWIHQ==,type:str] - r-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:iY0UBuecq8spL3kyTrbSDyApBmUwytZlWulqp53P5MJpXS0JZ4vT5MkJ3QIABHTsjUXVKlOCl1wKPmW2bENrzw==,iv:Tg5oVkg2E6DTpgrzrONqxPJAA/j2CqIOSIFwtcbwugw=,tag:UJKc/GqEQvu6GenkzdoALw==,type:str] - stat159-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:FjCqR8ilJ4rQwLefKre9LKoGzq4pEylrhQ8s1B1soBtJGAF15f+DA3LZf/i71oi/ns7SGMPJFPClTfr0w8SoOA==,iv:eo2ehjXmLyfRU5n6ZS2vSlYEkvJmuOvOECwZwvxffMM=,tag:6CXtiRMEhfYOfNhmMUEsVQ==,type:str] - stat20-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:wNtUuIVgbilLKpgNCcvHGtlCipw8ktwoPb9jwnwlD3E1SRStaxaYmm0cGA7fVN5m01bIOxWJfPdRPHKFg/J2Fw==,iv:sVGglUb61YyKWt/0rO0EAqmDdAk9lp3WxpthemSGaBo=,tag:7I8/P5Hjm+/42iEQpUXPNg==,type:str] - shiny-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:fM/wKkxnMMs4H3nPfSNTBpE5cwH9EHQBI1moh9FWQtJyaafNhNgeuzE1sx32nYbAX/cmnIDDM62QovuruCWXFw==,iv:KkpGaH0auLX36hC6+N+2WVgsb8DE1vjQcYVcj24hh8k=,tag:nXuFSVgg0O74dk72nVu9EQ==,type:str] - a11y-staging.datahub.berkeley.edu: - api_token: ENC[AES256_GCM,data:nkQJEvfgah5/BeFpzLrJ/gpQp9zMfYdRK2Jw45h+jRs3canCAkSR+vNfHntzOmY0zzC3jA/nthNHLZuSQnBhrw==,iv:oAq4EgAD3sPtJhafQxBrfe46TgZ35+9ufAJIqb4mH9I=,tag:vZPYp9NpGbDX0rgTNduaqg==,type:str] config: CanvasOAuthenticator: client_id: ENC[AES256_GCM,data:o2KFS2W45Dubf5WeVvzBri4=,iv:6aFe8ab8mv0DslgkZpBaHwIS9l0CIPv5YSyt8eppOVw=,tag:jPSsGc9qdvr+xNsQMdSoWA==,type:str] @@ -57,20 +22,20 @@ jupyterhub: - ENC[AES256_GCM,data:gWdNf0HlI3ajokJEMSZBKtuADbHLi32yrj7iV7Il/9WLBGxbONnx+e1cSQSDbt9PPPFXoeGaQLXKeUiNlLRIS4P9bg==,iv:ZPMUwVLjTLEeCFFpFwthQaOWy+xDLUC0zm7y/pgMLjw=,tag:mGImYvV4D1hu3n+QBINWJg==,type:comment] - ENC[AES256_GCM,data:3JtzwxgA5y051CiQZ/YMw17F9WuHsBMlx1B/Yuj3sqd/KBGAlyzm+wy/rLvMQPxJcv3ZeTCu9m2dv+scm4GcfjYV85o=,iv:JdOC8w4PBbfM5CKPKivW669ZSiKW4En6gHr+EOdm5KQ=,tag:oT4itmrilTOVduPSRB4P3w==,type:comment] - ENC[AES256_GCM,data:rSwq326q7NdpVJTKrtPq6paJu5KSmCpRXuhvhIsiRTfC77sxsQY/264jmXPTCGcJDt7Z1u0nfxZE,iv:7HZDXA9X6MM0XLM7fSvW9/39f84jedyGRJMNRFZN9XA=,tag:EhN5O9qrzzUBe97tTZ+LbQ==,type:comment] - #ENC[AES256_GCM,data:YwFvA4grE6JdYkjGTI4QdWRTICKhLCrR6T5JL7YT8ybs/yQOHcMS7rngymC+tiPeNMQgTZP5SIC33g==,iv:zs7moG1JimBSWtrR2hwCmI68sw2HcJJyI4TfJbVz3QY=,tag:65q92wgOHyzVFuKC345FxQ==,type:comment] - #ENC[AES256_GCM,data:mDONrT6WJPpr1rnaKa3YOdJ3TU5MsYSpbBSep5d8GYd2IZXkBHu7B5hKHE5Wxc8Yl/zmBduU0/rxRC9IDI1tW4m6V0hlCkoYetTcGMcARGWaIZZVjjm8aGWMrDKNPQ==,iv:tV+OZFSyOWaY9kkQ+QOw8OxZMU2nUetfpM81o8tQiW0=,tag:f9EizHL2NuEDXoayHLu1Sw==,type:comment] - #ENC[AES256_GCM,data:lt+3ER6jp3yrKfk/ivV9mxsY4FHttS8ZnDFY+6GkEsy8Zg1OGYV7xqBB8Xt+jlkt5+vn5Ah1Gxs=,iv:MCkfY+y/1LnupneurbwuVjZ7Ry9fo7iS37Slk2qvMmE=,tag:m7xRGceZzDMU0LWSOewqiQ==,type:comment] - #ENC[AES256_GCM,data:s4pNwZppJZ3J7mn6GymZk755TXhRy+WfGkVqDyrbBzux,iv:vTAkc2LC/0z/0hdH/wnp8usK+P5HUYOT0si3p6RvN9Y=,tag:DY4uoZM+hV+5jFGECKrdaA==,type:comment] - #ENC[AES256_GCM,data:gWdNf0HlI3ajokJEMSZBKtuADbHLi32yrj7iV7Il/9WLBGxbONnx+e1cSQSDbt9PPPFXoeGaQLXKeUiNlLRIS4P9bg==,iv:ZPMUwVLjTLEeCFFpFwthQaOWy+xDLUC0zm7y/pgMLjw=,tag:mGImYvV4D1hu3n+QBINWJg==,type:comment] - #ENC[AES256_GCM,data:3JtzwxgA5y051CiQZ/YMw17F9WuHsBMlx1B/Yuj3sqd/KBGAlyzm+wy/rLvMQPxJcv3ZeTCu9m2dv+scm4GcfjYV85o=,iv:JdOC8w4PBbfM5CKPKivW669ZSiKW4En6gHr+EOdm5KQ=,tag:oT4itmrilTOVduPSRB4P3w==,type:comment] - #ENC[AES256_GCM,data:rSwq326q7NdpVJTKrtPq6paJu5KSmCpRXuhvhIsiRTfC77sxsQY/264jmXPTCGcJDt7Z1u0nfxZE,iv:7HZDXA9X6MM0XLM7fSvW9/39f84jedyGRJMNRFZN9XA=,tag:EhN5O9qrzzUBe97tTZ+LbQ==,type:comment] - #ENC[AES256_GCM,data:YwFvA4grE6JdYkjGTI4QdWRTICKhLCrR6T5JL7YT8ybs/yQOHcMS7rngymC+tiPeNMQgTZP5SIC33g==,iv:zs7moG1JimBSWtrR2hwCmI68sw2HcJJyI4TfJbVz3QY=,tag:65q92wgOHyzVFuKC345FxQ==,type:comment] - #ENC[AES256_GCM,data:mDONrT6WJPpr1rnaKa3YOdJ3TU5MsYSpbBSep5d8GYd2IZXkBHu7B5hKHE5Wxc8Yl/zmBduU0/rxRC9IDI1tW4m6V0hlCkoYetTcGMcARGWaIZZVjjm8aGWMrDKNPQ==,iv:tV+OZFSyOWaY9kkQ+QOw8OxZMU2nUetfpM81o8tQiW0=,tag:f9EizHL2NuEDXoayHLu1Sw==,type:comment] - #ENC[AES256_GCM,data:lt+3ER6jp3yrKfk/ivV9mxsY4FHttS8ZnDFY+6GkEsy8Zg1OGYV7xqBB8Xt+jlkt5+vn5Ah1Gxs=,iv:MCkfY+y/1LnupneurbwuVjZ7Ry9fo7iS37Slk2qvMmE=,tag:m7xRGceZzDMU0LWSOewqiQ==,type:comment] - #ENC[AES256_GCM,data:s4pNwZppJZ3J7mn6GymZk755TXhRy+WfGkVqDyrbBzux,iv:vTAkc2LC/0z/0hdH/wnp8usK+P5HUYOT0si3p6RvN9Y=,tag:DY4uoZM+hV+5jFGECKrdaA==,type:comment] - #ENC[AES256_GCM,data:gWdNf0HlI3ajokJEMSZBKtuADbHLi32yrj7iV7Il/9WLBGxbONnx+e1cSQSDbt9PPPFXoeGaQLXKeUiNlLRIS4P9bg==,iv:ZPMUwVLjTLEeCFFpFwthQaOWy+xDLUC0zm7y/pgMLjw=,tag:mGImYvV4D1hu3n+QBINWJg==,type:comment] - #ENC[AES256_GCM,data:3JtzwxgA5y051CiQZ/YMw17F9WuHsBMlx1B/Yuj3sqd/KBGAlyzm+wy/rLvMQPxJcv3ZeTCu9m2dv+scm4GcfjYV85o=,iv:JdOC8w4PBbfM5CKPKivW669ZSiKW4En6gHr+EOdm5KQ=,tag:oT4itmrilTOVduPSRB4P3w==,type:comment] - #ENC[AES256_GCM,data:rSwq326q7NdpVJTKrtPq6paJu5KSmCpRXuhvhIsiRTfC77sxsQY/264jmXPTCGcJDt7Z1u0nfxZE,iv:7HZDXA9X6MM0XLM7fSvW9/39f84jedyGRJMNRFZN9XA=,tag:EhN5O9qrzzUBe97tTZ+LbQ==,type:comment] + - ENC[AES256_GCM,data:YwFvA4grE6JdYkjGTI4QdWRTICKhLCrR6T5JL7YT8ybs/yQOHcMS7rngymC+tiPeNMQgTZP5SIC33g==,iv:zs7moG1JimBSWtrR2hwCmI68sw2HcJJyI4TfJbVz3QY=,tag:65q92wgOHyzVFuKC345FxQ==,type:comment] + - ENC[AES256_GCM,data:mDONrT6WJPpr1rnaKa3YOdJ3TU5MsYSpbBSep5d8GYd2IZXkBHu7B5hKHE5Wxc8Yl/zmBduU0/rxRC9IDI1tW4m6V0hlCkoYetTcGMcARGWaIZZVjjm8aGWMrDKNPQ==,iv:tV+OZFSyOWaY9kkQ+QOw8OxZMU2nUetfpM81o8tQiW0=,tag:f9EizHL2NuEDXoayHLu1Sw==,type:comment] + - ENC[AES256_GCM,data:lt+3ER6jp3yrKfk/ivV9mxsY4FHttS8ZnDFY+6GkEsy8Zg1OGYV7xqBB8Xt+jlkt5+vn5Ah1Gxs=,iv:MCkfY+y/1LnupneurbwuVjZ7Ry9fo7iS37Slk2qvMmE=,tag:m7xRGceZzDMU0LWSOewqiQ==,type:comment] + - ENC[AES256_GCM,data:s4pNwZppJZ3J7mn6GymZk755TXhRy+WfGkVqDyrbBzux,iv:vTAkc2LC/0z/0hdH/wnp8usK+P5HUYOT0si3p6RvN9Y=,tag:DY4uoZM+hV+5jFGECKrdaA==,type:comment] + - ENC[AES256_GCM,data:gWdNf0HlI3ajokJEMSZBKtuADbHLi32yrj7iV7Il/9WLBGxbONnx+e1cSQSDbt9PPPFXoeGaQLXKeUiNlLRIS4P9bg==,iv:ZPMUwVLjTLEeCFFpFwthQaOWy+xDLUC0zm7y/pgMLjw=,tag:mGImYvV4D1hu3n+QBINWJg==,type:comment] + - ENC[AES256_GCM,data:3JtzwxgA5y051CiQZ/YMw17F9WuHsBMlx1B/Yuj3sqd/KBGAlyzm+wy/rLvMQPxJcv3ZeTCu9m2dv+scm4GcfjYV85o=,iv:JdOC8w4PBbfM5CKPKivW669ZSiKW4En6gHr+EOdm5KQ=,tag:oT4itmrilTOVduPSRB4P3w==,type:comment] + - ENC[AES256_GCM,data:rSwq326q7NdpVJTKrtPq6paJu5KSmCpRXuhvhIsiRTfC77sxsQY/264jmXPTCGcJDt7Z1u0nfxZE,iv:7HZDXA9X6MM0XLM7fSvW9/39f84jedyGRJMNRFZN9XA=,tag:EhN5O9qrzzUBe97tTZ+LbQ==,type:comment] + - ENC[AES256_GCM,data:YwFvA4grE6JdYkjGTI4QdWRTICKhLCrR6T5JL7YT8ybs/yQOHcMS7rngymC+tiPeNMQgTZP5SIC33g==,iv:zs7moG1JimBSWtrR2hwCmI68sw2HcJJyI4TfJbVz3QY=,tag:65q92wgOHyzVFuKC345FxQ==,type:comment] + - ENC[AES256_GCM,data:mDONrT6WJPpr1rnaKa3YOdJ3TU5MsYSpbBSep5d8GYd2IZXkBHu7B5hKHE5Wxc8Yl/zmBduU0/rxRC9IDI1tW4m6V0hlCkoYetTcGMcARGWaIZZVjjm8aGWMrDKNPQ==,iv:tV+OZFSyOWaY9kkQ+QOw8OxZMU2nUetfpM81o8tQiW0=,tag:f9EizHL2NuEDXoayHLu1Sw==,type:comment] + - ENC[AES256_GCM,data:lt+3ER6jp3yrKfk/ivV9mxsY4FHttS8ZnDFY+6GkEsy8Zg1OGYV7xqBB8Xt+jlkt5+vn5Ah1Gxs=,iv:MCkfY+y/1LnupneurbwuVjZ7Ry9fo7iS37Slk2qvMmE=,tag:m7xRGceZzDMU0LWSOewqiQ==,type:comment] + - ENC[AES256_GCM,data:s4pNwZppJZ3J7mn6GymZk755TXhRy+WfGkVqDyrbBzux,iv:vTAkc2LC/0z/0hdH/wnp8usK+P5HUYOT0si3p6RvN9Y=,tag:DY4uoZM+hV+5jFGECKrdaA==,type:comment] + - ENC[AES256_GCM,data:gWdNf0HlI3ajokJEMSZBKtuADbHLi32yrj7iV7Il/9WLBGxbONnx+e1cSQSDbt9PPPFXoeGaQLXKeUiNlLRIS4P9bg==,iv:ZPMUwVLjTLEeCFFpFwthQaOWy+xDLUC0zm7y/pgMLjw=,tag:mGImYvV4D1hu3n+QBINWJg==,type:comment] + - ENC[AES256_GCM,data:3JtzwxgA5y051CiQZ/YMw17F9WuHsBMlx1B/Yuj3sqd/KBGAlyzm+wy/rLvMQPxJcv3ZeTCu9m2dv+scm4GcfjYV85o=,iv:JdOC8w4PBbfM5CKPKivW669ZSiKW4En6gHr+EOdm5KQ=,tag:oT4itmrilTOVduPSRB4P3w==,type:comment] + - ENC[AES256_GCM,data:rSwq326q7NdpVJTKrtPq6paJu5KSmCpRXuhvhIsiRTfC77sxsQY/264jmXPTCGcJDt7Z1u0nfxZE,iv:7HZDXA9X6MM0XLM7fSvW9/39f84jedyGRJMNRFZN9XA=,tag:EhN5O9qrzzUBe97tTZ+LbQ==,type:comment] - name: ENC[AES256_GCM,data:gfZqbSw7GE7LXAyWWaA=,iv:P/SZJ3wXfIZOHRIF4xI3l8EVnmeQb9X6X1B1sl9GWZk=,tag:oDtOL9tmRzWWIuhhkgiggQ==,type:str] image: ENC[AES256_GCM,data:nWirMCYmAj1JpQ==,iv:yped1LA5hZvUcCloUvIAgc5IqwR/IkMe6SH2Y0Fe38U=,tag:CAlbY0PZduWhIRRbvmmcwg==,type:str] workingDir: ENC[AES256_GCM,data:Upn/mlemThwd,iv:64RgymUMAmoFKSg0OO5WiPYH2WSXvy8ZAW+eL3xt+ao=,tag:I6r1d+9HbuVris25tMFLtg==,type:str] @@ -99,8 +64,8 @@ sops: azure_kv: [] hc_vault: [] age: [] - lastmodified: "2023-08-15T19:48:41Z" - mac: ENC[AES256_GCM,data:EDvfDtmAM5psFmHyOQ10pp7kGOP3p8yXf9DimlKjDEiUBuNr6bLea1yDubLwnmvEStMhGUmfBAmiFcAH06s95KFHy15oS2QSJ3GcF4WjpNWCM0DAL/gU2aq7JdRfzsVrS/jG0CSl3ZTLLR8xd5BEqIo48XDO9+3/7+EP4PVIY94=,iv:TTQZEMzQ5iezmV6R5UWYu9446AzLWikQTMeFOp2NHVQ=,tag:UgA7r5HdsV8SKkj9g2UTQw==,type:str] + lastmodified: "2024-01-10T22:35:45Z" + mac: ENC[AES256_GCM,data:eJnsTNCrRl6+XW1978HNT5NneTFgjwhNn0T8a6sEsIanokncKQVDMDDSju5Yaok7YIcJeqturJc0kuO1d55VyX6pmpN1vVgH1dlKN7uyTtkxzIQ3LyM103htiWxS7wraDa+GDiNM5AXiL51yzWQYeAtQj/wDztQ2pSa69wHsq+8=,iv:ij+cKs/BOiwEWN96QV3VPM0+gWaajBNzfotJ4y9UTV8=,tag:UqoBIG1FF3aHuYQZwHUpAw==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.7.3 From 57fe645deadc7177110c15eced7b8fa1b478d578 Mon Sep 17 00:00:00 2001 From: Balaji Alwar Date: Wed, 10 Jan 2024 14:48:12 -0800 Subject: [PATCH 06/10] Remove unnecessary entries from admin template --- .github/ISSUE_TEMPLATE/admin_request.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/admin_request.yml b/.github/ISSUE_TEMPLATE/admin_request.yml index 6e8551f01..e92088dbd 100644 --- a/.github/ISSUE_TEMPLATE/admin_request.yml +++ b/.github/ISSUE_TEMPLATE/admin_request.yml @@ -40,9 +40,6 @@ body: - validations: required: true - - type: markdown - attributes: - value: Remove @berkeley.edu as part of the shared usernames and send them to ds-infrastructure@lists.berkeley.edu - type: textarea attributes: label: End Date From de1cec8e1aae50fc823410eccd15d7107b695674 Mon Sep 17 00:00:00 2001 From: Ryan Lovett Date: Wed, 10 Jan 2024 14:56:47 -0800 Subject: [PATCH 07/10] Change access description. We don't hand out real admin access anymore, so update terminology. --- .github/ISSUE_TEMPLATE/admin_request.yml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/admin_request.yml b/.github/ISSUE_TEMPLATE/admin_request.yml index e92088dbd..1058629f1 100644 --- a/.github/ISSUE_TEMPLATE/admin_request.yml +++ b/.github/ISSUE_TEMPLATE/admin_request.yml @@ -1,17 +1,17 @@ -name: Admin Access Request -description: Request admin access for your instance of Datahub +name: Request Elevated Privileges for Course Staff +description: Enable course staff to manage student servers labels: "support" -assignees: +assignees: - balajialg body: - type: markdown attributes: value: | - Please follow the sections in the template below and share the required information for providing admin access! If you are curious to understand the process through which we assign admin users, please refer to this documentation - https://docs.datahub.berkeley.edu/en/latest/admins/howto/course-config.html#defining-group-profiles + Course staff may be assigned elevated privileges on a hub to view and manage student server. Please follow the sections in the template below and share the required information. If you are curious to understand the process through which we assign privileges, please refer to [our documentation](https://docs.datahub.berkeley.edu/en/latest/admins/howto/course-config.html#defining-group-profiles). - type: input attributes: label: Your Name - description: + description: validations: required: true - type: input @@ -22,16 +22,16 @@ body: required: true - type: input attributes: - label: Bcourses Id - description: bcourses id for the course you are teaching. You can find that in the URL to your course (It is a six digit number). Please ensure that the course is published in bcourses. If not, Datahub will not get the required group information from an unpublished course in bcourses. + label: bCourses ID + description: bCourses ID for the course you are teaching. You can find that in the URL to your course -- it is a six digit number. The course needs to be set to Published in bCourses, otherwise the hub will not be able to assign extra privileges. validations: required: true - type: input attributes: label: Role - description: Your role as part of the teaching team! + description: Your role as part of the teaching team validations: - required: true + required: true - type: input attributes: label: Name of the Hub @@ -43,7 +43,7 @@ body: - type: textarea attributes: label: End Date - description: Till when do you need admin access for the shared usernames + description: Until when is elevated access needed value: | - validations: @@ -51,8 +51,8 @@ body: - type: textarea attributes: label: Request Deadline - description: By when do you want admin access provisioned + description: By when do you need elavated access provisioned value: | validations: - required: true + required: true From b5205ef1747c3d84b938bde7dca1509b203198dd Mon Sep 17 00:00:00 2001 From: Ryan Lovett Date: Wed, 10 Jan 2024 14:58:24 -0800 Subject: [PATCH 08/10] Fix pluralization. --- .github/ISSUE_TEMPLATE/admin_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/admin_request.yml b/.github/ISSUE_TEMPLATE/admin_request.yml index 1058629f1..f31de2924 100644 --- a/.github/ISSUE_TEMPLATE/admin_request.yml +++ b/.github/ISSUE_TEMPLATE/admin_request.yml @@ -7,7 +7,7 @@ body: - type: markdown attributes: value: | - Course staff may be assigned elevated privileges on a hub to view and manage student server. Please follow the sections in the template below and share the required information. If you are curious to understand the process through which we assign privileges, please refer to [our documentation](https://docs.datahub.berkeley.edu/en/latest/admins/howto/course-config.html#defining-group-profiles). + Course staff may be assigned elevated privileges on a hub to view and manage student servers. Please follow the sections in the template below and share the required information. If you are curious to understand the process through which we assign privileges, please refer to [our documentation](https://docs.datahub.berkeley.edu/en/latest/admins/howto/course-config.html#defining-group-profiles). - type: input attributes: label: Your Name From b577fafeaeb5a8cbc243e4bbaba7a48efdaf9e9c Mon Sep 17 00:00:00 2001 From: Balaji Alwar Date: Wed, 10 Jan 2024 15:53:11 -0800 Subject: [PATCH 09/10] Add course-config.rst as part of docs --- docs/admins/howto/course-config.rst | 147 ++++++++++++++++++++++++++++ 1 file changed, 147 insertions(+) create mode 100644 docs/admins/howto/course-config.rst diff --git a/docs/admins/howto/course-config.rst b/docs/admins/howto/course-config.rst new file mode 100644 index 000000000..f3df14801 --- /dev/null +++ b/docs/admins/howto/course-config.rst @@ -0,0 +1,147 @@ +.. _howto/course-config: + +==================== +Course Configuration +==================== + +Allocating Resources +==================== +It is possible to alter administrative priviliges or resources allocations (such as memory or extra volumes) of user servers from within the deployment configuration. This is mostly useful for when resources need to be increased based on users' class enrollments. The hub must be configured to use the `CanvasOAuthenticator `_ which is our default. Hubs that use dummy, Google, Generic OAuth, or other authenticators are not configured to allocate additional resources in this way. + +Additionally, it is also possible to allocate resources based on the students membership of Canvas groups. This is useful if the instructor wants to dynamically grant additional resources without CI round-trips. Group management can be performed by the course staff directly from bCourses. + +Implementation +============== +The authenticator reads users Canvas enrollments when they login, and then assigns them to JupyterHub groups based on those affiliations. Groups are named with the format "course::{canvas_id}::enrollment_type::{canvas_role}", e.g. "course::123456::enrollment_type::teacher" or "course::234567::enrollment_type::student". Our custom kubespawner, which we define in `hub/values.yaml`, reads users' group memberships prior to spawning. It then overrides various KubeSpawner paramters based on configuration we define, using the canvas ID as the key. (see below) + +Note that if a user is assigned to a new Canvas group (e.g. by the instructor manually, or by an automated Canvas/SIS system) while their server is already running, they will need to logout and then log back in in order for the authenticator to see the new affiliations. Restarting the user server is not sufficient. + +The canvas ID is somewhat opaque to infrastructure staff -- we cannot look it up ourselves nor predict what it would be based on the name of the course. This is why we must request it from the instructor. + +There are a number of other Canvas course attributes we could have substituted for the ID, but all had various drawbacks. An SIS ID attribute uses a consistent format that is relatively easy to predict, however it is only exposed to instructor accounts on hub login. In testing, when the Canvas admin configured student accounts to be able to read the SIS ID, we discovered that other protected SIS attributes would have been visible to all members of the course in the Canvas UI. Various friendly name attributes (e.g. "Statistics 123, Spring '24") were inconsistent in structure or were modifiable by the instructor. So while the Canvas ID is not predictable or easily discoverable by hub staff, it is immutable and the instructor can find it in the URL for their course. + +Assigning Scopes to Roles +========================= +When JupyterHub only had two roles, admin and user, we would grant admin rights to course staff. This enabled course staff to start, access, and stop user servers, but it wasn't scoped to just the students in their own course. It would give them access to the accounts of everyone on the hub. They even had access to stop the hub process itself. JupyterHub now lets us create our own roles and assign `scopes `_ to them. As a result, we can grant course staff the ability to do what they need for members of their own course, and nothing more. + +Add the following configuration for course staff who need elevated access: + + .. code:: yaml + + jupyterhub: + hub: + loadRoles: + # Data 123, Summer 2024, #9876 + course-staff-1234567: + description: Enable course staff to view and access servers. + # this role provides permissions to... + scopes: + - admin-ui + - list:users!group=course::1234567 + - admin:servers!group=course::1234567 + - access:servers!group=course::1234567 + # this role will be assigned to... + groups: + - course::1234567::enrollment_type::teacher + - course::1234567::enrollment_type::ta + +This configuration is headed by a comment which describes the course and term and links to the github issue where the staff made the request. It defines a new role, `course-staff-1234567`, for a course with bCourse ID `1234567`. It assigns scopes for accessing and administering the servers for users in group `course::1234567`. Members of that group include all students and course staff. It also assigns scopes for viewing lists of users at /hub/admin. It assignes these scopes to members of the affiliated course staff groups. + +This stanza is more verbose than inserting lists of users under `admin_users`, but it the privileges are more granular. We don't need to know who the individual course staff and they won't have more permissions than they need. + +The configuration causes JupyterHub to update information in its `jupyterhub.sqlite` database file. When this configuraition is removed, the hub does not automatically flush out the roles and scopes from the database. So after the semester is over, it is advisable to remove this configuration and also to flush out the information in the database. There is no formal process for this, although we should develop one. We can delete the database, or we can manually remove entries from the sqlite file. + +Defining group profiles +======================= + +#. Require course staff to request additional resources through a `github issue _`. + +#. Obtain the bCourses course ID from the github issue. This ID is found in the course's URL, e.g. `https://bcourses.berkeley.edu/courses/123456`. It should be a large integer. If the instructor requested resources for a specific group within the course, obtain the group name. + +#. Edit `deployments/{deployment}/config/common.yaml`. + +#. Duplicate an existing stanza, or create a new one under `jupyterhub.custom.group_profiles` by inserting yaml of the form: + + .. code:: yaml + + jupyterhub: + custom: + group_profiles: + + # Example: increase memory for everyone affiliated with a course. + # Name of Class 100, Fall '22; requested in #98765 + + course::123456: + mem_limit: 4096M + mem_guarantee: 2048M + + + # Example: increase memory just for course staff. + # Enrollment types returned by the Canvas API are `teacher`, + # `student`, `ta`, `observer`, and `designer`. (non-plural) + # https://canvas.instructure.com/doc/api/enrollments.html + + # Some other class 200, Spring '23; requested in #98776 + course::234567::enrollment_type::teacher: + mem_limit: 2096M + mem_guarantee: 2048M + course::234567::enrollment_type::ta: + mem_limit: 2096M + mem_guarantee: 2048M + + + # Example: a fully specified CanvasOAuthenticator group name where + # the resource request happens to be an additional mount path. + # Creating groups for temporary resource bumps could be useful + # where the instructor could add people to groups in the bCourses + # UI. This would benefit from the ability to read resource bumps + # from jupyterhub's properties. (attributes in the ORM) + + # Name of Class 100, Fall '22; requested in #98770 + course::123456::group::lab4-bigdata: + - mountPath: /home/rstudio/.ssh + name: home + subPath: _some_directory/_ssh + readOnly: true + + + Our custom KubeSpawner knows to look for these values under `jupyterhub.custom `_. + + `123456` and `234567` are bCourse course identifiers from the first step. Memory limits and extra volume mounts are specified as in the examples above. + +#. Add a comment associating the profile identifier with a friendly name of the course. Also link to the github issue where the instructor requested the resources. This helps us to cull old configuration during maintenance windows. + +#. Commit the change, then ask course staff to verify the increased allocation on staging. It is recommended that they simulate completing a notebook or run through the assignment which requires extra resources. + +Defining user profiles +====================== + +It may be necessary to assign additional resources to specific users, if it is too difficult to assign them to a bCourses group. + +#. Edit `deployments/{deployment}/config/common.yaml`. + +#. Duplicate an existing stanza, or create a new one under `jupyterhub.custom.profiles` by inserting yaml of the form: + + .. code:: yaml + + jupyterhub: + custom: + profiles: + + # Example: increase memory for these specific users. + special_people: + # Requested in #87654. Remove after YYYY-MM-DD. + mem_limit: 2048M + mem_guarantee: 2048M + users: + - user1 + - user2 + +#. Add a comment which links to the github issue where the resources were requested. This helps us to cull old configuration during maintenance windows. + +Housekeeping +============ + +Group profiles should be removed at the end of every term because course affiliations are not necessarily removed from each person's Canvas account. So even if a user's class ended, the hub will grant additional resources for as long as the config persisted in both Canvas and the hub. + +User profiles should also be evaluated at the end of every term. From 718dc1c40823eff7355d623e7c026a3d153c67a9 Mon Sep 17 00:00:00 2001 From: shane knapp Date: Wed, 10 Jan 2024 16:45:58 -0800 Subject: [PATCH 10/10] move to a smaller filestore --- deployments/biology/config/common.yaml | 2 +- deployments/biology/config/filestore/squash-flags.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/deployments/biology/config/common.yaml b/deployments/biology/config/common.yaml index 0c9e6c2b2..7a22e54ab 100644 --- a/deployments/biology/config/common.yaml +++ b/deployments/biology/config/common.yaml @@ -1,7 +1,7 @@ nfsPVC: enabled: true nfs: - serverIP: 10.120.80.242 + serverIP: 10.14.131.82 jupyterhub: scheduling: diff --git a/deployments/biology/config/filestore/squash-flags.json b/deployments/biology/config/filestore/squash-flags.json index e5e346c68..50ddb7eba 100644 --- a/deployments/biology/config/filestore/squash-flags.json +++ b/deployments/biology/config/filestore/squash-flags.json @@ -2,7 +2,7 @@ "--file-share": { "name": "shares", - "capacity": "8.5TiB", + "capacity": "5TiB", "nfs-export-options": [ { "access-mode": "READ_WRITE",