From f8906ff08f7436773c68123576a7e739830edb3f Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Wed, 3 Apr 2024 11:02:09 +0200 Subject: [PATCH 1/3] linc: setup staging/prod according to specification --- config/clusters/linc/cluster.yaml | 12 +- config/clusters/linc/common.values.yaml | 238 ++++++++++++++---- .../clusters/linc/enc-prod.secret.values.yaml | 20 ++ .../linc/enc-staging.secret.values.yaml | 17 +- config/clusters/linc/prod.values.yaml | 17 ++ config/clusters/linc/staging.values.yaml | 33 +-- eksctl/linc.jsonnet | 25 +- terraform/aws/projects/linc.tfvars | 2 +- 8 files changed, 271 insertions(+), 93 deletions(-) create mode 100644 config/clusters/linc/enc-prod.secret.values.yaml create mode 100644 config/clusters/linc/prod.values.yaml diff --git a/config/clusters/linc/cluster.yaml b/config/clusters/linc/cluster.yaml index 5422b26fab..e7e1a911dd 100644 --- a/config/clusters/linc/cluster.yaml +++ b/config/clusters/linc/cluster.yaml @@ -13,10 +13,18 @@ support: - enc-support.secret.values.yaml hubs: - name: staging - display_name: MIT Linc Staging + display_name: LINC (staging) domain: staging.linc.2i2c.cloud - helm_chart: daskhub + helm_chart: basehub helm_chart_values_files: - common.values.yaml - staging.values.yaml - enc-staging.secret.values.yaml + - name: prod + display_name: LINC + domain: linc.2i2c.cloud + helm_chart: basehub + helm_chart_values_files: + - common.values.yaml + - prod.values.yaml + - enc-prod.secret.values.yaml diff --git a/config/clusters/linc/common.values.yaml b/config/clusters/linc/common.values.yaml index 2b43ca6b8e..e429cb8f01 100644 --- a/config/clusters/linc/common.values.yaml +++ b/config/clusters/linc/common.values.yaml @@ -1,53 +1,189 @@ -basehub: - nfs: +nfs: + enabled: true + pv: enabled: true - pv: + # from https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html + mountOptions: + - rsize=1048576 + - wsize=1048576 + - timeo=600 + - soft # We pick soft over hard, so NFS lockups don't lead to hung processes + - retrans=2 + - noresvport + serverIP: fs-0276405f3cabae08b.efs.us-east-1.amazonaws.com + baseShareName: / +jupyterhub: + custom: + 2i2c: + add_staff_user_ids_to_admin_users: true + add_staff_user_ids_of_type: "github" + jupyterhubConfigurator: + enabled: false + homepage: + templateVars: + org: + name: LINC + logo_url: https://github.com/lincbrain/linc-artwork/blob/main/linc.logo.color+white.notext.png?raw=true + url: https://lincbrain.org/ + designed_by: + name: 2i2c + url: https://2i2c.org + operated_by: + name: 2i2c + url: https://2i2c.org + # FIXME: populate funded_by, tracked in + # https://github.com/2i2c-org/infrastructure/issues/3828#issuecomment-2033800425. + funded_by: + name: "" + url: "" + hub: + allowNamedServers: true + config: + JupyterHub: + authenticator_class: github + # GitHubOAuthenticator: + # populate_teams_in_auth_state: true + # allowed_organizations: + # - abc:def + # scope: + # - read:org + Authenticator: + # enable_auth_state: true + admin_users: + - kabilar + - aaronkanzer + - asmacdo + - satra + singleuser: + defaultUrl: /lab + profileList: + - display_name: "DANDI (CPU)" + description: "Default DANDI image with JupyterLab" + default: true + kubespawner_override: + image: dandiarchive/dandihub:latest + image_pull_policy: Always + profile_options: &profile_options_cpu + requests: + display_name: Resource Allocation + choices: + mem_3_7: + display_name: 3.7 GB RAM, upto 3.7 CPUs + kubespawner_override: + mem_guarantee: 3982682624 + mem_limit: 3982682624 + cpu_guarantee: 0.46875 + cpu_limit: 3.75 + node_selector: + node.kubernetes.io/instance-type: r5.xlarge + default: true + mem_7_4: + display_name: 7.4 GB RAM, upto 3.7 CPUs + kubespawner_override: + mem_guarantee: 7965365248 + mem_limit: 7965365248 + cpu_guarantee: 0.9375 + cpu_limit: 3.75 + node_selector: + node.kubernetes.io/instance-type: r5.xlarge + mem_14_8: + display_name: 14.8 GB RAM, upto 3.7 CPUs + kubespawner_override: + mem_guarantee: 15930730496 + mem_limit: 15930730496 + cpu_guarantee: 1.875 + cpu_limit: 3.75 + node_selector: + node.kubernetes.io/instance-type: r5.xlarge + mem_29_7: + display_name: 29.7 GB RAM, upto 3.7 CPUs + kubespawner_override: + mem_guarantee: 31861460992 + mem_limit: 31861460992 + cpu_guarantee: 3.75 + cpu_limit: 3.75 + node_selector: + node.kubernetes.io/instance-type: r5.xlarge + mem_60_6: + display_name: 60.6 GB RAM, upto 15.7 CPUs + kubespawner_override: + mem_guarantee: 65094813696 + mem_limit: 65094813696 + cpu_guarantee: 7.86 + cpu_limit: 15.72 + node_selector: + node.kubernetes.io/instance-type: r5.4xlarge + mem_121_2: + display_name: 121.2 GB RAM, upto 15.7 CPUs + kubespawner_override: + mem_guarantee: 130189627392 + mem_limit: 130189627392 + cpu_guarantee: 15.72 + cpu_limit: 15.72 + node_selector: + node.kubernetes.io/instance-type: r5.4xlarge + mem_244_9: + display_name: 244.9 GB RAM, upto 63.6 CPUs + kubespawner_override: + mem_guarantee: 263005526016 + mem_limit: 263005526016 + cpu_guarantee: 31.8 + cpu_limit: 63.6 + node_selector: + node.kubernetes.io/instance-type: r5.16xlarge + mem_489_9: + display_name: 489.9 GB RAM, upto 63.6 CPUs + kubespawner_override: + mem_guarantee: 526011052032 + mem_limit: 526011052032 + cpu_guarantee: 63.6 + cpu_limit: 63.6 + node_selector: + node.kubernetes.io/instance-type: r5.16xlarge + - display_name: "DANDI Matlab (CPU)" + description: "DANDI image with MATLAB. Requires you to bring your own license" + kubespawner_override: + image: dandiarchive/dandihub:latest-matlab + image_pull_policy: Always + profile_options: *profile_options_cpu + - display_name: "DANDI (GPU)" + description: "DANDI image with JupyterLab and GPU support" + kubespawner_override: + image: dandiarchive/dandihub:latest-gpu + image_pull_policy: Always + extra_resource_limits: + nvidia.com/gpu: 1 + profile_options: &profile_options_gpu + requests: + display_name: Resource Allocation + choices: + gpu_1: + display_name: 1 T4 GPU, ~4 CPUs, ~16GB of RAM + kubespawner_override: + mem_guarantee: 14G + mem_limit: 16G + cpu_guarantee: 3 + cpu_limit: 4 + node_selector: + node.kubernetes.io/instance-type: g4dn.xlarge + default: true + gpu_2: + display_name: 1 T4 GPU, ~8 CPUs, ~32GB of RAM + kubespawner_override: + mem_guarantee: 29G + mem_limit: 32G + cpu_guarantee: 6 + cpu_limit: 8 + node_selector: + node.kubernetes.io/instance-type: g4dn.2xlarge + - display_name: "DANDI Matlab (GPU)" + description: "DANDI Matlab image with GPU support. Requires you to bring your own license." + kubespawner_override: + image: dandiarchive/dandihub:latest-gpu-matlab + image_pull_policy: Always + extra_resource_limits: + nvidia.com/gpu: 1 + profile_options: *profile_options_gpu + scheduling: + userScheduler: enabled: true - # from https://docs.aws.amazon.com/efs/latest/ug/mounting-fs-nfs-mount-settings.html - mountOptions: - - rsize=1048576 - - wsize=1048576 - - timeo=600 - - soft # We pick soft over hard, so NFS lockups don't lead to hung processes - - retrans=2 - - noresvport - serverIP: fs-0276405f3cabae08b.efs.us-east-1.amazonaws.com - baseShareName: / - jupyterhub: - hub: - config: - JupyterHub: - authenticator_class: github - GitHubOAuthenticator: - populate_teams_in_auth_state: true - # allowed_organizations: - # - abc:def - scope: - - read:org - Authenticator: - enable_auth_state: true - # admin_users: - # - asdf - custom: - 2i2c: - add_staff_user_ids_to_admin_users: true - add_staff_user_ids_of_type: "github" - jupyterhubConfigurator: - enabled: false - homepage: - templateVars: - org: - logo_url: "" - url: "" - designed_by: - name: 2i2c - url: https://2i2c.org - operated_by: - name: 2i2c - url: https://2i2c.org - funded_by: - name: "" - url: "" - scheduling: - userScheduler: - enabled: true diff --git a/config/clusters/linc/enc-prod.secret.values.yaml b/config/clusters/linc/enc-prod.secret.values.yaml new file mode 100644 index 0000000000..fe86ff57e8 --- /dev/null +++ b/config/clusters/linc/enc-prod.secret.values.yaml @@ -0,0 +1,20 @@ +jupyterhub: + hub: + config: + GitHubOAuthenticator: + client_id: ENC[AES256_GCM,data:CxRLXkXHU1BHN3jbuU8QNSemydM=,iv:Sc3L+yjsdGfPC8npQDjZ99Hob9Lk33kw2lh1pkF1oMM=,tag:hY359/LiSlh3r8T72VSjmg==,type:str] + client_secret: ENC[AES256_GCM,data:RDyYLtU6j+QkscwZvOfKBEvY9Qdq8DmpISi1XUQpdcSn2P7ckCgPNQ==,iv:8uMsiKCLnxrnrfmeabLH2jjbqF0UkoGzTmsa4wiORGc=,tag:DVjpHxDN5e0PIekpp0p0RQ==,type:str] +sops: + kms: [] + gcp_kms: + - resource_id: projects/two-eye-two-see/locations/global/keyRings/sops-keys/cryptoKeys/similar-hubs + created_at: "2024-04-03T08:37:22Z" + enc: CiUA4OM7eO9OdxLr29/2YdsHIf03JvcChUxEG5zlGHKMq8Q8zceaEkkAXoW3JgclozjLX4aaCTL1iukoy4sOWV/OID934QFj5rnC0OGbeBrLJKKXEw8C7O6v9NK3p0fIpq/GgJJ7drdgSDgeJbWRp+oH + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2024-04-03T08:37:22Z" + mac: ENC[AES256_GCM,data:EmhMraVg6Wt5XdjMDCaMHPugStq5wfNvcBbYik+zn1OyjNyXzAdiV3aRTjNCKdMa9i+jodFhGu6mSTUeqSvYgaC20qslVqz4Vs3MNx5FU1bIshYLe3rnnd3rwZgjrJ46EZPUpXdQGjMCSW2/9XB6kLgnqATFjFpwiwhMZCoxUT8=,iv:DZbGZEbITT5k0d5wiE2HuSjEGFrNaUt5HFQr/spZxek=,tag:CAy6ApK/m88cr1VnLOZB0g==,type:str] + pgp: [] + unencrypted_suffix: _unencrypted + version: 3.8.1 diff --git a/config/clusters/linc/enc-staging.secret.values.yaml b/config/clusters/linc/enc-staging.secret.values.yaml index 4ec942d23b..0933969549 100644 --- a/config/clusters/linc/enc-staging.secret.values.yaml +++ b/config/clusters/linc/enc-staging.secret.values.yaml @@ -1,10 +1,9 @@ -basehub: - jupyterhub: - hub: - config: - GitHubOAuthenticator: - client_id: ENC[AES256_GCM,data:iqSeYxc7IMNhcpNGiRmeWOl094k=,iv:1FZm7sWuuXMQeO58nZbwa/JwDlzA8VlJNfe9ch6LcKI=,tag:5qLvu3c/cMTPtPFt0+KSTw==,type:str] - client_secret: ENC[AES256_GCM,data:xGqTAceOHIXAUV1T6L3l88XHcz+CxfmThoyBqCruFlzWoPmx7fGOGg==,iv:FLevQvMe+JuAi3uxhItGlgjj6jr9sU+0NJHuwlCwQi8=,tag:VNkTtaHvtX+/kj9D3fI1DA==,type:str] +jupyterhub: + hub: + config: + GitHubOAuthenticator: + client_id: ENC[AES256_GCM,data:HkeGw8Js2ncRLqwa3WGpRDkK/5M=,iv:aYG2sPRN/IQjenHAiQQwRC0jh8KwIci/8fNfPO+cK/I=,tag:g9A17tf0VbuTGPnXBRhWYw==,type:str] + client_secret: ENC[AES256_GCM,data:Qbgx0K2gzBV83RmqpG1Q/DtZw0GqhialaqccXzdq4MDpzBMzn65urw==,iv:MmOxQaGH4S4uDiYN6PJ7pGH1jyqP0uesYApFZP9gJwE=,tag:quP+/UZFhQkbGTX8eFql6Q==,type:str] sops: kms: [] gcp_kms: @@ -14,8 +13,8 @@ sops: azure_kv: [] hc_vault: [] age: [] - lastmodified: "2024-03-26T20:12:17Z" - mac: ENC[AES256_GCM,data:6PnxDsjI2xpBBs5PtktXO2rCOj1Uml/C0xp7IMClXAK8scxGtcQ8XnntieeiCHtAon0yY5IQP+swDwY1ZpixnL34O/B0JLX86mANM7lhos4DFeC2RtAxeYZvdgz0yWOU5k4A2So/dhEWpPK19AlplZ9YXbTDdZR6N50fjhg0PUw=,iv:7/5Qw1Wj38FMvVxHEU+Jvoie/jeX2qmPuXwaPm4qlxU=,tag:ykDpQFuaI/sZC4O2HvXkJw==,type:str] + lastmodified: "2024-04-03T08:27:15Z" + mac: ENC[AES256_GCM,data:V2VacVR+zaAQPIU/ssGM+Fr0CzipJXSBeErqIA4LxDh5SjQc0glx5fKWyACLp9g/1PiEpLMGuZILjQwO7/KykJC0EvTGJaAcaS/vk77SIPZfbk7/nE0ICSl3rx4Kn7tGMbmjCOia05cid+OZel+hN2SS7y7eJ0RDcNnbrlxHoT8=,iv:BR8yoQeajK1GzoPCWmQJqF6ak1/XeEzGHHTdOFDv81c=,tag:9FzA8Vk/iot1nZqdMCoisQ==,type:str] pgp: [] unencrypted_suffix: _unencrypted version: 3.8.1 diff --git a/config/clusters/linc/prod.values.yaml b/config/clusters/linc/prod.values.yaml new file mode 100644 index 0000000000..c5d4706155 --- /dev/null +++ b/config/clusters/linc/prod.values.yaml @@ -0,0 +1,17 @@ +userServiceAccount: + annotations: + eks.amazonaws.com/role-arn: arn:aws:iam::211125562419:role/linc-prod + +jupyterhub: + ingress: + hosts: [linc.2i2c.cloud] + tls: + - hosts: [linc.2i2c.cloud] + secretName: https-auto-tls + hub: + config: + GitHubOAuthenticator: + oauth_callback_url: https://linc.2i2c.cloud/hub/oauth_callback + singleuser: + extraEnv: + SCRATCH_BUCKET: s3://linc-scratch/$(JUPYTERHUB_USER) diff --git a/config/clusters/linc/staging.values.yaml b/config/clusters/linc/staging.values.yaml index d13cceec4c..c47860bec1 100644 --- a/config/clusters/linc/staging.values.yaml +++ b/config/clusters/linc/staging.values.yaml @@ -1,16 +1,17 @@ -basehub: - jupyterhub: - ingress: - hosts: [staging.linc.2i2c.cloud] - tls: - - hosts: [staging.linc.2i2c.cloud] - secretName: https-auto-tls - hub: - config: - GitHubOAuthenticator: - oauth_callback_url: https://staging.linc.2i2c.cloud/hub/oauth_callback - custom: - homepage: - templateVars: - org: - name: MIT Linc (staging) +userServiceAccount: + annotations: + eks.amazonaws.com/role-arn: arn:aws:iam::211125562419:role/linc-staging + +jupyterhub: + ingress: + hosts: [staging.linc.2i2c.cloud] + tls: + - hosts: [staging.linc.2i2c.cloud] + secretName: https-auto-tls + hub: + config: + GitHubOAuthenticator: + oauth_callback_url: https://staging.linc.2i2c.cloud/hub/oauth_callback + singleuser: + extraEnv: + SCRATCH_BUCKET: s3://linc-scratch-staging/$(JUPYTERHUB_USER) diff --git a/eksctl/linc.jsonnet b/eksctl/linc.jsonnet index a201d51606..0b8effcf87 100644 --- a/eksctl/linc.jsonnet +++ b/eksctl/linc.jsonnet @@ -36,21 +36,18 @@ local notebookNodes = [ // 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, - } -]; -local daskNodes = [ - // Node definitions for dask worker nodes. Config here is merged - // with our dask worker node definition, which uses spot instances. - // A `node.kubernetes.io/instance-type label is set to the name of the - // *first* item in instanceDistribution.instanceTypes, to match - // what we do with notebook nodes. Pods can request a particular - // kind of node with a nodeSelector - // - // A not yet fully established policy is being developed about using a single - // node pool, see https://github.com/2i2c-org/infrastructure/issues/2687. - // - { instancesDistribution+: { instanceTypes: ["r5.4xlarge"] }}, + }, + { + instanceType: "g4dn.2xlarge", + tags+: { + "k8s.io/cluster-autoscaler/node-template/resources/nvidia.com/gpu": "1" + }, + // 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, + }, ]; +local daskNodes = []; { diff --git a/terraform/aws/projects/linc.tfvars b/terraform/aws/projects/linc.tfvars index ef5821b54a..d3d934c5fb 100644 --- a/terraform/aws/projects/linc.tfvars +++ b/terraform/aws/projects/linc.tfvars @@ -23,4 +23,4 @@ hub_cloud_permissions = { bucket_admin_access : ["scratch"], extra_iam_policy : "" }, -} \ No newline at end of file +} From d24f96376fb781b09627852369b4b6a989fea713 Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Wed, 3 Apr 2024 11:27:14 +0200 Subject: [PATCH 2/3] bican/dandi/linc: increase startTimeout to 15 mins (large images) --- config/clusters/bican/common.values.yaml | 1 + config/clusters/dandi/common.values.yaml | 1 + config/clusters/linc/common.values.yaml | 1 + 3 files changed, 3 insertions(+) diff --git a/config/clusters/bican/common.values.yaml b/config/clusters/bican/common.values.yaml index f76bd54b03..b0e4df21db 100644 --- a/config/clusters/bican/common.values.yaml +++ b/config/clusters/bican/common.values.yaml @@ -48,6 +48,7 @@ jupyterhub: - satra - djarecka singleuser: + startTimeout: 900 # 15 mins provides headroom for very large image pulls defaultUrl: /lab profileList: - display_name: "DANDI (CPU)" diff --git a/config/clusters/dandi/common.values.yaml b/config/clusters/dandi/common.values.yaml index a5104fcf57..dc93890eed 100644 --- a/config/clusters/dandi/common.values.yaml +++ b/config/clusters/dandi/common.values.yaml @@ -51,6 +51,7 @@ jupyterhub: userScheduler: enabled: true singleuser: + startTimeout: 900 # 15 mins provides headroom for very large image pulls defaultUrl: /lab profileList: - display_name: "DANDI (CPU)" diff --git a/config/clusters/linc/common.values.yaml b/config/clusters/linc/common.values.yaml index e429cb8f01..d5a020bf80 100644 --- a/config/clusters/linc/common.values.yaml +++ b/config/clusters/linc/common.values.yaml @@ -55,6 +55,7 @@ jupyterhub: - asmacdo - satra singleuser: + startTimeout: 900 # 15 mins provides headroom for very large image pulls defaultUrl: /lab profileList: - display_name: "DANDI (CPU)" From 6875eeaad868c9b47ee68dd8e5612e9147531cad Mon Sep 17 00:00:00 2001 From: Erik Sundell Date: Wed, 3 Apr 2024 12:39:45 +0200 Subject: [PATCH 3/3] bican/dandi/linc: update resource allocation to fit --- config/clusters/bican/common.values.yaml | 72 ++++++++++++------------ config/clusters/dandi/common.values.yaml | 72 ++++++++++++------------ config/clusters/linc/common.values.yaml | 72 ++++++++++++------------ 3 files changed, 108 insertions(+), 108 deletions(-) diff --git a/config/clusters/bican/common.values.yaml b/config/clusters/bican/common.values.yaml index b0e4df21db..3876b9ba1e 100644 --- a/config/clusters/bican/common.values.yaml +++ b/config/clusters/bican/common.values.yaml @@ -64,74 +64,74 @@ jupyterhub: mem_3_7: display_name: 3.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 3982682624 - mem_limit: 3982682624 - cpu_guarantee: 0.46875 - cpu_limit: 3.75 + mem_guarantee: 3982489550 + mem_limit: 3982489550 + cpu_guarantee: 0.465625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge default: true mem_7_4: display_name: 7.4 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 7965365248 - mem_limit: 7965365248 - cpu_guarantee: 0.9375 - cpu_limit: 3.75 + mem_guarantee: 7964979101 + mem_limit: 7964979101 + cpu_guarantee: 0.93125 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_14_8: display_name: 14.8 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 15930730496 - mem_limit: 15930730496 - cpu_guarantee: 1.875 - cpu_limit: 3.75 + mem_guarantee: 15929958203 + mem_limit: 15929958203 + cpu_guarantee: 1.8625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_29_7: display_name: 29.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 31861460992 - mem_limit: 31861460992 - cpu_guarantee: 3.75 - cpu_limit: 3.75 + mem_guarantee: 31859916406 + mem_limit: 31859916406 + cpu_guarantee: 3.725 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_60_6: - display_name: 60.6 GB RAM, upto 15.7 CPUs + display_name: 60.6 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 65094813696 - mem_limit: 65094813696 - cpu_guarantee: 7.86 - cpu_limit: 15.72 + mem_guarantee: 65094448840 + mem_limit: 65094448840 + cpu_guarantee: 7.8475 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_121_2: - display_name: 121.2 GB RAM, upto 15.7 CPUs + display_name: 121.2 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 130189627392 - mem_limit: 130189627392 - cpu_guarantee: 15.72 - cpu_limit: 15.72 + mem_guarantee: 130188897681 + mem_limit: 130188897681 + cpu_guarantee: 15.695 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_244_9: - display_name: 244.9 GB RAM, upto 63.6 CPUs + display_name: 244.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 263005526016 - mem_limit: 263005526016 - cpu_guarantee: 31.8 - cpu_limit: 63.6 + mem_guarantee: 262993656938 + mem_limit: 262993656938 + cpu_guarantee: 31.7875 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge mem_489_9: - display_name: 489.9 GB RAM, upto 63.6 CPUs + display_name: 489.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 526011052032 - mem_limit: 526011052032 - cpu_guarantee: 63.6 - cpu_limit: 63.6 + mem_guarantee: 525987313876 + mem_limit: 525987313876 + cpu_guarantee: 63.575 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge - display_name: "DANDI Matlab (CPU)" diff --git a/config/clusters/dandi/common.values.yaml b/config/clusters/dandi/common.values.yaml index dc93890eed..5b5adc0a4d 100644 --- a/config/clusters/dandi/common.values.yaml +++ b/config/clusters/dandi/common.values.yaml @@ -67,74 +67,74 @@ jupyterhub: mem_3_7: display_name: 3.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 3982682624 - mem_limit: 3982682624 - cpu_guarantee: 0.46875 - cpu_limit: 3.75 + mem_guarantee: 3982489550 + mem_limit: 3982489550 + cpu_guarantee: 0.465625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge default: true mem_7_4: display_name: 7.4 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 7965365248 - mem_limit: 7965365248 - cpu_guarantee: 0.9375 - cpu_limit: 3.75 + mem_guarantee: 7964979101 + mem_limit: 7964979101 + cpu_guarantee: 0.93125 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_14_8: display_name: 14.8 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 15930730496 - mem_limit: 15930730496 - cpu_guarantee: 1.875 - cpu_limit: 3.75 + mem_guarantee: 15929958203 + mem_limit: 15929958203 + cpu_guarantee: 1.8625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_29_7: display_name: 29.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 31861460992 - mem_limit: 31861460992 - cpu_guarantee: 3.75 - cpu_limit: 3.75 + mem_guarantee: 31859916406 + mem_limit: 31859916406 + cpu_guarantee: 3.725 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_60_6: - display_name: 60.6 GB RAM, upto 15.7 CPUs + display_name: 60.6 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 65094813696 - mem_limit: 65094813696 - cpu_guarantee: 7.86 - cpu_limit: 15.72 + mem_guarantee: 65094448840 + mem_limit: 65094448840 + cpu_guarantee: 7.8475 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_121_2: - display_name: 121.2 GB RAM, upto 15.7 CPUs + display_name: 121.2 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 130189627392 - mem_limit: 130189627392 - cpu_guarantee: 15.72 - cpu_limit: 15.72 + mem_guarantee: 130188897681 + mem_limit: 130188897681 + cpu_guarantee: 15.695 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_244_9: - display_name: 244.9 GB RAM, upto 63.6 CPUs + display_name: 244.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 263005526016 - mem_limit: 263005526016 - cpu_guarantee: 31.8 - cpu_limit: 63.6 + mem_guarantee: 262993656938 + mem_limit: 262993656938 + cpu_guarantee: 31.7875 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge mem_489_9: - display_name: 489.9 GB RAM, upto 63.6 CPUs + display_name: 489.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 526011052032 - mem_limit: 526011052032 - cpu_guarantee: 63.6 - cpu_limit: 63.6 + mem_guarantee: 525987313876 + mem_limit: 525987313876 + cpu_guarantee: 63.575 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge - display_name: "DANDI Matlab (CPU)" diff --git a/config/clusters/linc/common.values.yaml b/config/clusters/linc/common.values.yaml index d5a020bf80..1ba6913ec9 100644 --- a/config/clusters/linc/common.values.yaml +++ b/config/clusters/linc/common.values.yaml @@ -71,74 +71,74 @@ jupyterhub: mem_3_7: display_name: 3.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 3982682624 - mem_limit: 3982682624 - cpu_guarantee: 0.46875 - cpu_limit: 3.75 + mem_guarantee: 3982489550 + mem_limit: 3982489550 + cpu_guarantee: 0.465625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge default: true mem_7_4: display_name: 7.4 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 7965365248 - mem_limit: 7965365248 - cpu_guarantee: 0.9375 - cpu_limit: 3.75 + mem_guarantee: 7964979101 + mem_limit: 7964979101 + cpu_guarantee: 0.93125 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_14_8: display_name: 14.8 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 15930730496 - mem_limit: 15930730496 - cpu_guarantee: 1.875 - cpu_limit: 3.75 + mem_guarantee: 15929958203 + mem_limit: 15929958203 + cpu_guarantee: 1.8625 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_29_7: display_name: 29.7 GB RAM, upto 3.7 CPUs kubespawner_override: - mem_guarantee: 31861460992 - mem_limit: 31861460992 - cpu_guarantee: 3.75 - cpu_limit: 3.75 + mem_guarantee: 31859916406 + mem_limit: 31859916406 + cpu_guarantee: 3.725 + cpu_limit: 3.725 node_selector: node.kubernetes.io/instance-type: r5.xlarge mem_60_6: - display_name: 60.6 GB RAM, upto 15.7 CPUs + display_name: 60.6 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 65094813696 - mem_limit: 65094813696 - cpu_guarantee: 7.86 - cpu_limit: 15.72 + mem_guarantee: 65094448840 + mem_limit: 65094448840 + cpu_guarantee: 7.8475 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_121_2: - display_name: 121.2 GB RAM, upto 15.7 CPUs + display_name: 121.2 GB RAM, upto 15.6 CPUs kubespawner_override: - mem_guarantee: 130189627392 - mem_limit: 130189627392 - cpu_guarantee: 15.72 - cpu_limit: 15.72 + mem_guarantee: 130188897681 + mem_limit: 130188897681 + cpu_guarantee: 15.695 + cpu_limit: 15.695 node_selector: node.kubernetes.io/instance-type: r5.4xlarge mem_244_9: - display_name: 244.9 GB RAM, upto 63.6 CPUs + display_name: 244.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 263005526016 - mem_limit: 263005526016 - cpu_guarantee: 31.8 - cpu_limit: 63.6 + mem_guarantee: 262993656938 + mem_limit: 262993656938 + cpu_guarantee: 31.7875 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge mem_489_9: - display_name: 489.9 GB RAM, upto 63.6 CPUs + display_name: 489.9 GB RAM, upto 63.5 CPUs kubespawner_override: - mem_guarantee: 526011052032 - mem_limit: 526011052032 - cpu_guarantee: 63.6 - cpu_limit: 63.6 + mem_guarantee: 525987313876 + mem_limit: 525987313876 + cpu_guarantee: 63.575 + cpu_limit: 63.575 node_selector: node.kubernetes.io/instance-type: r5.16xlarge - display_name: "DANDI Matlab (CPU)"