Skip to content

[ENH] - Pull GPU-compatible Images for Lab profiles without hardcoding a SHA in pack config #230

Description

@kenafoster

Feature description

We have a Data Science pack (v0.1.4) running some CPU and some GPU JupyterLab profiles. (This is AWS EKS, and the config below includes selectors to put the profiles on the correct nodes)

The CPU-only nodes inherit the juptyerlab image tag from the chart (we don't need to override it) BUT the GPU-backed once require manually specifying the nebari-data-science-pack-jupyterlab-gpu and a corresponding tag.

This means as DS pack updates, the CPU profiles will update and get the new DS pack versions' configs, but the GPU will fall behind unless those tags are manually updated.

Could the pack add a feature that specifies a JupyterLab profile as a GPU node, and automatically pull the gpu image with the appropriate tag/SHA?

Here's a small snippet of the relevant config for data-science-pack.yaml

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: data-science-pack
spec:
  source:
    repoURL: https://github.com/nebari-dev/data-science-pack.git
    targetRevision: nebari-data-science-pack-0.1.3
    path: .
    helm:
      releaseName: data-science-pack
      values: |
        ...
        jupyterhub:
          custom:
            profiles:
            - slug: cpu-only
              display_name: "CPU Only"
              default: true
              kubespawner_override:
                 # No 'image' tag specified.  Inherits from values.yaml
                 ...
                node_selector:
                  node.kubernetes.io/instance-type: m5.large
            - slug: gpu
              display_name: "GPU Access"
              access: yaml
              groups:
                - gpu-access
              kubespawner_override:
                # Need to manually specify a -gpu image
                image: quay.io/nebari/nebari-data-science-pack-jupyterlab-gpu:sha-46289ab
                node_selector:
                  node.kubernetes.io/instance-type: g4dn.xlarge
                extra_resource_limits:
                  nvidia.com/gpu: 1
                tolerations:
                  - key: nvidia.com/gpu
                    operator: Equal
                    value: "true"
                    effect: NoSchedule
                ...

Value and/or benefit

Having to update GPU images to specific SHAs during pack update adds maintenance burden and is easily overlooked.

Anything else?

No response

Metadata

Metadata

Labels

No labels
No labels

Fields

Priority

Medium

Start date

Aug 24, 2026

Target date

Sep 4, 2026

Size

S

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions