Skip to content

Commit

Permalink
Drastically simplify OpenScapes profile options
Browse files Browse the repository at this point in the history
Based on discussing how profiles were actually being used
with the openscapes folks
(2i2c-org#2882)

Generated via the scripts in
2i2c-org#3030
  • Loading branch information
yuvipanda committed Aug 25, 2023
1 parent 8ba4f82 commit 3209858
Show file tree
Hide file tree
Showing 2 changed files with 47 additions and 335 deletions.
231 changes: 47 additions & 184 deletions config/clusters/openscapes/common.values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -34,207 +34,70 @@ basehub:
singleuser:
serviceAccountName: cloud-user-sa
defaultUrl: /lab
# User image repo: https://github.com/NASA-Openscapes/corn
image:
name: 783616723547.dkr.ecr.us-west-2.amazonaws.com/user-image
tag: "d78bb6c"
nodeSelector:
node.kubernetes.io/instance-type: r5.xlarge
storage:
extraVolumeMounts:
- name: home
mountPath: /home/jovyan/shared
subPath: _shared
readOnly: false
profileList:
# NOTE: About node sharing
#
# CPU/Memory requests/limits are actively considered still. This
# profile list is setup to involve node sharing as considered in
# https://github.com/2i2c-org/infrastructure/issues/2121.
#
# - Memory requests are different from the description, based on:
# whats found to remain allocate in k8s, subtracting 1GiB
# overhead for misc system pods, and transitioning from GB in
# description to GiB in mem_guarantee.
# - CPU requests are lower than the description, with a factor of
# 10%.
#
- display_name: "Small: up to 4 CPU / 32 GB RAM"
description: &profile_list_description "Start a container with at least a chosen share of capacity on a node of this type"
slug: small
- display_name: Python
description: Python datascience environment, with upto 4 CPUs
default: true
profile_options:
image: &profile_options_image
display_name: Image
choices:
python:
display_name: Python
default: true
slug: python
kubespawner_override:
image: openscapes/python:f577786
rocker:
display_name: R
slug: rocker
kubespawner_override:
image: openscapes/rocker:a7596b5
matlab:
display_name: Matlab
slug: matlab
kubespawner_override:
image: openscapes/matlab:2023-06-29
requests:
# NOTE: Node share choices are in active development, see comment
# next to profileList: above.
display_name: Node share
choices:
mem_1:
default: true
display_name: ~1 GB, ~0.125 CPU
kubespawner_override:
mem_guarantee: 0.904G
cpu_guarantee: 0.013
mem_2:
display_name: ~2 GB, ~0.25 CPU
kubespawner_override:
mem_guarantee: 1.809G
cpu_guarantee: 0.025
mem_4:
display_name: ~4 GB, ~0.5 CPU
kubespawner_override:
mem_guarantee: 3.617G
cpu_guarantee: 0.05
mem_8:
display_name: ~8 GB, ~1.0 CPU
kubespawner_override:
mem_guarantee: 7.234G
cpu_guarantee: 0.1
mem_16:
display_name: ~16 GB, ~2.0 CPU
kubespawner_override:
mem_guarantee: 14.469G
cpu_guarantee: 0.2
mem_32:
display_name: ~32 GB, ~4.0 CPU
kubespawner_override:
mem_guarantee: 28.937G
cpu_guarantee: 0.4
kubespawner_override:
cpu_limit: null
mem_limit: null
node_selector:
node.kubernetes.io/instance-type: r5.xlarge
- display_name: "Medium: up to 16 CPU / 128 GB RAM"
description: *profile_list_description
slug: medium
profile_options:
image: *profile_options_image
image: openscapes/python:f577786
profile_options: &profile_options
requests:
# NOTE: Node share choices are in active development, see comment
# next to profileList: above.
display_name: Node share
display_name: Resource Allocation
choices:
mem_1:
display_name: ~1 GB, ~0.125 CPU
display_name: 1.9 GB RAM
kubespawner_override:
mem_guarantee: 0.942G
cpu_guarantee: 0.013
mem_guarantee: 1992701952
mem_limit: 1992701952
cpu_guarantee: 0.234375
cpu_limit: 3.75
mem_2:
display_name: ~2 GB, ~0.25 CPU
kubespawner_override:
mem_guarantee: 1.883G
cpu_guarantee: 0.025
display_name: 3.7 GB RAM
kubespawner_override:
mem_guarantee: 3985403904
mem_limit: 3985403904
cpu_guarantee: 0.46875
cpu_limit: 3.75
mem_3:
display_name: 7.4 GB RAM
kubespawner_override:
mem_guarantee: 7970807808
mem_limit: 7970807808
cpu_guarantee: 0.9375
cpu_limit: 3.75
mem_4:
default: true
display_name: ~4 GB, ~0.5 CPU
kubespawner_override:
mem_guarantee: 3.766G
cpu_guarantee: 0.05
mem_8:
display_name: ~8 GB, ~1.0 CPU
kubespawner_override:
mem_guarantee: 7.532G
cpu_guarantee: 0.1
mem_16:
display_name: ~16 GB, ~2.0 CPU
kubespawner_override:
mem_guarantee: 15.064G
cpu_guarantee: 0.2
mem_32:
display_name: ~32 GB, ~4.0 CPU
kubespawner_override:
mem_guarantee: 30.128G
cpu_guarantee: 0.4
mem_64:
display_name: ~64 GB, ~8.0 CPU
kubespawner_override:
mem_guarantee: 60.257G
cpu_guarantee: 0.8
mem_128:
display_name: ~128 GB, ~16.0 CPU
kubespawner_override:
mem_guarantee: 120.513G
cpu_guarantee: 1.6
display_name: 14.8 GB RAM
kubespawner_override:
mem_guarantee: 15941615616
mem_limit: 15941615616
cpu_guarantee: 1.875
cpu_limit: 3.75
mem_5:
display_name: 29.7 GB RAM
kubespawner_override:
mem_guarantee: 31883231232
mem_limit: 31883231232
cpu_guarantee: 3.75
cpu_limit: 3.75

- display_name: R
description: R environment (with RStudio), with upto 4 CPUs
kubespawner_override:
cpu_limit: null
mem_limit: null
node_selector:
node.kubernetes.io/instance-type: r5.4xlarge
- display_name: "Large: up to 64 CPU / 512 GB RAM"
description: *profile_list_description
slug: large
profile_options:
image: *profile_options_image
requests:
# NOTE: Node share choices are in active development, see comment
# next to profileList: above.
display_name: Node share
choices:
mem_4:
display_name: ~4 GB, ~0.5 CPU
kubespawner_override:
mem_guarantee: 3.821G
cpu_guarantee: 0.05
mem_8:
display_name: ~8 GB, ~1.0 CPU
kubespawner_override:
mem_guarantee: 7.643G
cpu_guarantee: 0.1
mem_16:
default: true
display_name: ~16 GB, ~2.0 CPU
kubespawner_override:
mem_guarantee: 15.285G
cpu_guarantee: 0.2
mem_32:
display_name: ~32 GB, ~4.0 CPU
kubespawner_override:
mem_guarantee: 30.571G
cpu_guarantee: 0.4
mem_64:
display_name: ~64 GB, ~8.0 CPU
kubespawner_override:
mem_guarantee: 61.141G
cpu_guarantee: 0.8
mem_128:
display_name: ~128 GB, ~16.0 CPU
kubespawner_override:
mem_guarantee: 122.282G
cpu_guarantee: 1.6
mem_256:
display_name: ~256 GB, ~32.0 CPU
kubespawner_override:
mem_guarantee: 244.565G
cpu_guarantee: 3.2
mem_512:
display_name: ~512 GB, ~64.0 CPU
kubespawner_override:
mem_guarantee: 489.13G
cpu_guarantee: 6.4
image: openscapes/rocker:a7596b5
profile_options: *profile_options
- display_name: Matlab
description: Matlab environment, with upto 4 CPUs
kubespawner_override:
cpu_limit: null
mem_limit: null
node_selector:
node.kubernetes.io/instance-type: r5.16xlarge
image: openscapes/matlab:2023-06-29
profile_options: *profile_options
scheduling:
userScheduler:
enabled: true
Expand Down
Loading

0 comments on commit 3209858

Please sign in to comment.