diff --git a/config/clusters/leap/cluster.yaml b/config/clusters/leap/cluster.yaml index 7fb10387cb..da5d81471e 100644 --- a/config/clusters/leap/cluster.yaml +++ b/config/clusters/leap/cluster.yaml @@ -32,3 +32,10 @@ hubs: - common.values.yaml - prod.values.yaml - enc-prod.secret.values.yaml + - name: public + display_name: "LEAP Public" + domain: public.leap.2i2c.cloud + helm_chart: basehub + helm_chart_values_files: + - public.values.yaml + - enc-public.secret.values.yaml diff --git a/config/clusters/leap/enc-public.secret.values.yaml b/config/clusters/leap/enc-public.secret.values.yaml new file mode 100644 index 0000000000..0ba9f77a6c --- /dev/null +++ b/config/clusters/leap/enc-public.secret.values.yaml @@ -0,0 +1,20 @@ +jupyterhub: + hub: + config: + GitHubOAuthenticator: + client_id: ENC[AES256_GCM,data:yZo0O3orwMtD6q/cCw3rkV/Qwvc=,iv:e0vB+0hPKb1oobRt14oP7lo2x9JNz4Y2keL3tMf0xcY=,tag:tGqH83oyETqZ7L/eUOkqnA==,type:str] + client_secret: ENC[AES256_GCM,data:gRXbkMlvLc5WvY2RhFZ++lpjMP3XeqgtAa1bWKXU2M+7WkJyQzIp/w==,iv:aEo7AQiX8erRTap/7dCw7si7zZ9zwVT0zRaKcM6DnXg=,tag:8brscL6KLyTK8eqmuOo6pg==,type:str] +sops: + kms: [] + gcp_kms: + - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs + created_at: "2024-05-24T13:21:22Z" + enc: CiUA4OM7eAjn1kzF62MXZJAjkFe4dv348YZx+OBhsP+EkW6o2UThEkkAWX/fcQbGAPq98DIEAtqrZD3A3nZmIaGEqVKTden6bIZx114t2Mynh99SXACLEKAJT7dS9SiKazi0AOeEWGwSpgVmNumEyuVw + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2024-05-24T13:21:23Z" + mac: ENC[AES256_GCM,data:jwlBwrmBTcv4DPqC66I+lz6DUMBsVBupMSv7XJIQphlClsodJGN/niJweqsAGpVIfYA8OKkiI+8Af6MwDpHmuFOBI65apmae1t9tbA2b6KXr8nFzr743h4UBtob/ZlmWFsRT7fZOeu/Ht900bBiQeizQ5MFNcLFM5GRfT2IAUV0=,iv:U3LPnYwYrkjJfmvGBSxcs7SMed19Ef5r62XxgSjS+EI=,tag:CwTpOkGhl90dALInByzAaQ==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.8.1 diff --git a/config/clusters/leap/public.values.yaml b/config/clusters/leap/public.values.yaml new file mode 100644 index 0000000000..3e46c6cd47 --- /dev/null +++ b/config/clusters/leap/public.values.yaml @@ -0,0 +1,127 @@ +nfs: + enabled: false + pv: + enabled: false +jupyterhub: + ingress: + hosts: [public.leap.2i2c.cloud] + tls: + - hosts: [public.leap.2i2c.cloud] + secretName: https-auto-tls + custom: + 2i2c: + add_staff_user_ids_to_admin_users: true + add_staff_user_ids_of_type: "github" + jupyterhubConfigurator: + enabled: false + singleuserAdmin: + # Turn off trying to mount shared-readwrite folder for admins + extraVolumeMounts: [] + homepage: + templateVars: + org: + name: LEAP + url: https://leap-stc.github.io + logo_url: https://leap-stc.github.io/_static/LEAP_logo.png + designed_by: + name: 2i2c + url: https://2i2c.org + operated_by: + name: 2i2c + url: https://2i2c.org + funded_by: + name: LEAP + url: https://leap-stc.github.io + hub: + annotations: + # Prevents the core node on which this pod is present from being drained + # See https://github.com/2i2c-org/infrastructure/issues/3461 + cluster-autoscaler.kubernetes.io/safe-to-evict: "false" + allowNamedServers: true + config: + JupyterHub: + authenticator_class: github + GitHubOAuthenticator: + populate_teams_in_auth_state: true + oauth_callback_url: https://public.leap.2i2c.cloud/hub/oauth_callback + allowed_organizations: + - leap-stc:leap-pangeo-public-access + scope: + - read:org + Authenticator: + enable_auth_state: true + admin_users: + - rabernat + - jbusecke + singleuser: + initContainers: [] + storage: + # No persistent storage should be kept to reduce any potential data + # retention & privacy issues. + type: none + extraVolumeMounts: [] + nodeSelector: + 2i2c.org/community: public + extraTolerations: + - key: 2i2c.org/community + operator: Equal + value: public + effect: NoSchedule + + profileList: + - display_name: Pangeo Notebook + description: Python with Geoscience Packages + slug: pangeo + default: true + kubespawner_override: + image: pangeo/pangeo-notebook:2024.05.21 + default_url: /lab + profile_options: &profile_options + resource_allocation: &resource_allocation + display_name: Resource Allocation + choices: + mem_3_4: + display_name: 3.4 GB RAM, upto 3.4 CPUs + kubespawner_override: + mem_guarantee: 3620925866 + mem_limit: 3620925866 + cpu_guarantee: 0.43125 + cpu_limit: 3.45 + default: true + mem_6_7: + display_name: 6.7 GB RAM, upto 3.4 CPUs + kubespawner_override: + mem_guarantee: 7241851732 + mem_limit: 7241851732 + cpu_guarantee: 0.8625 + cpu_limit: 3.45 + mem_13_5: + display_name: 13.5 GB RAM, upto 3.4 CPUs + kubespawner_override: + mem_guarantee: 14483703464 + mem_limit: 14483703464 + cpu_guarantee: 1.725 + cpu_limit: 3.45 + mem_27_0: + display_name: 27.0 GB RAM, upto 3.4 CPUs + kubespawner_override: + mem_guarantee: 28967406928 + mem_limit: 28967406928 + cpu_guarantee: 3.45 + cpu_limit: 3.45 + + - display_name: Pangeo Tensorflow ML Notebook + description: Python with Geoscience Packages and Tensorflow (no GPU) + slug: tensorflow + kubespawner_override: + image: pangeo/ml-notebook:2024.05.21 + default_url: /lab + profile_options: *profile_options + + - display_name: Pangeo PyTorch ML Notebook + description: Python with Geoscience Packages and PyTorch (no GPU) + slug: pytorch + kubespawner_override: + image: pangeo/pytorch-notebook:2024.05.21 + default_url: /lab + profile_options: *profile_options diff --git a/terraform/gcp/projects/leap.tfvars b/terraform/gcp/projects/leap.tfvars index a6894694a0..1bbb4554a9 100644 --- a/terraform/gcp/projects/leap.tfvars +++ b/terraform/gcp/projects/leap.tfvars @@ -79,6 +79,23 @@ notebook_nodes = { max : 100, machine_type : "n2-highmem-4", }, + "public-n2-highmem-4" : { + min : 0, + max : 100, + machine_type : "n2-highmem-4", + labels : { + "2i2c.org/community" : "public" + }, + taints : [{ + key : "2i2c.org/community", + value : "public", + effect : "NO_SCHEDULE", + }], + resource_labels : { + "community" : "public", + }, + } + "n2-highmem-16-c" : { # A minimum of one is configured for LEAP to ensure quick startups at all # time. Cost is not a greater concern than optimizing startup times. @@ -90,7 +107,7 @@ notebook_nodes = { min : 0, max : 100, machine_type : "n2-highmem-64" - } + }, "gpu-t4-b" : { min : 0, max : 100,