Skip to content

2.20.0

Latest

Choose a tag to compare

@olevski olevski released this 27 Aug 07:37
e560830

Renku 2.20.0 introduces project storage — long-lived storage shared by everyone working on a project, which outlives individual sessions — along with persisted session and build logs, data export to EnviDat, and usage quotas. It also brings a substantial round of session, job and data connector fixes.

User-Facing Changes

🌟 New Features

  • 🐸 Project storage: Projects can now have long-lived storage that is shared among all users of the project and outlives sessions. Project members can create it from the project page and choose a size up to the limit set by the administrator (renku-ui #4258, renku-data-services #1396, renku #4574). Disabled by default — see the administrator notes. Administrators also have to explicitly add any project that should use stoage like this to an allow-list.
  • 🐸 Persisted logs: Logs from sessions, image builds and jobs are now collected and stored, so the log history remains available in the UI after the underlying pods are gone (renku-data-services #1383, renku-ui #4284, renku #4562). Disabled by default — see the administrator notes.
  • 🐸 Data export to EnviDat: Data can be exported from Renku to the EnviDat platform (renku-data-services #1329, renku-ui #4184, renku #4556). Disabled by default — see the administrator notes.
  • 🐸 Usage quotas: RenkuLab now surfaces usage quotas to users (renku-ui #4150). Enforcement of the quotas is disabled by default and and by default there are no usage quotas. This feature is still not ready for use in production.
  • Compute resources: Resource classes gained remote-specific fields for FirecREST-backed compute, and CPU values are now enforced as whole numbers where the remote scheduler requires it (renku-ui #4333, #4334, renku-data-services #1388).
  • Groups: A group's resource pool is now visible, and group projects can be granted access to resource pools from the admin page (renku-data-services #1418, renku-ui #4331). Note that the resource pools a group has access to are not displayed in the group pages yet. This feature is coming in a future release.

✨ Improvements

  • Data connectors: Data connectors can be deleted directly from a project's data connector listing and from the offcanvas panel (renku-ui #4283).
  • Data mounts: Cloud storage mounts now wait for the write queue to be flushed before unmounting, so data written at the end of a session is not lost (csi-rclone #95, renku #4570). Custom certificate authorities can also be used when mounting cloud storage (csi-rclone #94).
  • Integrations: Clearer message when no data connector providers are available (renku-ui #4286).
  • Projects: Project, session launcher and data connector detail views now show an identifier code that can be used to reference them (renku-ui #4318), and the project copy button takes up less space (renku-ui #4274).
  • RenkuLab: The landing page for anonymous visitors has been improved (renku-ui #4271) and RenkuLab has a new favicon (renku-ui #4297).
  • Sessions: Environment variables can be edited straight from the session launcher dropdown (renku-ui #4272), a starting session can be hibernated without waiting for it to come up (renku-ui #4273), and environments built from code show a repository access status pill (renku-ui #4243). The idle and hibernation thresholds shown in the UI are now taken from the deployment's own configuration instead of being hardcoded (renku-ui #4311, renku #4563). Sessions are also less likely to be disrupted by cluster maintenance thanks to a pod disruption budget (amalthea #1192).
  • Sessions (remote): For FirecREST-backed remote sessions, the requested session resources are now passed on to SLURM and a free port is selected automatically (amalthea #1205, #1208).

🐞 Bug Fixes

  • Data connectors: Credentials are now saved when editing an existing data connector, and the credentials interface no longer misleads about what was stored (renku-ui #4313, #4314).
  • Jobs: Empty job arguments are no longer submitted as arguments (renku-ui #4332), the frontend variant selector is no longer shown for jobs (renku-ui #4303), icons on job badges are aligned correctly (renku-ui #4327), and command/args are no longer overwritten for the jobs that run image builds (renku-data-services #1409).
  • Project storage: Resizing project storage now applies the new size in the cluster (renku-data-services #1423).
  • Resource pools: Fixed a display overflow in the resource pool selector (renku-ui #4299).
  • Search: Fixed several glitches in the search interface (renku-ui #4298).
  • Secrets: The secret location input is no longer silently disabled (renku-ui #4340).
  • Sessions: The frontend parameter of an environment is now read correctly (renku-data-services #1393), the launch button is only offered when an image is actually available (renku-ui #4304), and icons in the launcher dropdown are aligned properly (renku-ui #4326).
  • UI: Alert popovers can be closed and show a tooltip on the alert icon (renku-ui #4266), the GitHub integration success message now waits for the integration checks to complete (renku-ui #4263), and outdated documentation links were fixed (renku-ui #4324).

Internal Changes

Improvements

Bug Fixes

  • Data services: Temporarily skipped a Dataverse test that depends on an unstable external service (renku-data-services #1410).

Notes for Renku Administrators

This release bumps the amalthea-sessions, csi-rclone and keycloakx subcharts, so those components restart during the upgrade; if you install csi-rclone as part of Renku, plan the upgrade for a quiet moment, since restarting the CSI driver will unmount the storage in all active sessions.

The Keycloak update should be done after a backup of Keycloak.

Three new features are shipped disabled and require configuration:

  • Project storage (dataService.projectStorage): set enabled: true, and provide a storageClass that supports ReadWriteMany access and automatic volume provisioning — the cluster default usually does not. storageMaxSizeGb (default 10) caps what users may request. Some ReadWriteMany classes, especially object-storage backed ones, do not enforce real size limits and will keep growing. Set up backups for the volumes used for project storage. Also Renku will not prevent you from using a storage class that does not support ReadWriteMany but in this case the user sessions with project storage will simply NOT be usable.
  • Persisted logs (dataService.persistedLogs): set enabled: true and point lokiReadUrl at your Loki read API (default http://loki-read.monitoring.svc.cluster.local:3100/). ttlSeconds defaults to 24 hours. This requires a Loki installation reachable from the cluster; log volume grows the data services database.
  • EnviDat export (dataService.dataDeposits.envidat): set exportsEnabled: true and create the Kubernetes secret named in s3.credentialsSecretName (default renku-envidat-s3-credentials) with keys ACCESS_KEY_ID, SECRET_ACCESS_KEY, ENDPOINT and BUCKET. The secret must live in the Renku namespace. The secret contains credentials to a S3 bucket controlled by Envidat where data from data exports can be staged. Most Renku deployments other than renkulab.io will not need this feature and will not be able to get access to the staging S3 bucket.

Other chart changes: the session idle/hibernation culling thresholds are now passed into the UI pod so that the values shown to users match your configuration (renku #4563), and image builds can be pointed at insecure registries through the build strategy flag.

Individual components