From e1194cea3af2ad5aa64f1fea4b215ad1e5291e69 Mon Sep 17 00:00:00 2001 From: Aaron Liang Date: Wed, 29 Nov 2023 11:29:17 -0800 Subject: [PATCH] Add GCS as a storage solution --- gke-platform/modules/gke_standard/main.tf | 6 ++ jupyter-on-gke/README.md | 10 +++ jupyter-on-gke/images/gcs_bucket.png | Bin 0 -> 134157 bytes .../jupyter_config/config-selfauth.yaml | 82 +++++++++++++++++- jupyter-on-gke/jupyterhub.tf | 17 +++- .../service_accounts.tf | 51 +++++++++++ .../service_accounts_module/variables.tf | 30 +++++++ .../service_accounts_module/versions.tf | 26 ++++++ jupyter-on-gke/storage.md | 11 +++ jupyter-on-gke/variables.tf | 2 +- 10 files changed, 229 insertions(+), 6 deletions(-) create mode 100644 jupyter-on-gke/images/gcs_bucket.png create mode 100644 jupyter-on-gke/service_accounts_module/service_accounts.tf create mode 100644 jupyter-on-gke/service_accounts_module/variables.tf create mode 100644 jupyter-on-gke/service_accounts_module/versions.tf create mode 100644 jupyter-on-gke/storage.md diff --git a/gke-platform/modules/gke_standard/main.tf b/gke-platform/modules/gke_standard/main.tf index 98b4223db..f14b26522 100644 --- a/gke-platform/modules/gke_standard/main.tf +++ b/gke-platform/modules/gke_standard/main.tf @@ -46,6 +46,12 @@ resource "google_container_cluster" "ml_cluster" { workload_pool = "${var.project_id}.svc.id.goog" } + addons_config { + gcs_fuse_csi_driver_config { + enabled = true + } + } + release_channel { channel = "RAPID" } diff --git a/jupyter-on-gke/README.md b/jupyter-on-gke/README.md index bf7220e0a..6e60c505c 100644 --- a/jupyter-on-gke/README.md +++ b/jupyter-on-gke/README.md @@ -134,6 +134,16 @@ Continue to Step 3 of [below](#if-auth-is-enabled). 4. Select profile and open a Jupyter Notebook +## Persistent Storage + +Currently there are 2 choices for storage: + +1. Default Jupyterhub Storage - `pd.csi.storage.gke.io` with reclaim policy `Delete` + +2. GCSFuse - `gcsfuse.csi.storage.gke.io` uses GCS Buckets and require users to pre-create buckets with name format `gcsfuse-{username}` + +For more information about Persistent storage and the available options, visit [here](https://github.com/GoogleCloudPlatform/ai-on-gke/blob/main/jupyter-on-gke/storage.md) + ## Running GPT-J-6B This example is adapted from Ray AIR's examples [here](https://docs.ray.io/en/master/ray-air/examples/gptj_serving.html). diff --git a/jupyter-on-gke/images/gcs_bucket.png b/jupyter-on-gke/images/gcs_bucket.png new file mode 100644 index 0000000000000000000000000000000000000000..abb419824d55e0b83025a96f810c0d23f5d8d483 GIT binary patch literal 134157 zcmeFZWmr{f+XV`UbV?(kw9<_-RD_* z@Av&a-RIZ&d9Lr5>vAsUeAW~9J?=5aJ>RLR$m3#BVj&?R;VL|l(Lh4FwT^^@nudV} z{zpA*Bpm#M?5rU#ja1xEwT6Ur4@p5r>bbkoCKUZ6s_cY1LO!2WisbNUvm-u`&xv* z^laGw{`TL0Xhnb=?bCnn^4}X0uaEur^M9Ws`4)p^IKSQk=@85T! zl#$Gw%V_0#@UI~u2h~FUGxYy?(2sj4SVw3i!3r^d{5oVzmXV@c|GG;68lhUAU>=uJ z*zc2pxMQY0^`CQujL8@3FWn#&WUBGs-}K)HVL>+j`}w~Q%8)`OUdMfi6HE6$gZyV6 z)$;Vw|9ux+x(qc3HPb}m|5=&;{H64)@c%8r|1H69d*J_0!C&X(|8pQRx5W^>Ivids zuG{XpPI4JiXluphq#`wR8RXijKZsIB@ecnzG6ayKQqqsidmnt~ntU0nt8<5(A7v%Y z%YMQvTCDXJz9`ocwIXMOOU+i*wA|LLxX$l^PEr#E&M`vk@iWG8H8UibcR-Z4PxPSA zG{vq8(`&0zJJEH@y5LvK2E&gJ%@qUUcdKSyrych?$P$dIm%>WuI365u+2OK9%LvUSM zTw>48ex*3H+mRW$o9dVbk<@z31lFL(MCqv7eaZifg-+vc(wt(po}ZgWaK=aU+b?cz zzt6QTef0*L17q5*+R**_Y=!p=He0D=&1QLT>ryzUxD!jXx(ZX$%MXMOwZD>WS|1h^ z^2j}~nzQ+pWSO>m3XjHDoVdQ&p>4dF-4Wm{`~2jOHNr5R2@=lPow6wj3g@V0aenJ} zb1_dFhMJo*n&vOSXOUzcPq?t%c(GkN@glqueVydDG5Vvz0wn1J&xL+^NjGX_ zir4FuG+m$X&Yd*6P0*UQxBno1ro?@J!$0Z6ZyDn}9VC~VUPl&mtfR#s1>zI_aRcWG zTIO``{oV7864eY1LDt`%(=0=en2R*8ZOmx#^Hr{5=K(P{ofq#I!{^by7)kS7&vyh{1?OT~8k?P%)WET2(*dJ?+P;o` z2K?pX=M;M^R7SH7*X1~EJTMhj*0b(wISJ)n`@t9d>YdY*quR#Qq3_cvz0MxdUV^Pc zbAAA3O>9Y>%IBomt-)q>2XPh>eU2xm8+g37850cdTpyMA1zl{{aZX1e*<9_5khWb{jT?Cdfv59bZo4&MPuo@~Gew0* zxLs~qN?_BTHlxd3M&!Xyyr+8ilf;o0&(conE!%kqgf|M=?okqThZgTIE%xA?F0=7yOy9ELb7<-17uUwI1udU;Liq@tj^$bqAH<2O^2^F2xh&$U z``mW~o6f$QN~lU)9WK6OPV370cA}AI48q3b&)WmVFFvJX#^L*&wgn}SVM567e&PtX5fhhs>

&j+;gVw*~L$02@2o6aO0O8s||P7 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 # gitpuller https://github.com/data-8/materials-fa17 master materials-fa; profileList: - - display_name: "Basic" + - display_name: "CPU" description: "Creates CPU VMs as the compute for notebook execution." + profile_options: + storage: + display_name: "Storage" + choices: + DefaultStorage: + display_name: "DefaultStorage" + kubespawner_override: + default: true + GCSFuse: + display_name: "GCSFuse" + kubespawner_override: + volume_mounts: + - name: gcs-fuse-csi-ephemeral + mountPath: /home/jovyan + volumes: + - name: gcs-fuse-csi-ephemeral + csi: + driver: gcsfuse.csi.storage.gke.io + volumeAttributes: + bucketName: gcsfuse-{username} + mountOptions: "uid=1000,gid=100,o=noexec,implicit-dirs,dir-mode=777,file-mode=777" + node_selector: + iam.gke.io/gke-metadata-server-enabled: "true" default: true - display_name: "GPU T4" description: "Creates GPU VMs (T4) as the compute for notebook execution" + profile_options: + storage: + display_name: "Storage" + choices: + DefaultStorage: + display_name: "DefaultStorage" + kubespawner_override: + default: true + GCSFuse: + display_name: "GCSFuse" + kubespawner_override: + volume_mounts: + - name: gcs-fuse-csi-ephemeral + mountPath: /home/jovyan + volumes: + - name: gcs-fuse-csi-ephemeral + csi: + driver: gcsfuse.csi.storage.gke.io + volumeAttributes: + bucketName: gcsfuse-{username} + mountOptions: "uid=1000,gid=100,o=noexec,implicit-dirs,dir-mode=777,file-mode=777" + node_selector: + iam.gke.io/gke-metadata-server-enabled: "true" kubespawner_override: image: jupyter/tensorflow-notebook:python-3.10 extra_resource_limits: @@ -116,6 +173,29 @@ singleuser: cloud.google.com/gke-accelerator: "nvidia-tesla-t4" - display_name: "GPU A100" description: "Creates GPU VMs (A100) as the compute for notebook execution" + profile_options: + storage: + display_name: "Storage" + choices: + DefaultStorage: + display_name: "DefaultStorage" + kubespawner_override: + default: true + GCSFuse: + display_name: "GCSFuse" + kubespawner_override: + volume_mounts: + - name: gcs-fuse-csi-ephemeral + mountPath: /home/jovyan + volumes: + - name: gcs-fuse-csi-ephemeral + csi: + driver: gcsfuse.csi.storage.gke.io + volumeAttributes: + bucketName: gcsfuse-{username} + mountOptions: "uid=1000,gid=100,o=noexec,implicit-dirs,dir-mode=777,file-mode=777" + node_selector: + iam.gke.io/gke-metadata-server-enabled: "true" kubespawner_override: image: jupyter/tensorflow-notebook:python-3.10 extra_resource_limits: diff --git a/jupyter-on-gke/jupyterhub.tf b/jupyter-on-gke/jupyterhub.tf index 5f35dd4a4..944efeee0 100644 --- a/jupyter-on-gke/jupyterhub.tf +++ b/jupyter-on-gke/jupyterhub.tf @@ -60,7 +60,7 @@ resource "google_project_service" "project_service" { disable_on_destroy = false } -# Creates a "Brand", equivalent to the OAuth consent screen on GCP UI +# Creates a "Brand", equivalent to the OAuth consent screen on Cloud console resource "google_iap_brand" "project_brand" { count = var.brand != "" ? 1 : 0 support_email = var.support_email @@ -70,7 +70,7 @@ resource "google_iap_brand" "project_brand" { # Creates the OAuth client used in IAP resource "google_iap_client" "iap_oauth_client" { - count = var.client_id != "" ? 0 : 1 + count = var.client_id != "" ? 0 : 1 display_name = "Jupyter-Client" brand = "projects/${data.google_project.project.number}/brands/${data.google_project.project.number}" } @@ -93,17 +93,26 @@ module "iap_auth" { project_id = var.project_id namespace = var.namespace service_name = var.service_name - client_id = var.client_id != "" ? var.client_id : google_iap_client.iap_oauth_client[0].client_id - client_secret = var.client_id != "" ? var.client_secret : google_iap_client.iap_oauth_client[0].secret + client_id = var.client_id != "" ? var.client_id : google_iap_client.iap_oauth_client[0].client_id + client_secret = var.client_id != "" ? var.client_secret : google_iap_client.iap_oauth_client[0].secret url_domain_addr = var.url_domain_addr url_domain_name = var.url_domain_name depends_on = [ helm_release.jupyterhub, kubernetes_namespace.namespace, + module.workload_identity_service_account ] } +module "workload_identity_service_account" { + source = "./service_accounts_module" + + project_id = var.project_id + namespace = var.namespace + service_account = "jupyter-service-account" +} + resource "helm_release" "jupyterhub" { name = "jupyterhub" repository = "https://jupyterhub.github.io/helm-chart" diff --git a/jupyter-on-gke/service_accounts_module/service_accounts.tf b/jupyter-on-gke/service_accounts_module/service_accounts.tf new file mode 100644 index 000000000..e788bfe22 --- /dev/null +++ b/jupyter-on-gke/service_accounts_module/service_accounts.tf @@ -0,0 +1,51 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +resource "google_service_account" "sa" { + project = "${var.project_id}" + account_id = "${var.service_account}" + display_name = "Jupyterhub service account" +} + +resource "google_service_account_iam_binding" "workload-identity-user" { + service_account_id = google_service_account.sa.name + role = "roles/iam.workloadIdentityUser" + + members = [ + "serviceAccount:${var.project_id}.svc.id.goog[${var.namespace}/default]", + ] +} + +resource "google_project_iam_binding" "cloud_role" { + project = var.project_id + for_each = toset([ + "roles/storage.admin", + "roles/artifactregistry.reader" + ]) + role = each.key + members = [ + "serviceAccount:${var.project_id}.svc.id.goog[${var.namespace}/default]", + ] +} + +resource "kubernetes_annotations" "default" { + api_version = "v1" + kind = "ServiceAccount" + metadata { + name = "default" + } + annotations = { + "iam.gke.io/gcp-service-account" = "${google_service_account.sa.account_id}@${var.project_id}.iam.gserviceaccount.com" + } +} diff --git a/jupyter-on-gke/service_accounts_module/variables.tf b/jupyter-on-gke/service_accounts_module/variables.tf new file mode 100644 index 000000000..324858447 --- /dev/null +++ b/jupyter-on-gke/service_accounts_module/variables.tf @@ -0,0 +1,30 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +variable "project_id" { + type = string + description = "GCP project id" +} + +variable "namespace" { + type = string + description = "Kubernetes namespace where resources are deployed" + default = "jup" +} + +variable "service_account" { + type = string + description = "Google Cloud IAM service account for authenticating with GCP services" + default = "jup-system-account" +} diff --git a/jupyter-on-gke/service_accounts_module/versions.tf b/jupyter-on-gke/service_accounts_module/versions.tf new file mode 100644 index 000000000..d3bbf86e1 --- /dev/null +++ b/jupyter-on-gke/service_accounts_module/versions.tf @@ -0,0 +1,26 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +terraform { + required_providers { + google = { + source = "hashicorp/google" + version = "4.56.0" + } + kubernetes = { + source = "hashicorp/kubernetes" + version = "2.18.1" + } + } +} diff --git a/jupyter-on-gke/storage.md b/jupyter-on-gke/storage.md new file mode 100644 index 000000000..dc5c067a3 --- /dev/null +++ b/jupyter-on-gke/storage.md @@ -0,0 +1,11 @@ +# Persistent Storage + +## GCSFuse + +**Important Note:** To use option, a GCS bucket must already be created within the project with the name in the format of `gcsfuse-{username}` + +GCSFuse allow users to mount GCS Buckets as their local filesystem. This option allows ease of access on Cloud UI: + +![Profiles Page](images/gcs_bucket.png) + +Since this bucket in GCS, there is built in permission control and access outside of the clutser. diff --git a/jupyter-on-gke/variables.tf b/jupyter-on-gke/variables.tf index d8b74e2ea..cbeb0183e 100644 --- a/jupyter-on-gke/variables.tf +++ b/jupyter-on-gke/variables.tf @@ -88,5 +88,5 @@ variable "client_secret" { type = string description = "Client secret used for enabling IAP" default = "" - sensitive = true + sensitive = true } \ No newline at end of file