Skip to content

Commit

Permalink
Merge pull request #5123 from sgibson91/smithsonian/dedicated-nodegroups
Browse files Browse the repository at this point in the history
smithsonian: create hub-specific nodegroups
  • Loading branch information
sgibson91 authored Nov 15, 2024
2 parents 90476b9 + 45ff509 commit 2f69308
Show file tree
Hide file tree
Showing 3 changed files with 64 additions and 5 deletions.
3 changes: 3 additions & 0 deletions config/clusters/smithsonian/prod.values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ basehub:
config:
GitHubOAuthenticator:
oauth_callback_url: https://smithsonian.2i2c.cloud/hub/oauth_callback
singleuser:
nodeSelector:
2i2c/hub-name: prod
3 changes: 3 additions & 0 deletions config/clusters/smithsonian/staging.values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,6 @@ basehub:
config:
GitHubOAuthenticator:
oauth_callback_url: https://staging.smithsonian.2i2c.cloud/hub/oauth_callback
singleuser:
nodeSelector:
2i2c/hub-name: staging
63 changes: 58 additions & 5 deletions eksctl/smithsonian.jsonnet
Original file line number Diff line number Diff line change
Expand Up @@ -25,12 +25,63 @@ local nodeAz = "us-east-2b";
// A `node.kubernetes.io/instance-type label is added, so pods
// can request a particular kind of node with a nodeSelector
local notebookNodes = [
{ instanceType: "r5.xlarge" },
{ instanceType: "r5.4xlarge" },
{ instanceType: "r5.16xlarge" },
{
instanceType: "r5.xlarge",
namePrefix: "nb-staging",
labels+: { "2i2c/hub-name": "staging" },
tags+: { "2i2c:hub-name": "staging" },
},
{
instanceType: "r5.xlarge",
namePrefix: "nb-prod",
labels+: { "2i2c/hub-name": "prod" },
tags+: { "2i2c:hub-name": "prod" },
},
{
instanceType: "r5.4xlarge",
namePrefix: "nb-staging",
labels+: { "2i2c/hub-name": "staging" },
tags+: { "2i2c:hub-name": "staging" },
},
{
instanceType: "r5.4xlarge",
namePrefix: "nb-prod",
labels+: { "2i2c/hub-name": "prod" },
tags+: { "2i2c:hub-name": "prod" },
},
{
instanceType: "r5.16xlarge",
namePrefix: "nb-staging",
labels+: { "2i2c/hub-name": "staging" },
tags+: { "2i2c:hub-name": "staging" },
},
{
instanceType: "r5.16xlarge",
namePrefix: "nb-prod",
labels+: { "2i2c/hub-name": "prod" },
tags+: { "2i2c:hub-name": "prod" },
},
{
instanceType: "g4dn.xlarge",
namePrefix: "nb-staging",
labels+: { "2i2c/hub-name": "staging" },
tags+: {
"2i2c:hub-name": "staging",
"k8s.io/cluster-autoscaler/node-template/resources/nvidia.com/gpu": "1"
},
taints+: {
"nvidia.com/gpu": "present: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,
},
{
instanceType: "g4dn.xlarge",
namePrefix: "nb-prod",
labels+: { "2i2c/hub-name": "prod" },
tags+: {
"2i2c:hub-name": "prod",
"k8s.io/cluster-autoscaler/node-template/resources/nvidia.com/gpu": "1"
},
taints+: {
Expand Down Expand Up @@ -62,7 +113,7 @@ local daskNodes = [
metadata+: {
name: "smithsonian",
region: clusterRegion,
version: "1.29",
version: "1.30",
},
availabilityZones: masterAzs,
iam: {
Expand Down Expand Up @@ -93,7 +144,7 @@ local daskNodes = [
[
ng + {
namePrefix: 'core',
nameSuffix: 'a',
nameSuffix: 'b',
nameIncludeInstanceType: false,
availabilityZones: [nodeAz],
ssh: {
Expand All @@ -106,6 +157,7 @@ local daskNodes = [
"hub.jupyter.org/node-purpose": "core",
"k8s.dask.org/node-purpose": "core"
},
tags+: { "2i2c:node-purpose": "core" },
},
] + [
ng + {
Expand All @@ -121,6 +173,7 @@ local daskNodes = [
"hub.jupyter.org/node-purpose": "user",
"k8s.dask.org/node-purpose": "scheduler"
},
tags+: { "2i2c:node-purpose": "user" },
taints+: {
"hub.jupyter.org_dedicated": "user:NoSchedule",
"hub.jupyter.org/dedicated": "user:NoSchedule"
Expand Down

0 comments on commit 2f69308

Please sign in to comment.