diff --git a/config/clusters/2i2c-aws-us/cluster.yaml b/config/clusters/2i2c-aws-us/cluster.yaml index 5f54b76eb..6362a3fd2 100644 --- a/config/clusters/2i2c-aws-us/cluster.yaml +++ b/config/clusters/2i2c-aws-us/cluster.yaml @@ -60,11 +60,3 @@ hubs: - basehub-common.values.yaml - cosmicds.values.yaml - enc-cosmicds.secret.values.yaml - - name: neurohackademy - display_name: "Neurohackademy" - domain: neurohackademy.2i2c.cloud - helm_chart: basehub - helm_chart_values_files: - - basehub-common.values.yaml - - neurohackademy.values.yaml - - enc-neurohackademy.secret.values.yaml diff --git a/config/clusters/2i2c-aws-us/enc-neurohackademy.secret.values.yaml b/config/clusters/2i2c-aws-us/enc-neurohackademy.secret.values.yaml deleted file mode 100644 index 493ced76e..000000000 --- a/config/clusters/2i2c-aws-us/enc-neurohackademy.secret.values.yaml +++ /dev/null @@ -1,25 +0,0 @@ -jupyterhub: - hub: - config: - GitHubOAuthenticator: - client_id: ENC[AES256_GCM,data:eQ/KrqwId32+Uh+i1a06XH3EOzU=,iv:2t9s8TyJ8cbfQgv01/PT32jdtRv8dnjKQiYzDHsxc08=,tag:JwcszPuV0hvcbnN+J//ryg==,type:str] - client_secret: ENC[AES256_GCM,data:/BkC2Aeyqga3pCbHyzeOXB+J6JDPuYT0M9rMU1x56XWvzoAoltPa8w==,iv:yeaORlRH8kmc+eadEIhM23HDECSkABytx4z20kXquwQ=,tag:s2P+TtPn6FBU5TjaYRt74w==,type:str] - singleuser: - extraFiles: - github-app-private-key.pem: - mountPath: ENC[AES256_GCM,data:E7XeswjGH6fiO5Uygu6h/s1X++SQyPH6GmZZiGJsib/vcHyD4N4=,iv:2OAJbzgI7fyoxI4gjKsJmFoKlqeNE4IvypOG7gz6+uo=,tag:buQu1bzbPgxCzYlaK+mbXQ==,type:str] - stringData: ENC[AES256_GCM,data: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,iv:lW2CgJ3d6ezU7r/xTW6wfE8x0gL4U/qZg1J7CKGhwg0=,tag:LkX+XijXVyY6lnyH6K+qeA==,type:str] -sops: - kms: [] - gcp_kms: - - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs - created_at: "2024-07-19T08:13:18Z" - enc: CiUA4OM7eIXqoti+RfrkASRF5lGGw1WyH5IxRtlksZx2U6DSZCwAEkkAWX/fcSHBp84cLjHGwn9E+VtEo1deLLRsIcbFjiPmgrN3Pfgq5bXJBKgn8kMsCkun1uVw4McnHqYKOvp6x3gHZbM8ahigBYWf - azure_kv: [] - hc_vault: [] - age: [] - lastmodified: "2024-07-22T20:42:28Z" - mac: ENC[AES256_GCM,data:BiXoEKzovCBddQzV+bJDMUuBPYGyRvOCvRKsDPlBf7brIY91mtacTc8FJhCynKDcckIc9RmQY7wrIjj036va1yjQbu5hkoRTFEsMKWwlQ+9QvjKge4TU1RCtmlVNFBElPoD7BMZUP0KkyH3LofiHOlDN69eZOHR9yy5AdzSF6TQ=,iv:kvgSA+hmgpC9ADXR0dt4YGsoHGwejQnvw1D5qzFUAaY=,tag:ifxxojOJ+hVU/Lj76bRaFw==,type:str] - pgp: [] - unencrypted_suffix: _unencrypted - version: 3.8.1 diff --git a/config/clusters/2i2c-aws-us/neurohackademy.values.yaml b/config/clusters/2i2c-aws-us/neurohackademy.values.yaml deleted file mode 100644 index a5894f301..000000000 --- a/config/clusters/2i2c-aws-us/neurohackademy.values.yaml +++ /dev/null @@ -1,176 +0,0 @@ -jupyterhub: - ingress: - hosts: [neurohackademy.2i2c.cloud] - tls: - - hosts: [neurohackademy.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 - homepage: - templateVars: - org: - name: NeuroHackademy - url: https://neurohackademy.org/ - logo_url: https://user-images.githubusercontent.com/118582/178122521-aa5b83e7-f898-415a-89ff-dc288f599b4f.png - designed_by: - name: 2i2c - url: https://2i2c.org - operated_by: - name: 2i2c - url: https://2i2c.org - funded_by: - name: The National Institutes of Health grant 2R25MH112480-06 - url: https://reporter.nih.gov/search/ydTvTwXxk0yd6eGdRznbLQ/project-details/10409452 - singleuser: - extraFiles: - gitconfig: - mountPath: /srv/conda/envs/notebook/etc/gitconfig - stringData: | - [credential "https://github.com"] - helper = !git-credential-github-app --app-key-file /etc/github/github-app-private-key.pem --app-id 356717 - useHttpPath = true - # User image: https://quay.io/repository/arokem/nh2024?tab=tags - image: - name: quay.io/arokem/nh2024 - tag: "6a7f72572771" - defaultUrl: "/lab" - extraTolerations: - - key: "2i2c.org/community" - operator: "Equal" - value: "neurohackademy" - effect: "NoSchedule" - profileList: - - display_name: "Regular CPU instance" - slug: small - default: true - kubespawner_override: - cpu_guarantee: 0.5 - cpu_limit: 14 - mem_guarantee: 4G - mem_limit: 16G - node_selector: - node.kubernetes.io/instance-type: r5.xlarge - 2i2c.org/community: neurohackademy - init_containers: &init_containers - # Need to explicitly fix ownership here, as otherwise these directories will be owned - # by root on most NFS filesystems - neither EFS nor Google Filestore support anonuid - - name: volume-mount-ownership-fix - image: busybox:1.36.1 - command: - - sh - - -c - - id && chown 1000:1000 /home/jovyan /home/jovyan/shared && ls -lhd /home/jovyan - securityContext: - runAsUser: 0 - volumeMounts: - - name: home - mountPath: /home/jovyan - subPath: "{username}" - # mounted without readonly attribute here, - # so we can chown it appropriately - - name: home - mountPath: /home/jovyan/shared - subPath: _shared - # this container uses nbgitpuller to mount https://github.com/NeuroHackademy2024/curriculum for user pods - # image source: https://github.com/NASA-IMPACT/jupyterhub-gitpuller-init - - name: jupyterhub-gitpuller-init - image: public.ecr.aws/nasa-veda/jupyterhub-gitpuller-init:latest - env: - - name: TARGET_PATH - value: "curriculum" - - name: SOURCE_REPO - value: "https://github.com/NeuroHackademy2024/curriculum" - - name: SOURCE_BRANCH - value: "main" - volumeMounts: - - name: home - mountPath: /home/jovyan - subPath: "{username}" - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - - display_name: GPU machine - slug: gpu - description: "Start a container on a dedicated node with a GPU" - kubespawner_override: - image: "quay.io/arokem/nh2024-gpu:74cb5cb5c8ad" - mem_limit: null - mem_guarantee: 14G - environment: - NVIDIA_DRIVER_CAPABILITIES: compute,utility - node_selector: - node.kubernetes.io/instance-type: g4dn.xlarge - 2i2c.org/community: neurohackademy - extra_resource_limits: - nvidia.com/gpu: "1" - init_containers: *init_containers - - display_name: R machine - slug: R - description: "Start a container with R available" - kubespawner_override: - image: "quay.io/arokem/nh2024-r:f36d1dbaa3d7" - cpu_guarantee: 0.5 - cpu_limit: 14 - mem_guarantee: 4G - mem_limit: 16G - node_selector: - node.kubernetes.io/instance-type: r5.xlarge - 2i2c.org/community: neurohackademy - init_containers: *init_containers - - display_name: "Bring your own image" - description: Specify your own docker image (must have python and jupyterhub installed in it) - slug: custom - kubespawner_override: {} - profile_options: - image: - display_name: Image - unlisted_choice: - enabled: True - display_name: "Custom image" - validation_regex: "^.+:.+$" - validation_message: "Must be a publicly available docker image, of form :" - kubespawner_override: - image: "{value}" - init_containers: *init_containers - choices: {} - gpu: - display_name: GPU - choices: - 01-none: - display_name: No GPU - default: true - kubespawner_override: - cpu_guarantee: 0.5 - cpu_limit: 14 - mem_guarantee: 4G - mem_limit: 16G - 01-yes: - display_name: Yes (NVIDIA T4) - kubespawner_override: - mem_limit: null - mem_guarantee: 14G - environment: - NVIDIA_DRIVER_CAPABILITIES: compute,utility - node_selector: - node.kubernetes.io/instance-type: g4dn.xlarge - 2i2c.org/community: neurohackademy - extra_resource_limits: - nvidia.com/gpu: "1" - hub: - config: - JupyterHub: - authenticator_class: github - GitHubOAuthenticator: - oauth_callback_url: https://neurohackademy.2i2c.cloud/hub/oauth_callback - allowed_organizations: - - NeuroHackademy2024 - scope: - - read:org - Authenticator: - admin_users: - - arokem - - noahbenson diff --git a/eksctl/2i2c-aws-us.jsonnet b/eksctl/2i2c-aws-us.jsonnet index 01ac84238..107f1232a 100644 --- a/eksctl/2i2c-aws-us.jsonnet +++ b/eksctl/2i2c-aws-us.jsonnet @@ -40,37 +40,6 @@ local notebookNodes = [ // GPUs in a single AZ are in use and no new nodes can be spawned availabilityZones: masterAzs, }, - { - instanceType: "r5.xlarge", - nameSuffix: 'dedicated', - labels+: { - "2i2c.org/community": "neurohackademy" - }, - tags+: { - "community": "neurohackademy" - }, - taints+: { - "2i2c.org/community": "neurohackademy:NoSchedule" - }, - }, - { - instanceType: "g4dn.xlarge", - nameSuffix: 'dedicated', - labels+: { - "2i2c.org/community": "neurohackademy" - }, - tags+: { - "k8s.io/cluster-autoscaler/node-template/resources/nvidia.com/gpu": "1", - "community": "neurohackademy" - }, - taints+: { - "nvidia.com/gpu": "present:NoSchedule", - "2i2c.org/community": "neurohackademy:NoSchedule" - }, - // Allow provisioning GPUs across all AZs, to prevent situation where all - // GPUs in a single AZ are in use and no new nodes can be spawned - availabilityZones: masterAzs, - }, ];