diff --git a/config/clusters/catalystproject-africa/aibst.values.yaml b/config/clusters/catalystproject-africa/aibst.values.yaml index d54b36553..2a17d4265 100644 --- a/config/clusters/catalystproject-africa/aibst.values.yaml +++ b/config/clusters/catalystproject-africa/aibst.values.yaml @@ -22,3 +22,6 @@ jupyterhub: Authenticator: admin_users: - zchikwambi + singleuser: + nodeSelector: + 2i2c/hub-name: aibst diff --git a/config/clusters/catalystproject-africa/bhki.values.yaml b/config/clusters/catalystproject-africa/bhki.values.yaml index 6cda044ab..ed8ea43fe 100644 --- a/config/clusters/catalystproject-africa/bhki.values.yaml +++ b/config/clusters/catalystproject-africa/bhki.values.yaml @@ -26,5 +26,7 @@ jupyterhub: admin_users: - LandiMi2 singleuser: + nodeSelector: + 2i2c/hub-name: bhki extraEnv: PERSISTENT_BUCKET: s3://catalystproject-africa-persistent-bhki/$(JUPYTERHUB_USER) diff --git a/config/clusters/catalystproject-africa/bon.values.yaml b/config/clusters/catalystproject-africa/bon.values.yaml index 9b85456a4..8b75a6e83 100644 --- a/config/clusters/catalystproject-africa/bon.values.yaml +++ b/config/clusters/catalystproject-africa/bon.values.yaml @@ -23,3 +23,6 @@ jupyterhub: admin_users: - Seunolufemi123 - Emmanuel19-ada + singleuser: + nodeSelector: + 2i2c/hub-name: bon diff --git a/config/clusters/catalystproject-africa/kush.values.yaml b/config/clusters/catalystproject-africa/kush.values.yaml index 0a100dc4c..90f5b2ac9 100644 --- a/config/clusters/catalystproject-africa/kush.values.yaml +++ b/config/clusters/catalystproject-africa/kush.values.yaml @@ -22,3 +22,6 @@ jupyterhub: Authenticator: admin_users: - Fadlelmola + singleuser: + nodeSelector: + 2i2c/hub-name: kush diff --git a/config/clusters/catalystproject-africa/molerhealth.values.yaml b/config/clusters/catalystproject-africa/molerhealth.values.yaml index caa1d65e3..4a3f749ee 100644 --- a/config/clusters/catalystproject-africa/molerhealth.values.yaml +++ b/config/clusters/catalystproject-africa/molerhealth.values.yaml @@ -22,3 +22,6 @@ jupyterhub: Authenticator: admin_users: - Monsurat-Onabajo + singleuser: + nodeSelector: + 2i2c/hub-name: molerhealth diff --git a/config/clusters/catalystproject-africa/must.values.yaml b/config/clusters/catalystproject-africa/must.values.yaml index ab1414fbc..309f7e8fa 100644 --- a/config/clusters/catalystproject-africa/must.values.yaml +++ b/config/clusters/catalystproject-africa/must.values.yaml @@ -30,3 +30,6 @@ jupyterhub: Authenticator: admin_users: - "bkankuzi@must.ac.mw" + singleuser: + nodeSelector: + 2i2c/hub-name: must diff --git a/config/clusters/catalystproject-africa/nm-aist.values.yaml b/config/clusters/catalystproject-africa/nm-aist.values.yaml index a186f51db..f652e5687 100644 --- a/config/clusters/catalystproject-africa/nm-aist.values.yaml +++ b/config/clusters/catalystproject-africa/nm-aist.values.yaml @@ -30,3 +30,6 @@ jupyterhub: Authenticator: admin_users: - "beatus.lyimo@nm-aist.ac.tz" + singleuser: + nodeSelector: + 2i2c/hub-name: nm-aist diff --git a/config/clusters/catalystproject-africa/staging.values.yaml b/config/clusters/catalystproject-africa/staging.values.yaml index ab3e50ce7..6271995e2 100644 --- a/config/clusters/catalystproject-africa/staging.values.yaml +++ b/config/clusters/catalystproject-africa/staging.values.yaml @@ -25,3 +25,6 @@ jupyterhub: # Authenticator: # admin_users: # - future-community-champion + singleuser: + nodeSelector: + 2i2c/hub-name: staging diff --git a/config/clusters/catalystproject-africa/uvri.values.yaml b/config/clusters/catalystproject-africa/uvri.values.yaml index 6bbafe506..1bbce5c38 100644 --- a/config/clusters/catalystproject-africa/uvri.values.yaml +++ b/config/clusters/catalystproject-africa/uvri.values.yaml @@ -24,3 +24,6 @@ jupyterhub: Authenticator: admin_users: - eddUG + singleuser: + nodeSelector: + 2i2c/hub-name: uvri diff --git a/config/clusters/catalystproject-africa/wits.values.yaml b/config/clusters/catalystproject-africa/wits.values.yaml index c0b55ee33..619db755d 100644 --- a/config/clusters/catalystproject-africa/wits.values.yaml +++ b/config/clusters/catalystproject-africa/wits.values.yaml @@ -22,3 +22,6 @@ jupyterhub: Authenticator: admin_users: - gentlelab2016 + singleuser: + nodeSelector: + 2i2c/hub-name: wits diff --git a/eksctl/catalystproject-africa.jsonnet b/eksctl/catalystproject-africa.jsonnet index f25fb3890..620de86ef 100644 --- a/eksctl/catalystproject-africa.jsonnet +++ b/eksctl/catalystproject-africa.jsonnet @@ -25,6 +25,7 @@ local nodeAz = "af-south-1a"; // A `node.kubernetes.io/instance-type label is added, so pods // can request a particular kind of node with a nodeSelector local notebookNodes = [ + // staging hub { instanceType: "r5.xlarge", volumeSize: 400, @@ -33,39 +34,216 @@ local notebookNodes = [ tags+: { "2i2c:hub-name": "staging" }, }, { - instanceType: "r5.xlarge", + instanceType: "r5.4xlarge", volumeSize: 400, - namePrefix: "nb-prod", - labels+: { "2i2c/hub-name": "prod" }, - tags+: { "2i2c:hub-name": "prod" }, + namePrefix: "nb-staging", + labels+: { "2i2c/hub-name": "staging" }, + tags+: { "2i2c:hub-name": "staging" }, }, { - instanceType: "r5.4xlarge", + instanceType: "r5.16xlarge", volumeSize: 400, namePrefix: "nb-staging", labels+: { "2i2c/hub-name": "staging" }, tags+: { "2i2c:hub-name": "staging" }, }, + // nm-aist hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-nm-aist", + labels+: { "2i2c/hub-name": "nm-aist" }, + tags+: { "2i2c:hub-name": "nm-aist" }, + }, { instanceType: "r5.4xlarge", volumeSize: 400, - namePrefix: "nb-prod", - labels+: { "2i2c/hub-name": "prod" }, - tags+: { "2i2c:hub-name": "prod" }, + namePrefix: "nb-nm-aist", + labels+: { "2i2c/hub-name": "nm-aist" }, + tags+: { "2i2c:hub-name": "nm-aist" }, }, { instanceType: "r5.16xlarge", volumeSize: 400, - namePrefix: "nb-staging", - labels+: { "2i2c/hub-name": "staging" }, - tags+: { "2i2c:hub-name": "staging" }, + namePrefix: "nb-nm-aist", + labels+: { "2i2c/hub-name": "nm-aist" }, + tags+: { "2i2c:hub-name": "nm-aist" }, + }, + // must hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-must", + labels+: { "2i2c/hub-name": "must" }, + tags+: { "2i2c:hub-name": "must" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-must", + labels+: { "2i2c/hub-name": "must" }, + tags+: { "2i2c:hub-name": "must" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-must", + labels+: { "2i2c/hub-name": "must" }, + tags+: { "2i2c:hub-name": "must" }, + }, + // uvri hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-uvri", + labels+: { "2i2c/hub-name": "uvri" }, + tags+: { "2i2c:hub-name": "uvri" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-uvri", + labels+: { "2i2c/hub-name": "uvri" }, + tags+: { "2i2c:hub-name": "uvri" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-uvri", + labels+: { "2i2c/hub-name": "uvri" }, + tags+: { "2i2c:hub-name": "uvri" }, + }, + // wits hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-wits", + labels+: { "2i2c/hub-name": "wits" }, + tags+: { "2i2c:hub-name": "wits" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-wits", + labels+: { "2i2c/hub-name": "wits" }, + tags+: { "2i2c:hub-name": "wits" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-wits", + labels+: { "2i2c/hub-name": "wits" }, + tags+: { "2i2c:hub-name": "wits" }, + }, + // kush hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-kush", + labels+: { "2i2c/hub-name": "kush" }, + tags+: { "2i2c:hub-name": "kush" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-kush", + labels+: { "2i2c/hub-name": "kush" }, + tags+: { "2i2c:hub-name": "kush" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-kush", + labels+: { "2i2c/hub-name": "kush" }, + tags+: { "2i2c:hub-name": "kush" }, + }, + // molerhealth hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-molerhealth", + labels+: { "2i2c/hub-name": "molerhealth" }, + tags+: { "2i2c:hub-name": "molerhealth" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-molerhealth", + labels+: { "2i2c/hub-name": "molerhealth" }, + tags+: { "2i2c:hub-name": "molerhealth" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-molerhealth", + labels+: { "2i2c/hub-name": "molerhealth" }, + tags+: { "2i2c:hub-name": "molerhealth" }, + }, + // aibst hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-aibst", + labels+: { "2i2c/hub-name": "aibst" }, + tags+: { "2i2c:hub-name": "aibst" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-aibst", + labels+: { "2i2c/hub-name": "aibst" }, + tags+: { "2i2c:hub-name": "aibst" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-aibst", + labels+: { "2i2c/hub-name": "aibst" }, + tags+: { "2i2c:hub-name": "aibst" }, + }, + // bhki hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-bhki", + labels+: { "2i2c/hub-name": "bhki" }, + tags+: { "2i2c:hub-name": "bhki" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-bhki", + labels+: { "2i2c/hub-name": "bhki" }, + tags+: { "2i2c:hub-name": "bhki" }, + }, + { + instanceType: "r5.16xlarge", + volumeSize: 400, + namePrefix: "nb-bhki", + labels+: { "2i2c/hub-name": "bhki" }, + tags+: { "2i2c:hub-name": "bhki" }, + }, + // bon hub + { + instanceType: "r5.xlarge", + volumeSize: 400, + namePrefix: "nb-bon", + labels+: { "2i2c/hub-name": "bon" }, + tags+: { "2i2c:hub-name": "bon" }, + }, + { + instanceType: "r5.4xlarge", + volumeSize: 400, + namePrefix: "nb-bon", + labels+: { "2i2c/hub-name": "bon" }, + tags+: { "2i2c:hub-name": "bon" }, }, { instanceType: "r5.16xlarge", volumeSize: 400, - namePrefix: "nb-prod", - labels+: { "2i2c/hub-name": "prod" }, - tags+: { "2i2c:hub-name": "prod" }, + namePrefix: "nb-bon", + labels+: { "2i2c/hub-name": "bon" }, + tags+: { "2i2c:hub-name": "bon" }, }, ]; local daskNodes = []; @@ -140,7 +318,7 @@ local daskNodes = []; [ ng + { namePrefix: 'core', - nameSuffix: 'a', + nameSuffix: 'b', nameIncludeInstanceType: false, availabilityZones: [nodeAz], ssh: { @@ -153,6 +331,7 @@ local daskNodes = []; "hub.jupyter.org/node-purpose": "core", "k8s.dask.org/node-purpose": "core" }, + tags+: { "2i2c:node-purpose": "core" }, }, ] + [ ng + { @@ -168,6 +347,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"