From a28dda4991e1abd35cd5a4cae7200ade6a2323ca Mon Sep 17 00:00:00 2001 From: Sarah Gibson Date: Wed, 16 Oct 2024 15:24:33 +0100 Subject: [PATCH 1/5] Update basehub chart to use renamed jupyterhub-home-nfs subchart --- helm-charts/basehub/Chart.yaml | 6 +++--- helm-charts/basehub/values.schema.yaml | 4 ++-- helm-charts/basehub/values.yaml | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/helm-charts/basehub/Chart.yaml b/helm-charts/basehub/Chart.yaml index 08b770032e..b1157e7644 100644 --- a/helm-charts/basehub/Chart.yaml +++ b/helm-charts/basehub/Chart.yaml @@ -25,7 +25,7 @@ dependencies: version: "2024.1.0" repository: "https://helm.dask.org/" condition: dask-gateway.enabled - - name: jupyter-home-nfs + - name: jupyterhub-home-nfs version: 0.0.5 - repository: oci://ghcr.io/sunu/jupyter-home-nfs - condition: jupyter-home-nfs.enabled + repository: oci://ghcr.io/2i2c-org/jupyterhub-home-nfs + condition: jupyterhub-home-nfs.enabled diff --git a/helm-charts/basehub/values.schema.yaml b/helm-charts/basehub/values.schema.yaml index a5c888e9f2..b654e8a9a8 100644 --- a/helm-charts/basehub/values.schema.yaml +++ b/helm-charts/basehub/values.schema.yaml @@ -267,7 +267,7 @@ properties: type: object additionalProperties: true - jupyter-home-nfs: + jupyterhub-home-nfs: type: object additionalProperties: true required: @@ -276,7 +276,7 @@ properties: enabled: type: boolean description: | - Enable using jupyter-home-nfs to provide persistent storage for + Enable using jupyterhub-home-nfs to provide persistent storage for user home directories on an in-cluster NFS server with storage quota enforcement. diff --git a/helm-charts/basehub/values.yaml b/helm-charts/basehub/values.yaml index bcc77a951a..8aa1ea4c19 100644 --- a/helm-charts/basehub/values.yaml +++ b/helm-charts/basehub/values.yaml @@ -1655,5 +1655,5 @@ jupyterhub: else: print("dask-gateway service not found, this should not happen!") -jupyter-home-nfs: +jupyterhub-home-nfs: enabled: false From 255c5ab11c0f9a2dcdbccf7fc51767a2f3cef13d Mon Sep 17 00:00:00 2001 From: Sarah Gibson Date: Wed, 16 Oct 2024 15:24:58 +0100 Subject: [PATCH 2/5] Update VEDA staging to use renamed jupyterhub-home-nfs chart --- config/clusters/nasa-veda/staging.values.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/clusters/nasa-veda/staging.values.yaml b/config/clusters/nasa-veda/staging.values.yaml index 5fadeb4d68..9e50890f08 100644 --- a/config/clusters/nasa-veda/staging.values.yaml +++ b/config/clusters/nasa-veda/staging.values.yaml @@ -210,7 +210,7 @@ basehub: server: *url username: *username - jupyter-home-nfs: + jupyterhub-home-nfs: enabled: true eks: enabled: true From ed389194d9f87a858e084c8b6ca07b0848ca42b6 Mon Sep 17 00:00:00 2001 From: Sarah Gibson Date: Wed, 16 Oct 2024 15:25:48 +0100 Subject: [PATCH 3/5] Update documentation to reference renamed jupyterhub-home-nfs chart --- docs/howto/features/storage-quota.md | 17 ++++++++--------- terraform/aws/variables.tf | 4 ++-- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/docs/howto/features/storage-quota.md b/docs/howto/features/storage-quota.md index 0d4e3726b6..1409c48372 100644 --- a/docs/howto/features/storage-quota.md +++ b/docs/howto/features/storage-quota.md @@ -26,18 +26,17 @@ ebs_volumes = { This will create a disk with a size of 100GB for the `staging` hub that we can reference when configuring the NFS server. +## Enabling jupyterhub-home-nfs -## Enabling jupyter-home-nfs +To be able to configure per-user storage quotas, we need to run an in-cluster NFS server using [`jupyterhub-home-nfs`](https://github.com/sunu/jupyterhub-home-nfs). This can be enabled by setting `jupyterhub-home-nfs.enabled` to `true` in the hub's values file. -To be able to configure per-user storage quotas, we need to run an in-cluster NFS server using [`jupyter-home-nfs`](https://github.com/sunu/jupyter-home-nfs). This can be enabled by setting `jupyter-home-nfs.enabled` to `true` in the hub's values file. - -jupyter-home-nfs expects a reference to an pre-provisioned disk. Here's an example of how to configure that on AWS and GCP. +jupyterhub-home-nfs expects a reference to an pre-provisioned disk. Here's an example of how to configure that on AWS and GCP. `````{tab-set} ````{tab-item} AWS :sync: aws-key ```yaml -jupyter-home-nfs: +jupyterhub-home-nfs: enabled: true eks: enabled: true @@ -48,7 +47,7 @@ jupyter-home-nfs: ````{tab-item} GCP :sync: gcp-key ```yaml -jupyter-home-nfs: +jupyterhub-home-nfs: enabled: true gke: enabled: true @@ -63,7 +62,7 @@ These changes can be deployed by running the following command: deployer deploy ``` -Once these changes are deployed, we should have a new NFS server running in our cluster through the `jupyter-home-nfs` Helm chart. We can get the IP address of the NFS server by running the following commands: +Once these changes are deployed, we should have a new NFS server running in our cluster through the `jupyterhub-home-nfs` Helm chart. We can get the IP address of the NFS server by running the following commands: ```bash # Authenticate with the cluster @@ -120,10 +119,10 @@ deployer deploy Now we can set quotas for each user and configure the path to monitor for storage quota enforcement. -This can be done by updating `basehub.jupyter-home-nfs.quotaEnforcer` in the hub's values file. For example, to set a quota of 10GB for all users on the `staging` hub, we would add the following to the hub's values file: +This can be done by updating `basehub.jupyterhub-home-nfs.quotaEnforcer` in the hub's values file. For example, to set a quota of 10GB for all users on the `staging` hub, we would add the following to the hub's values file: ```yaml -jupyter-home-nfs: +jupyterhub-home-nfs: quotaEnforcer: hardQuota: "10" # in GB path: "/export/staging" diff --git a/terraform/aws/variables.tf b/terraform/aws/variables.tf index 6508d5a06d..e7810e1dde 100644 --- a/terraform/aws/variables.tf +++ b/terraform/aws/variables.tf @@ -304,7 +304,7 @@ variable "ebs_volumes" { description = <<-EOT Deploy one or more AWS ElasticBlockStore volumes. - This provisions a managed EBS volume that can be used by jupyter-home-nfs server - to store home directories for users. + This provisions a managed EBS volume that can be used by jupyterhub-home-nfs + server to store home directories for users. EOT } From 818ec1378b9deb647d23bd24f3f0a1c134463e37 Mon Sep 17 00:00:00 2001 From: Sarah Gibson Date: Wed, 16 Oct 2024 15:57:01 +0100 Subject: [PATCH 4/5] Give the validate workflow permission to read packages --- .github/workflows/validate-clusters.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/validate-clusters.yaml b/.github/workflows/validate-clusters.yaml index ed296efaf7..9e72b92ab0 100644 --- a/.github/workflows/validate-clusters.yaml +++ b/.github/workflows/validate-clusters.yaml @@ -37,6 +37,9 @@ on: - "**" workflow_dispatch: +permissions: + packages: read + jobs: # This job inspects changed files in order to determine which cluster files # should be validated. If helm-chart files change, then all clusters will be From e7373a9cbf0e168f66c255687a8f8ce9d704cf0e Mon Sep 17 00:00:00 2001 From: Tarashish Mishra Date: Thu, 17 Oct 2024 08:24:42 +0530 Subject: [PATCH 5/5] update jupyterhub-home-nfs version to 0.0.6 the older releases can not be accessed through the new name --- helm-charts/basehub/Chart.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/helm-charts/basehub/Chart.yaml b/helm-charts/basehub/Chart.yaml index b1157e7644..69d4a91143 100644 --- a/helm-charts/basehub/Chart.yaml +++ b/helm-charts/basehub/Chart.yaml @@ -26,6 +26,6 @@ dependencies: repository: "https://helm.dask.org/" condition: dask-gateway.enabled - name: jupyterhub-home-nfs - version: 0.0.5 + version: 0.0.6 repository: oci://ghcr.io/2i2c-org/jupyterhub-home-nfs condition: jupyterhub-home-nfs.enabled