Skip to content

v0.2.0

Choose a tag to compare

@hungdo-sami hungdo-sami released this 12 Jun 16:03
· 25 commits to main since this release
e2b975c

Highlights

Pick your kernel's CPU/RAM per session (#41): the Connect Kernel dialog has a Resources picker — admin-curated presets (Medium/Large/XLarge…) plus an optional capped Custom row.

  • k8s_per_user: applied as request=limit → Guaranteed QoS; the user gets exactly what they pick
  • docker_per_user: applied as the container's CPU/memory limits
  • Resize on connect: picking a different size restarts the kernel at the new size, with a warning showing the currently-running size
  • Opt-in: feature is off until kernel.resources.presets is set in values.yaml — upgrading changes nothing

Library feedback (#33)

Failed library installs are no longer silent — and the experience is consistent across PySpark and Scala:

  • A bad Maven coordinate now raises a toast naming the coordinate(s) that failed to resolve — on connect and on Manage Libraries → Apply & Restart — instead of a later cryptic ClassNotFoundException. Detected from the kernel log (PySpark, JVM stderr) and the init-cell error (Scala/Almond), so neither kernel slips through.
  • A resolution failure shows a red Spark not ready badge (not a misleading green Connected), blocks Run / Run All, and offers a Fix libraries action. The kernel stays alive for a fast in-pod fix — no teardown.
  • No more stuck Booting Spark… / starting badge after a failed or fixed library — the kernel returns to a usable state without a page reload.

Fixes

  • Resources picker shows the running kernel's size immediately after connect/resize (k8s usage previously hid it until metrics-server scraped, ~15s)
  • Docker resource-usage widget reads the live per-container CPU quota instead of static config
  • Disconnect spinner could hang forever when the backend was unreachable — request now has a timeout
  • Kernel pod termination grace cut 30s → 5s: resize/restart completes in ~12s instead of ~40s
  • Spawn no longer re-reads pod sizes from the DB row mid-spawn (a concurrent destroy could race it and revert to defaults)
  • Manage Libraries / Connect dialog no longer rescale or jump when a coordinate is pasted

Upgrade

# values.yaml — opt in by defining presets
kernel:
  resources:
    presets:
      - { id: medium,  label: "Medium",  cpu: "1", memory: "2Gi" }
      - { id: large,   label: "Large",   cpu: "2", memory: "4Gi" }
      - { id: xlarge,  label: "XLarge",  cpu: "4", memory: "8Gi" }
    defaultPreset: medium
    allowCustom: true
    custom: { maxCpu: "8", maxMemory: "16Gi" }

DB migration is automatic (new columns on user_kernel_pods; legacy rows fall back to cluster defaults).