Release notes#
The releases of Hopsworks 5.2, newest first.
5.2.3#
Helm chart 5.2.3 · Released on 2026-10-29 · Changes since 5.2.2 · Python client 5.2.2, unchanged
Breaking changes#
- HELM Mirror
envoyproxy/envoy:v1.38.0to the pathenvoyproxy/envoyof your registry before the upgrade whenglobal._hopsworks.imageRegistrypoints at your own: Python apps now pull their Envoy sidecar from that registry instead of Docker Hub, so air-gapped installs can start them (Envoy image of Python apps).
Upgrade steps#
Follow Changes from 5.2.3 in the upgrade guide.
Configuration changes#
- HELM Added
hopsworks.variables.python_app_envoy_image_version(defaultv1.38.0), the tag of the Envoy sidecar of Python apps (values).
Python client#
The Python client is unchanged, 5.2.2.
5.2.2#
Helm chart 5.2.2 · Released on 2026-10-28 · Changes since 5.2.1 · Python client 5.2.2
What's changed#
- API Addressed vulnerabilities in the ArrowFlight server.
- API FRONTEND Addressed vulnerabilities in the Trino and Superset services of projects.
- API Fixed the OTLP sidecar of agent deployments with tracing running out of memory under ordinary traffic, which took the deployment out of service while the sidecar restarted; the sidecar now drops telemetry it can't keep up with instead of buffering it (OTLP sidecar).
- API FRONTEND HELM Fixed Python app pods staying in
ContainerCreatingafter their execution ended; an app that was ready now ends only afterhopsworks.variables.pythonapp_unready_timeout_seconds(600) without a ready container. - API FRONTEND HELM Added GPU scheduling through NVIDIA Run:ai (
hopsworks.variables.run_ai_enable, off by default), which binds every project to a Run:ai project so that Run:ai quotas, fair share and preemption apply to its pods, shows the project's GPU quota in the UI and addsProject.get_gpu_availability()to the Python client, which reports the cluster's GPUs when Run:ai is off; it can't be combined with Kueue (Run:ai). - API FRONTEND HELM Added SharePoint data sources, which copy a folder of a SharePoint Online document library into a project dataset once or on a schedule, also with
SharePointConnector.create_syncandcopy_folderin the Python client andhops datasource sharepoint;hopsworks.variables.enable_sharepoint_storage_connectorsturns them off (SharePoint). - API FRONTEND HELM Added Hopsworks data sources, which read the feature groups of a project on another Hopsworks cluster through ArrowFlight, as external feature groups or with dltHub ingestion, also with
hops datasource create hopsworks;hopsworks.variables.enable_hopsworks_storage_connectorsturns them off (Hopsworks data source). - API FRONTEND Added Microsoft SQL Server and Azure SQL Database as SQL data sources, read through Spark, ArrowFlight, Trino catalogs and dltHub ingestion (SQL Server).
- API FRONTEND Added departments, which group projects: administrators create them and move projects between them in the cluster settings, and
hopsworks.create_projectin the Python client takes adepartment. - API FRONTEND HELM Changed public (no-login) access to apps to cover every kind of app instead of only Streamlit apps, turned on by
hopsworks.variables.enable_public_apps(public access). - API FRONTEND Added a table viewer to the Apps page, and the dropping of an app's tables when the app is deleted, for apps created from 5.2.2 on, which create their tables with
App.create_tableand change them withApp.alter_tablein the Python client (database access). - API Added
limittoFeatureGroup.readandExternalFeatureGroup.readin the Python client, and changed limited reads through ArrowFlight, such asshow(n)andhops fg preview, to stop after that many rows instead of reading the whole feature group. - API FRONTEND Fixed starting a terminal, notebook, Python job, Python app or deployment without enough project quota being accepted and then failing without a reason; the start is now refused with
Project quota exceeded, and the Jupyter, Jobs and Deployments pages show the project's quota. - API FRONTEND Fixed saving a Python app on a cluster with Kueue failing with
Queues in Kueue are not supported for:PythonApp. - API FRONTEND Fixed the Spark properties of a job or a Jupyter server written with spaces around
=, such asspark.executor.cores = 2, being ignored. - API Fixed
get_feature_groupswithout a name in the Python client returning external feature groups and spine groups as managed ones, soget_external_feature_groupswithout a name returned none. - API Fixed
hops fg create-externalsaving the feature group without its--queryor--path, added--featuresand--onlineto it and--typetohops fg list, and changed the type label of managed feature groups inhops fg listandhops fg infofromcachedtomanaged. - API Fixed
hopsworks.login()and Kafka inserts failing withFileNotFoundErroron Windows, where the Python client used/tmp. - API Fixed waiting for an online ingestion of no rows in the Python client lasting until its timeout, or forever with
timeout0. - API FRONTEND Fixed apps whose name makes their Deployment name longer than 54 characters never scaling to zero when idle.
- FRONTEND Addressed vulnerabilities in Jupyter, Python apps, the Spark UI and the Ray dashboard.
- FRONTEND HELM Added Compute Allocation to the cluster settings of a cluster with Kueue, where administrators set the compute each department and project is guaranteed and can borrow, which Hopsworks applies as Kueue Cohorts and ClusterQueues, and follow its use. It needs
global._hopsworks.kueue.queueModel: per_project, set at install; moving a running cluster fromshared, the default, is not supported. - FRONTEND HELM Added editing of node labels and priority classes to the Kubernetes Scheduler cluster settings, once
hopsworks.rbac.nodeLabels.editandhopsworks.rbac.priorityClasses.editgrant Hopsworks the permissions, both off by default.hopsworks.rbac.nodeLabels.editgrants patch on every node, which Kubernetes RBAC can't limit to labels, so it also allows changing taints. - FRONTEND Changed Extract in the file browser to unzip or untar an archive in a background Terminal tab, instead of in a Spark job that copied it to a node's local disk and could fill it; without the Terminal it still runs the job.
- FRONTEND Added the selection of several files in the file browser, by dragging, Ctrl or Cmd-click and Shift-click, and their deletion with Delete or the Delete key.
- FRONTEND Added cancelling uploads in the file browser, per file or with Cancel all.
- FRONTEND Added sorting a dataset in the file browser by Last update and Author, and fixed going up to the dataset root after sorting a folder failing with HTTP 404.
- FRONTEND Added a show shared switch to the feature group list, which hides the feature groups shared with the project.
- FRONTEND Added a Project limit reached notice to the create project page, which turns off Create New Project once the user has reached their project limit, instead of showing only the error of a failed create.
- FRONTEND Fixed the Add members dialog saying every user is already a member on clusters with user search disabled.
- FRONTEND Fixed Test connection of Oracle data sources showing
Connection Failurefor a connection that works. - FRONTEND Fixed the admin Users page not scrolling, which left most users out of reach, and added a sortable Last login column.
- FRONTEND Fixed error messages that were empty or generic for many failed actions, and 502 and 503 errors showing the raw HTML page of the ingress.
- FRONTEND Fixed a feature store shared with a project, or unshared from it, showing the change only after logging out and in again.
- FRONTEND Fixed a failed Jupyter start showing an exception class name, such as
KubeException, instead of the reason. - HELM Fixed Airflow on 5.2.0 and 5.2.1 having no
task_rescheduletable, and the upgrade from 5.1 emptying the Airflow tables after it, such as variables and XComs; the upgrade to 5.2.2 creates the missing table, and a failed conversion now fails the Airflow migrate Job. Rows that an earlier upgrade to 5.2.0 or 5.2.1 lost are not restored: re-create them or restore them from a backup. - HELM Fixed an OpenSearch snapshot restore leaving the
.opendistro_securityindex closed, after which OpenSearch crash-loops (recover a cluster restored on 5.2.0 or 5.2.1). - HELM Fixed a fresh
helm install --waithanging when it ran more than an hour after the Trino auth seed Job finished, because the Job's TTL deleted it. - HELM Added support for Kubernetes 1.33, which the chart refused below 1.34.
- HELM Changed the KEDA CRD upgrade hook to read the CRDs from the
hopsworks/keda-crdsimage (hw-keda.crdUpgradeJob.image) instead of a hook ConfigMap, which took 13% of the 1 MiB Helm release Secret; mirror that image on an airgapped cluster (KEDA CRDs). - HELM Moved the upgrade guide and the Helm 4 migration notes from the chart's
UPGRADE.mdandHELM4_MIGRATION.mdto the docs (upgrading Hopsworks, upgrading with Helm 4). - HELM Fixed the Jobs of the VPA install and uninstall, the Kueue objects, the Trino auth seed, the Airflow key bootstrap, Velero backups and the OpenSearch reindex ignoring
global._hopsworks.nodeSelectorandglobal._hopsworks.tolerations, and the wipe Job ignoringglobal._hopsworks.nodeSelector(dedicated node pools). - HELM Fixed the
TooManyShardsalert never firing; a cluster above 90% of its shard limit starts alerting after the upgrade. - Addressed vulnerabilities in the Hopsworks server image and its dependencies, the UI dependencies and the database migration image.
- Addressed vulnerabilities in the Superset, Prometheus, Grafana, OpenSearch Dashboards, OpenSearch metrics exporter, Logstash and Trino images.
- Addressed vulnerabilities in the Python environment base images and in the Airflow, terminal, Kafka, Vertical Pod Autoscaler, Spark operator CRD, KServe, KEDA HTTP add-on, remote shuffle service init and BuildKit images.
- Fixed the statistics cleaner's query taking an hour or more per run on clusters with many feature statistics, during which it blocked the schema migrations of the statistics tables.
- Fixed the Superset Redis being OOM-killed every few hours by zombie processes its health probes left behind.
- Changed the RonDB REST server to size its buffer pool from its memory limit, return idle buffers after 15 minutes and opt out of transparent huge pages, so that its memory stays bounded.
Breaking changes#
- API FRONTEND HELM Changed how OnlineFS checks the topic of the records it writes, to address a vulnerability (what this affects). Restart the producers that hold on to a topic after it changes; on a Kafka where records reach OnlineFS on a renamed topic, such as a mirrored secondary, set
onlinefs.configmapOverrides.onlinefssite.service.verifyFeatureGroupTopic: false. - API FRONTEND On a cluster with Kueue, Spark jobs are now queued by Kueue and run with static executors instead of dynamic allocation: a job saved with dynamic allocation runs its dynamic-allocation minimum, at least one executor, and
spark.dynamicAllocation.enabled=trueis refused; setspark.executor.instancesfor more executors (what changes). - API FRONTEND The upgrade deletes the Deployment of every Python app whose executions have all ended, also one that still answers requests; start such an app again to keep it running.
- API FRONTEND Apps created from 5.2.2 on can only read the online feature store database, apart from the tables they create with
App.create_tableand change withApp.alter_tablein the Python client, or withcreateTableandalterTableof@hopsworks/appin Node.js; before, the apps of Data Owners could create, alter and write to any of its tables with their own SQL (database access). - API Python clients older than 5.2.2 fail to list the data sources of a feature store that has a Hopsworks or SharePoint data source; use the 5.2.2 client in the jobs and environments that list them (client version).
- API FRONTEND Ingestion from a MongoDB data source, and fetching its schema, now needs MongoDB 4.4 or later instead of 4.2.
- FRONTEND Because of a security fix, open Jupyter servers from the Hopsworks UI.
- FRONTEND Because of a security fix, give a Python app that calls Hopsworks credentials of its own, such as an API key.
- HELM Hopsworks now uses Kueue 0.20.3 installed as its own release,
kueueinkueue-system, instead of the Kueue 0.12.2 bundled in its namespace, and the chart refuses to render while the bundled Kueue still runs (Kueue outside the Hopsworks namespace). Withglobal._hopsworks.kueue.enabled: true, move Kueue with the 5.1 chart'smigrate-to-external.shbefore the upgrade, run the chart'supgrade-kueue.shafter it, and removehw-kueue.managerConfig,hw-kueue.nameOverrideand everyhw-kueue.kueuevalue butenabledfrom your values, or the values schema rejects the upgrade. - HELM Remove
rondb.rondb.rdrs.internal.bufferSize,gomaxprocsandmaxAllocatedBuffersfrom your values, which the chart ignored, orhelm upgradefails before changing anything. - HELM The hopsworks, HopsFS and Hive schema migrations now run on the DDL SQL node instead of the application SQL nodes, so they no longer wait for application queries; a cluster that disables it (
rondb.rondb.meta.ddlMySQLd.enabled: false) setshopsworks.dependencies.mysql.ddlConsulServiceName,hopsfs.dependencies.mysql.ddlConsulServiceNameandhive.metastore.dependencies.mysql.ddlConsulServiceNametomysql, or the migrations wait for a SQL node that doesn't exist (DDL SQL node). - HELM The chart package no longer ships
values.aws.yaml,values.azure.yml,values.gcp.yaml,values.rhel8.yamlandvalues.nodeselector-tolerations.yaml; keep a copy of the one you pass, or start from the values file of the AWS, Azure or GCP setup guide and take the RHEL 8 and node pool values from Python build performance and dedicated node pools.
Deprecations#
- HELM Deprecated
hopsworks.variables.streamlit_sharing; usehopsworks.variables.enable_public_apps, which covers every kind of app, andtruein either one turns public access on.
Upgrade steps#
Follow Changes from 5.2.2 in the upgrade guide.
Upgraded components#
| Component | 5.2.1 | 5.2.2 |
|---|---|---|
| Airflow image | 5.2.0 | 5.2.1 |
| Alertmanager | 0.34.0-alpine-h1.1 | 0.34.0-alpine-h2.1 |
| ArrowFlight server | 5.2.0 | 5.2.1 |
| Base environment images | 5.2.1 | 5.2.3 |
| BuildKit | v0.32.2 | v0.34.1 |
| Grafana | 12.4.9-h12 | 12.4.13-h0 |
| Kafka | 1.2.0-kafka-4.3.1-h1 | 1.2.0-kafka-4.3.1-h2 |
| KEDA HTTP add-on | 0.16.0 | 0.16.0-h2 |
| KServe | v0.21.0 | 0.21.0-h1 |
| KServe RBAC proxy | v0.18.0 | v0.23.0 |
| KServe utilities | 0.1.11 | 0.1.12 |
| kube-state-metrics | v2.12.0 | 2.20.0-alpine-h2.0 |
| Logstash | 7.17.29.6 | 7.17.29.7 |
| MySQL Connector/J | 8.0.21.1 | 8.0.21.2 |
| OnlineFS | 2.5 | 2.5.2 |
| OpenSearch Dashboards | 3.8.0.0 | 3.8.0.1 |
| OpenSearch metrics exporter | 1.11.0-alpine-h1.1 | 1.11.0-alpine-h2.1 |
| Payara | 6.2025.11-jdk21.1 | 6.2025.11-jdk21.2 |
| Prometheus | 3.14.0-alpine-h1.1 | 3.15.1-alpine-h2.0 |
| Prometheus adapter | 0.12.0-alpine-h1.1 | 0.12.0-alpine-h2.1 |
| Prometheus config reloader | 0.93.1-alpine-h1.1 | 0.93.1-alpine-h2.1 |
| Prometheus node exporter | 1.12.1-alpine-h1.1 | 1.12.1-alpine-h2.1 |
| Pushgateway | 1.11.3-alpine-h1.1 | 1.11.3-alpine-h2.1 |
| Remote shuffle service init image | 0.9.2 | 0.9.3 |
| RonDB | 26.02.11 | 26.02.12 |
| Spark operator | 2.5.1-h1-1.9 | 2.5.1-h1-1.10 |
| Superset | 6.0.0p4.5 | 6.0.0p4.6 |
| Superset init image | 0.14.0-alpine-h1.1 | 0.14.0-alpine-h2.1 |
| Superset MySQL | 8.4.11-ubuntu24.04-h5 | 8.4.13-ubuntu24.04-h0 |
| Superset MySQL metrics exporter | 0.20.0-alpine-h1.1 | 0.20.0-alpine-h2.1 |
| Superset MySQL volume permissions image | 12-alpine-h1.1 | 12-alpine-h2.1 |
| Superset Redis | 7.4.11-alpine-h2 | 7.4.11-alpine-h4 |
| Superset Redis metrics exporter | 1.90.0-alpine-h1.1 | 1.90.0-alpine-h2.1 |
| Trino | 483-v2 | 483-v3 |
| Vertical Pod Autoscaler installer | 1.7.1-2 | 1.7.1-3 |
Configuration changes#
- HELM Changed the memory request and limit of the RonDB REST server pods (
rondb.rondb.resources.requests.memory.rdrsMiB,rondb.rondb.resources.limits.memory.rdrsMiB) from 100 MiB and 500 MiB to 2 GiB; check node capacity before the upgrade. - HELM Changed the default of
hopsworks.variables.agent_deployment_otel_memory_mb, the memory request and limit of the OTLP sidecar of traced agent deployments, from 1024 to 2048. Each traced agent deployment reserves it on its node once it is recreated, so check node memory before you redeploy them (OTLP sidecar). - HELM Changed the default of
trino.authSeeder.ttlSecondsAfterFinishedfrom 3600 tonull, which keeps the finished Trino auth seed Job forglobal._hopsworks.jobs.ttlSecondsAfterFinished(1 day). - HELM Removed
hw-kueue.managerConfig,hw-kueue.nameOverrideand thehw-kueue.kueuevalues butenabled, which configured the Kueue the chart bundled until 5.2.1. - HELM Removed the Kueue image from
values.airgap.yaml, because the chart no longer installs Kueue; pass the mirrored image and chart toupgrade-kueue.shwith--kueue-imageand--kueue-repoinstead. - HELM Added
global._hopsworks.kueue.namespace(defaultkueue-system), the namespace of the Kueue release Hopsworks uses. - HELM Added
hw-kueue.enforcePrerequisiteCheck(defaulttrue);falseskips the check that refuses to render while the bundled Kueue 0.12 or itsv1alpha1storage is still on the cluster, or while no Kueue servingv1beta2is installed. - HELM Added
onlinefs.configmapOverrides.onlinefssite.service.verifyFeatureGroupTopic(defaulttrue), which turns off the OnlineFS check that a record arrived on the online topic of its feature group. - HELM Added
hopsworks.dependencies.mysql.ddlConsulServiceName,hopsfs.dependencies.mysql.ddlConsulServiceNameandhive.metastore.dependencies.mysql.ddlConsulServiceName(defaultmysqlddl), the SQL node the schema migrations connect to. - HELM Added the RonDB REST server settings the chart didn't expose, under
rondb.rondb.rdrs, such as its buffer pool, its request, BLOB and batch size limits, its rate limit and its use of transparent huge pages.
Python client#
The release notes of hopsworks-api 5.2.2.
5.2.1#
Helm chart 5.2.1 · Released on 2026-10-16 · Changes since 5.2.0 · Python client 5.2.1, unchanged
What's changed#
- API FRONTEND HELM Fixed OpenSearch restarts and the 5.1 to 5.2 index pass deleting the OpenSearch roles behind restricted grants and feature group shares, which left a shared project with HTTP 403. Grants and shares made before the last OpenSearch restart before this upgrade lost their roles, and granting or sharing again is refused: revoke and grant again, or unshare and share again.
- HELM Fixed the 5.1 to 5.2 index pass losing documents that were not yet refreshed when it copied an index.
- HELM Fixed the 5.1 to 5.2 index pass failing with
field _id not foundon an index with an empty mapping, such as aprojectsindex that was never written. - HELM Addressed vulnerabilities in OpenSearch. It applies once an OpenSearch pod logs
Security configuration appliedafter the upgrade; if none does, runrun_security_admin.shas Security configuration shows. - HELM Changed the OpenSearch index pass of the 5.1 to 5.2 upgrade to copy one index at a time behind a write block on that index alone, instead of refusing every OpenSearch client, reads included, for the whole pass; upgrade 5.1 clusters to 5.2.1 rather than 5.2.0 (what keeps working).
- HELM Changed the OpenSearch index pass to run before the Kafka migration, so its report (
olk.opensearch.indexUpgrade.mode: report) and its refusals stop an upgrade from 5.1 before anything changes (set the timeout). - HELM Fixed the OpenSearch index pass not refusing a 5.0 cluster, still on OpenSearch 1.x, which can't be upgraded straight to 5.2.
- HELM Fixed every
helm upgraderestarting OpenSearch.
Breaking changes#
- API FRONTEND HELM Because of a security fix, share the whole feature group with a project that queries it in Trino and may read all its features.
hopsworks.variables.trino_feature_group_subset_shares_enabled: "true"keeps the behaviour of 5.2.0, without the fix. - HELM Remove
olk.opensearch.indexUpgrade.enabledfrom your values, usingolk.opensearch.indexUpgrade.mode: reportin place offalse, or the values schema rejects the upgrade. - HELM
helm upgradenow stops before changing anything, also on a cluster already on 5.2.0, if an OpenSearch vector field would still be served by nmslib, which crashes OpenSearch 3.8 nodes on CPUs without AVX-512, where 5.2.0 upgraded without checking; apply the remedy the hook's log gives for each index or template it names (nmslib fields).
Configuration changes#
- HELM Changed
olk.opensearch.indexUpgrade.enabledtoolk.opensearch.indexUpgrade.mode:copy, the default, orreport, which lists the indices the 5.1 to 5.2 upgrade would copy and how long each stays blocked, and fails before anything changes, the Kafka migration included (set the timeout). From 5.1.2 the 5.1 chart reads the same key to copy the indices before the 5.2 upgrade; pass it with--set, not in your values file (copying on 5.1). - HELM Added
hopsworks.variables.trino_feature_group_subset_shares_enabled(default"false"), which turns off the fix of a vulnerability in Trino queries of shared feature groups.
Python client#
The Python client is unchanged, 5.2.1.
5.2.0#
Helm chart 5.2.0 · Released on 2026-10-15 · Changes since 5.1.0 · Python client 5.2.1 (5.2.0, 5.2.1)
What's changed#
- API Addressed vulnerabilities in the Java client dependencies.
- API FRONTEND Addressed vulnerabilities in model deployments.
- API FRONTEND Fixed, on clusters with more than one RonDB MySQL server, library installs building on an older image of the environment and losing earlier installs,
insert(wait_for_online_ingestion=True)returning before the rows were online, and apps reporting the execution they replaced. - API Fixed OnlineFS leaving out of the online store a row with a null in a nullable
TEXTcolumn of an online feature group. - API Fixed
FeatureView.init_servingin the Python client never releasing its online store connections, so a process serving many feature views could exhaust the connections of the RonDB MySQL servers. - API FRONTEND HELM Added the KServe Standard deployment mode, the default for new model deployments, which runs a deployment as a Kubernetes Deployment instead of a Knative service; existing deployments keep Knative mode, and
knative_modeof a predictor in the Python client chooses the mode. - API FRONTEND HELM Added KEDA 2.21 and its HTTP add-on, installed by default (
hopsworks.variables.kube_keda_installed), to autoscale Standard-mode deployments on CPU, memory, requests or vLLM engine metrics and scale them to zero, set withautoscalerof a predictor's scaling configuration in the Python client (scaling, values). - API FRONTEND HELM Changed LLM deployments to vLLM and vLLM-Omni v0.28.0 (
hopsworks.variables.kube_serving_vllm_versions,hopsworks.variables.kube_serving_vllm_omni_versions); deployments created or edited on 5.1 keep v0.20.0 until you change their vLLM version, so keep the v0.20.0 images in a mirrored registry. - API FRONTEND HELM Added the Factory, where users build ML systems and analytics tables in the web terminal, with their code in Git or in Hopsworks only; it needs
hopsworks.terminal.enabled(hopsworks.factory_enabled,hopsworks.factory_chat_enabled) (Factory). - API FRONTEND HELM Changed job, Jupyter, app and deployment logs to be read live from Kubernetes instead of being shipped to OpenSearch; Jupyter and app logs, and those of Python deployments with disk logging on (the default), are archived to the project's
Logsdataset, whichDeployment.download_logsin the Python client downloads for a deployment (deployment logs). - API FRONTEND Changed the built-in Python environments to Python 3.13 on Ubuntu 26.04, with PyTorch 2.13, transformers 5.17, accelerate 1.15, DeepSpeed 0.19 and LangChain 1.4 in the environments that ship them; custom environments keep the Python version they were built with.
- API Added support for Python 3.14 to the Python client.
- API FRONTEND HELM Added real-time feature logging to an online feature group, the default transport (
hopsworks.variables.serving_feature_logging_transport) for feature views that start logging on 5.2 (feature logging). - API FRONTEND HELM Added scale to zero for idle Python apps when KEDA is installed, after
hopsworks.variables.pythonapp_idle_cooldown_seconds, whichcreate_appin the Python client sets per app withidle_scale_to_zeroandidle_cooldown_seconds(apps). With ingress-nginx, raisenginx.ingress.kubernetes.io/proxy-read-timeoutinhopsworks.ingress.annotations, or the request that wakes an app fails after 60 seconds. - API FRONTEND Added database access for apps, on by default (
db_accessofcreate_appin the Python client), which creates the project's online feature store database and gives the app itsMYSQL_*connection variables; apps also getTRINO_*variables where the project has Trino (database access). - API FRONTEND Added Flask, Gradio and Node.js apps (
app_kindofcreate_appin the Python client), which start from their app file like Streamlit apps (app types). - API FRONTEND Added versions of model deployments, so an earlier configuration can be activated again, in the Python client with
Deployment.rollback(versions). - API FRONTEND Added deployment schemas, which validate inference requests, and deployments of a model or a feature view without a predictor script (deployment schema).
- API FRONTEND Added separate Python environments for the predictor and the transformer of a model deployment (
environmentofTransformerin the Python client). - API FRONTEND Added per-member credentials for Oracle data sources, so that each member reads with their own username, password and wallet, also through Trino catalogs and in jobs, Jupyter, terminals and apps (provided credentials).
- API FRONTEND Added event-time windows to feature monitoring, the default for new configurations on feature groups and feature views with an event time; existing configurations are unchanged (time basis).
- API FRONTEND HELM Added
spine_dftoFeatureView.get_batch_dataand the training data methods, to read features for rows you supply, withinhopsworks.variables.featurestore_asof_spine_max_rowsand the related size limits. - API FRONTEND Changed removing a member from a project to hand their home directory to a Data Owner, chosen in the remove dialog or with
new_file_ownerofProject.remove_memberin the Python client, instead of leaving it unreadable (removed members). - API FRONTEND Changed project creation to give every project Trino and Superset where the cluster runs them, also through the REST API, where a request without a service list created a project with Kafka only.
- API FRONTEND Changed datasets to be searchable by name, description and tags; tags now attach to a whole dataset, and existing tags on files inside a dataset can be read and deleted but no longer added.
- API FRONTEND HELM Added the
TERMINALAPI key scope, so that thehopsCLI can start, extend and attach to web terminal sessions and teleport Claude Code sessions to them, which the UI opens from a?terminal=openlink; staged teleport files are deleted afterhopsworks.terminal.teleportTtlDays(7), and the unusedKUBEandSINKscopes are removed (teleport, scopes). - API Added the Hopsworks skills for coding agents to the Python client package, so that
hops skills installadds them to a repository on your own machine, and changedhops setupto writeAGENTS.mdand.claude/files for coding agents into the current directory unless given--no-scaffold(coding agents). - API Added
hops logout, and changedhops setupto ask for the host again, so that it can move to another cluster. - API Changed
hops datasource createto create every data source type. - API Changed the
hopsCLI to explain a failed request, such as one with an API key that lacks a scope, instead of printing a traceback, andhops project listto list every project you are a member of instead of only the active one. - API Changed reads of a feature view whose feature groups all come from one Snowflake data source to run the point-in-time joins in Snowflake.
- API Changed online feature vector reads and model deployment predictions in the Python client to make fewer round trips, and concurrent reads through one feature view to run in parallel instead of one at a time;
Deployment.init_predictprepares a deployment's first prediction ahead of it. - API Changed
import hopsworksandhopsworks.login()in the Python client to take a fraction of the time, which also speeds up everyhopscommand. - API Added
timeouttoFeatureView.get_feature_vectorandget_feature_vectorsin the Python client, a deadline for the whole online read. - API Added
Query.read_batchesto the Python client, which reads a query as Arrow record batches instead of loading the whole result. - API Added
ModelServing.get_vllm_image_tagsto the Python client, which lists the vLLM image tags an LLM deployment can use. - API Changed
FeatureGroup.remove_rowsin the Python client to also delete the online rows of a feature group with an embedding index from the vector database, where it deleted only the offline rows. - API Changed the first offline materialization of a feature group written from Spark to start at the feature group's creation instead of the oldest record of the project's online topic; the
initial_offset_margin_hourswrite option (1 by default) moves the start earlier to allow for clock skew. - API FRONTEND Added npm installs of many packages in one build, from a list, a
package.json, with or without its lockfile, or a Git repository, in the Python client withEnvironment.install_npm,install_npm_from_package_jsonandinstall_npm_from_git(npm packages). - API FRONTEND HELM Added Elasticsearch, ClickHouse and Teradata as data sources;
hopsworks.variables.enable_elasticsearch_storage_connectorsturns Elasticsearch data sources off. - API FRONTEND Added a suggested feature group description to the metadata a data source infers for a table, which the feature group form fills in and
DataSource.infer_metadatain the Python client returns assuggested_description. - API HELM Added proxy tokens for apps and Superset, off by default (
hopsworks.variables.hopsable_proxy_enabled), so that a gateway outside the cluster can relay requests to them for API-key clients. - API FRONTEND Changed Hugging Face model imports to download a single commit, which can be given with
revisionofModelRegistry.hf_downloadin the Python client, and to record it in the model's description. - API HELM Added Trino connector table functions, such as
system.query, for Data Owners on their project's Trino catalogs. - API FRONTEND Changed adding a member to a project to create the member's home directory in the background.
- API FRONTEND Changed project creation to refuse a pre-created namespace longer than 25 characters, like a project name.
- API Changed the Python client to accept opensearch-py 3.
- API HELM Fixed filtered similarity search failing on embedding indices created before 5.1, which the upgrade rebuilds on faiss (upgrading OpenSearch).
- API Fixed
find_neighborsin the Python client failing withEngine [NMSLIB] does not support filterson embedding feature groups created before 5.1, and failing on a project's default embedding index when fewer rows thankmatch (also in 5.1.1). - API Fixed writes to Iceberg feature groups failing with
Unable to load libhdfsfrom Python jobs, apps and DLT jobs, and withUnable to load libjvmfrom web terminals. - API Fixed model deployments answering 403 to users whose password an administrator set. Such users already on a temporary password regain access at their next password change or account update.
- API FRONTEND Fixed ingestion statistics runs piling up on frequently written feature groups and leaving other jobs pending; at most one runs per feature group.
- API FRONTEND Fixed deleted feature views, feature groups and projects coming back as empty entries, which blocked creating new ones with the same name.
- API Fixed external Spark clients failing to read, write or delete DELTA feature groups when the HopsFS NameNode and DataNode load balancers are turned off (also in 5.1.2).
- API Fixed
Deployment.start()andsave()in the Python client returning before the deployment could be reached, so that the firstpredict()failed with "Deployment not created or running". - API FRONTEND Fixed a change of an LLM deployment's vLLM version being dropped, so that the deployment restarted on its old image, and LLM deployments failing to restart or update once an administrator removed their version from
hopsworks.variables.kube_serving_vllm_versionsorhopsworks.variables.kube_serving_vllm_omni_versions. - API Fixed
get_feature_vectorsin the Python client failing a whole batch with HTTP 400 through the REST client on an entry with a null primary key, which the SQL client served. - API Fixed the first insert from the Python engine into a feature group whose Kafka topic had just been created failing with
NOT_LEADER_FOR_PARTITION. - API Fixed inserts from the Python engine failing on a timestamp column holding a null (
NaT). - API Fixed Kafka clients started at the same time in one Python client process, such as two streaming pipelines on two threads, failing with
ssl.ca.location failedwhile another rewrote the certificate files they share. - API Fixed
DataSource.infer_metadatain the Python client failing withAttributeError: 'dict' object has no attribute 'name'. - API Fixed the Python client installing pyarrow 26 next to NumPy 1, with which importing
hsfs.feature_groupfails withpyarrow requires NumPy 2.0 or newer; it now requires pyarrow below 26 (also in 5.1.2). - API Fixed
hops sqlfailing withSchema '<project>' does not existunless given a schema; it now reads the project's feature store in thedeltacatalog by default, so pass--catalog icebergfor Iceberg feature groups. - API Fixed
hopscommands, such ashops setup, failing on a machine with PySpark installed. - API Fixed
create_feature_viewnot warning, andget_feature_vectorgiving a misleading error, when a feature view selects the time partition columns of a Hudi feature group, which are offline only. - API Fixed Python engine reads failing for queries with a filter on a joined feature group or a filter that compares features of two feature groups.
- API FRONTEND Fixed a killed Spark job with pending executors staying in the aggregating logs state for up to 20 minutes (also in 5.1.1).
- API FRONTEND Fixed the logs of Ray jobs missing the output of their workers when copying the head's log files took longer than five minutes.
- API FRONTEND Fixed project creation sometimes failing and rolling back on a group that "already exists".
- API FRONTEND Fixed tags and keywords added right after an artifact was created missing from search.
- API FRONTEND Fixed Trino giving a project access to only one of several feature stores shared with it (also in 5.1.1).
- API FRONTEND Fixed Git operations failing with an I/O error when a Git provider proxy is set and HopsFS encryption at rest is on.
- API FRONTEND Fixed agent and Python deployments that mount HopsFS never starting on OpenShift.
- API FRONTEND Fixed the table metadata of a PostgreSQL data source without a schema coming back empty, and the table lists and metadata of Redshift, Snowflake and BigQuery data sources failing on names with backslashes or on a Snowflake database name that isn't a plain identifier.
- API Fixed ArrowFlight reads of PostgreSQL
uuidcolumns. - API Fixed ArrowFlight queries of PostgreSQL data sources run by a read-only role.
- API Fixed ArrowFlight reads of MySQL data sources without a password.
- API Fixed ArrowFlight reads from S3 and AWS Glue data sources on OpenShift.
- FRONTEND HELM Fixed the post-upgrade search index rebuild failing without the admin password, for example when password login is disabled, and running on every upgrade; it now runs in the background once per index format, and shows its progress and a Reindex now button under Cluster settings > Service Operations > OpenSearch Index Commands (also in 5.1.1). An upgrade from 5.1.0 rebuilds the index, and search is incomplete until it finishes.
- FRONTEND HELM Added sharing of Trino catalogs and feature groups with other projects, down to schemas, tables and columns, and private Trino catalogs of one user (sharing, private catalogs).
- FRONTEND Changed the feature store sharing card in the project settings to manage shares with projects and grants to restricted users, of the whole feature store or of single feature groups (sharing).
- FRONTEND HELM Added a memory guard to web terminals, on by default (
hopsworks.terminal.oomGuard), which ends the process using the most memory instead of losing the session, and an out-of-memory notice when a session is lost anyway. - FRONTEND HELM Added a
hopsworks_analyticsproject, off by default (hopsworks.variables.hopsworks_analytics), for cluster-wide Superset dashboards on the Hopsworks metadata, which exposes user email addresses to every Hopsworks administrator and to the model provider of the dashboard setup (values). - FRONTEND Changed the Jupyter overview to show the server's log archives and its configuration, which is saved when you start Jupyter.
- FRONTEND Added tabs for the windows of a web terminal session, which open, close and rename them.
- FRONTEND Added time-to-live settings to the feature group create and edit forms, which ask before a change deletes online rows (TTL).
- FRONTEND Added an execution graph of the dbt models and tests to the executions of jobs on
dbt-pipelineenvironments whose run writes one. - FRONTEND Changed the SQL Runner of the Query Engine page to fill the page, show row numbers and column types in the results, list a table's columns in the Explorer and draw
EXPLAIN (FORMAT GRAPHVIZ)plans as a graph (SQL Runner) (also in 5.1.2). - FRONTEND Changed the Set up data source dialog to list each SQL engine and CRM vendor as its own choice, with a filter box.
- FRONTEND Changed the Snowflake data source form to label its password option and field for a programmatic access token (PAT).
- FRONTEND Added suggestions of each connector's properties to the properties editor of the Trino catalog form.
- FRONTEND Changed the coding agent instruction files in members' home directories, such as
AGENTS.md, to be updated on upgrade unless the member edited them. - FRONTEND Fixed queued service operations failing on every retry when they removed a user from Superset or set up a project Observer's online feature store connection in Superset, and stopping for good after 68 failed attempts; a failing operation now retries once a day (also in 5.1.2).
- FRONTEND Fixed a Jupyter server that had just started failing requests on clusters with more than one Hopsworks instance.
- FRONTEND Fixed Spark Connect in web terminals never starting on clusters that enforce the Kyverno restricted policies.
- FRONTEND Fixed the SQL Runner leaving a query running when you leave it right after starting the query, and its autocompletion offering no column names in
WHERE,GROUP BYor join conditions (also in 5.1.2). - FRONTEND Fixed the Why? button of an online ingestion in a feature group's activity opening every OnlineFS log of the project instead of that ingestion's; it is now named Logs (also in 5.1.1).
- FRONTEND Fixed the table preview of a PostgreSQL data source failing for a role granted only some columns.
- FRONTEND Fixed the dialogs and drawers of Git repository actions in the project settings closing on their own, and the Git Status drawer never opening.
- FRONTEND Fixed transformation function previews showing the imports of the defining module instead of only the function.
- FRONTEND Fixed Codex agent jobs failing before they reached the model.
- FRONTEND Fixed the dialog that
hops setupopens in the browser leaving a user without projects stuck; it can now create a project. - HELM Changed Trino to read its users, groups, user catalogs and access rules from HopsFS instead of Secrets, which fixes
helm upgradefailing on clusters with many Trino catalogs or project members. - HELM Fixed OpenSearch losing unflushed vectors and rejecting vector writes for about two minutes on its first start on 5.1 (also in 5.1.1). A values file that sets
olk.opensearch.knn.circuit_breaker.triggered: true, or an upgrade with--reuse-values, keeps the problem. - HELM Fixed RonDB daemons ignoring SIGTERM, so every pod stop ended in a kill and a stopped data node could stall the cluster (also in 5.1.1).
- HELM Added the HopsFS CSI driver, on by default (
global._hopsworks.csi.enabled), which mounts HopsFS without a privileged container into the pods of Jupyter, web terminals, Git commands, Python, Ray, agent and DLT jobs, Python apps, Python deployments, Airflow and Trino; Trino needs it (values). - HELM Added support for Kubernetes 1.37; upgrade Hopsworks to 5.2 before the cluster, because 5.1 doesn't install on 1.37. Under ArgoCD 3.4 or older with server-side apply, upgrade ArgoCD to 3.5 or ignore
spec.preventPodSchedulingIfMissingon CSIDrivers before moving to 1.37, or ArgoCD stops syncing (Kubernetes 1.37). - HELM Added backups and restores of the Superset database, on by default with the cluster backups (disaster recovery).
- HELM Changed the RonDB REST server probes to outlast a data node failure and to use their own port (also in 5.1.1).
- HELM Fixed the Hopsworks admin pod starting before the database migrations had finished.
- HELM Fixed the RonDB REST server reading request bodies over 64 KiB as empty; it now buffers them in
rondb.rondb.rdrs.uploadPath(also in 5.1.1). - HELM Fixed Helm 4 server-side apply conflicts on
helm upgradeover the replicas of HPA-managed workloads other than the RonDB REST server, the rules of the Knative serving webhooks and therss-configurationConfigMap (Upgrading with Helm 4). - HELM Fixed environment builds never starting when
rondb.rondb.priorityClassis renamed (also in 5.1.1). - HELM Fixed the Hive Metastore
metastore-db-initJob failing on a fresh install when it started before the HopsFS NameNode. - Addressed vulnerabilities in the Airflow, HopsFS, Hive Metastore, Trino, Spark history server and Ray images, and in the Hopsworks server dependencies.
- Addressed vulnerabilities in the Payara, Hopsworks certificate authority, Grafana, Filebeat and Superset images, and in the MySQL and Redis of Superset (also in 5.1.2).
Breaking changes#
- API FRONTEND Because of a security fix, Data Scientists ask the creator of a job or a Data Owner of the project to change it, other than its schedule (also in 5.1.1).
- API
get_batch_dataand the training data methods ofFeatureViewin the Python client now raiseTypeErroron a keyword argument they don't take, which they used to ignore; remove such arguments. - API With
allow_missing=True,get_feature_vectorandget_feature_vectorsin the Python client now return a serving key you pass in its slot of the vector when no row matches it, instead ofNone; code that detects a missing row by aNonekey must check the other features instead. - API
Deployment.read_logsandtail_logsin the Python client,hops deployment logsandhops agent logsnow read only the live pods of a deployment and ignoreuntil, where 5.1 read the logs of stopped deployments from OpenSearch by default; get those withDeployment.download_logsor--download. - API Setting
Deployment.environmentin the Python client on a deployment you read back now moves only the predictor, where it used to move the transformer too; settransformer.environmentas well. - API
hops search lsis nowhops search, which also finds jobs, apps, models, deployments and agents; update scripts that callhops search ls. - API FRONTEND MongoDB data sources need MongoDB 4.2 or later instead of 3.6; upgrade older MongoDB servers, or browsing and testing their data sources fails.
- API FRONTEND Adding more than 20 members to a project in one request is now refused, which 5.1 accepted; add them in batches of at most 20.
- API HELM Statements that administrators run through the admin Trino REST API (
admin/trino/v1/statement) can no longer read the tables of projects, because the Trino administrator reads only thesystem,tpchandtpcdscatalogs; query a project's tables from the SQL Runner of its Query Engine page as a member of the project. - FRONTEND HELM Recorded Trino queries now lose their query text, plan and JSON details after
hopsworks.variables.trino_events_strip_details_after_days(7), instead of keeping them until the query is deleted after 61 days, and the first nightly cleanup after the upgrade strips every older one; set it to61or more to keep them (also in 5.1.2). - FRONTEND HELM The chart no longer enables Trino's MySQL event listener, which crash-looped the Trino coordinator after a RonDB MySQL server restart, so the admin Trino query history records no new queries; to keep it, add the listener as Trino query history shows (also in 5.1.2).
- FRONTEND HELM Web terminal sessions now last 8 hours instead of 4, and every upgrade sets
terminal_session_hoursfromhopsworks.terminal.sessionHours, replacing a value set in the admin UI, which upgrades used to keep; to keep another length, set it inhopsworks.terminal.sessionHours. - HELM Upgrade 5.1 clusters to 5.2.2 instead of 5.2.0, whose OpenSearch index pass refuses every client, fails on an index with an empty mapping and doesn't check for nmslib vector fields, and whose index pass and OpenSearch restarts delete the roles behind restricted-access grants and feature group shares; 5.2.0 also lacks the OpenSearch vulnerability fix and the opt-in index copy Job of 5.1.2 (upgrading OpenSearch). 5.2.1 fixes these, but like 5.2.0 it loses Airflow tables, such as variables and XComs, in the upgrade from 5.1.
- HELM The upgrade migrates Kafka from ZooKeeper to KRaft, which can't be undone: give
helm upgradea long enough--timeout, never pass--atomic(--rollback-on-failurein Helm 4) or runhelm rollback, and under ArgoCD invalidate its cluster cache, hard-refresh and sync again by hand (Kafka 4 and KRaft, under ArgoCD). - HELM Upgrade to 5.2 only from 5.1, satellites before central, with central and its satellites all under Helm or all under ArgoCD (satellite clusters, Strimzi CRDs).
- HELM On a cluster installed before 5.1, OpenSearch refuses every client while the upgrade copies its oldest indices; plan the outage and the timeout (upgrading OpenSearch).
- HELM On a 5.1 cluster with many feature statistics, each statement of schema migration V109 of 5.2.0 and 5.2.1 waits up to an hour for a statistics cleaner query of the running 5.1 pods, which 5.2.2 avoids; if it waits, scale
hopsworks-instanceto 0 and kill that query as Migration V109 shows. - HELM OpenSearch snapshot repositories you configure yourself under
olk.opensearch.backup.repositoriesorolk.opensearch.restore.repositories, on MinIO beforeRELEASE.2025-01-20T14-49-07Zor other S3-compatible stores that requireContent-MD5, which OpenSearch 2.19 sent and 3.8 doesn't, needlegacy_md5_checksum_calculation: truein theirs3block, or the upgrade fails; the chart already sets it on the repositories it generates for the bundled MinIO (snapshot repositories). - HELM The chart now creates a cluster-wide IngressClass named
istio, which 5.1 didn't; if the cluster already has one, setkserve.istio.ingressClass.enabled: false, or the upgrade fails. - HELM KEDA, installed by default where 5.1 didn't install it, can't share a Kubernetes cluster with another KEDA or the OpenShift Custom Metrics Autoscaler, including the KEDA of another Hopsworks release such as a satellite; set
hopsworks.variables.kube_keda_installed: falseon all but one (KEDA). - HELM The post-upgrade search index rebuild signs in as the agent user, instead of with
hopsworks.variables.admin_emailandadmin_password, and fails thehelm upgradeifhopsworks.agent_emailandhopsworks.agent_password(defaultagent@hops.io,admin) don't match that account (also in 5.1.1). Set them, or turn the rebuild off withhopsworks.opensearchReindex.enabled: false. - HELM With Helm 4, pass
--skip-crdsto ahelm installon a cluster that already has the Strimzi CRDs, and after a reinstall runhelm upgradeonce to recreate the KEDA CRDs (Strimzi CRDs, KEDA CRDs). - HELM If your values restate
trino.trino.additionalConfigPropertieswith itsevent-listener.config-filesentry, which the 5.1.1 chart set by default, remove that entry or add the listener files as Trino query history shows, or Trino doesn't start (also in 5.1.2). - HELM Overrides of the Trino
initContainers,additionalVolumesoradditionalVolumeMounts, including those 5.1.0 asked for withhopsworks.hopsfsMount.enabled: false, fail the render; remove the overrides, or copy the new entries from the chart into them. - HELM Under ArgoCD with
trino.auth.createSecretson (the default), settrino.auth.adminUserPwdandtrino.auth.monitoringUserPwdto the passwords of your 5.1 release, which now default to empty instead of fixed passwords, or the chart fails to render; ahelm upgradeoutside ArgoCD reuses the existing Secrets whateverglobal._hopsworks.modeis. - HELM If you set
trino.trino.serviceAccount.name, settrino.trinotest.serviceAccount.nameto the same name, because the test coordinator now shares the Trino account instead of creating its ownhopsworks-trino-test, or the chart fails to render. - HELM If your values override
trino.trino.accessControl.rules, merge the rules of the 5.2 chart into your copy, because the backend now builds the Trino access rules from that value and the 5.1 rules leave out the private (_<user>__*) catalogs and give theadmingroup every catalog. - HELM If you override
trino.trino.image.tag, use a Hopsworks Trino image of483-v2or later instead of the480images of 5.1, and setglobal._hopsworks.trino.image.tagto the same tag. - HELM With cluster backups on, Superset backups, new in 5.2, need an object store and, with
superset.auth.createSecrets: false, thebackup.hops.works/include=truelabel on its Secrets, or the chart fails to render; setsuperset.backups.enabled: falseto skip them (disaster recovery). - HELM Removed the KServe local model controller; if you set
kserve.kserve.localmodel.enabled: true, remove it, or the chart fails to render. - HELM If your release namespace is longer than 34 characters, set
global._hopsworks.csi.driverName, because the default name of the HopsFS CSI driver, new in 5.2, would exceed 63 characters (driver name). - HELM On OpenShift, use the
values.openshift.yamlof the 5.2 chart, which creates an SCC for the privileged HopsFS CSI node plugin, new in 5.2; if a cluster administrator owns SCCs, see when the cluster administrators own the SCC. - HELM Project namespaces now get a NetworkPolicy that admits traffic only from the same namespace and the Hopsworks namespace, where 5.1 restricted only web terminal pods; add any other namespace that reaches project pods, such as Istio or monitoring, to
hopsworks.variables.project_namespace_network_policy_allowed_namespaces(values). Turning them off withhopsworks.variables.project_namespace_network_policy_enabled: falseleaves the existing ones; delete them withkubectl delete networkpolicy -A --field-selector metadata.name=hopsworks-project-isolation. - HELM With
hopsworks.rbac.useExistingRole: true, add the chart's new ClusterRole grants (charts/hopsworks/templates/role.yaml) onscaledobjects,interceptorroutes,ingresses,networkpoliciesandcsidrivers, or model deployments, project creation and every pod that mounts HopsFS fail. - HELM The RonDB REST server now uses a probe port and an upload path that need RonDB 26.02.11, where 5.1.0 probed its REST port and set no upload path (also in 5.1.1). If you pin
rondb.rondb.images.rondb.tagto an older version, setrondb.rondb.rdrs.probePort.enabled: falseandrondb.rondb.rdrs.uploadPath: "", or the REST server doesn't start. - HELM Kafka 4.3 rejects clients older than Apache Kafka 2.1 or librdkafka 1.8.2, which the Kafka 3.9 of 5.1 accepted; upgrade them first; with your own Kafka cluster, its brokers must run Kafka 2.1 or later (client compatibility).
- HELM OpenSearch now reports its own version,
3.8.0, instead of7.10.2; check clients that connect to it directly against the OpenSearch 3.0 breaking changes.
Deprecations#
- API Deprecated
entryofget_feature_vector,get_feature_vectors,get_inference_helperandget_inference_helpersin the Python client; useserving_keys. - API Deprecated
Deployment.environmentin the Python client; usepredictor.environmentandtransformer.environment. - API Deprecated
source="opensearch"ofDeployment.read_logsandtail_logsin the Python client and--source opensearchofhops deployment logsandhops agent logs, whose default is nowkubernetesinstead ofopensearch. - API Deprecated spine groups (
get_or_create_spine_group) and thespineargument ofFeatureViewreads in the Python client; usespine_df. - API Deprecated
ModelSchemain the Python client; a model created withcreate_model(feature_view=...)takes its schema from the feature view, and a deployment describes its requests with the deployment schema. - API Deprecated
hops init; usehops skills install. - API Deprecated the
environmentDTOfield of model deployments in the REST API; usepredictorEnvironmentandtransformerEnvironment. - HELM Deprecated the name of
kafka.cluster.zookeeper, which now sizes and places the KRaft controllers; itsservices.client.annotationsis no longer read. - HELM Deprecated
hopsworks.variables.mount_hopsfs_in_python_job, which only legacy Python jobs still read. - HELM Deprecated
global._hopsworks.trino.mountableSecrets.mechanism,global._hopsworks.trino.userCatalogShards,trino.auth.adminUserPwdHash,trino.auth.monitoringUserPwdHashandhw-kyverno.policyExceptions.trino, which nothing reads any more.
Upgrade steps#
Follow Before every upgrade and 5.1.x to 5.2.x in the upgrade guide.
Upgraded components#
| Component | 5.1.0 | 5.2.0 |
|---|---|---|
| Airflow image | 5.1.0 | 5.2.0 |
| ArrowFlight server | 5.1.0 | 5.2.0 |
| Base environment images | 5.1.0 | 5.2.1 |
| Filebeat | 8.19.21 | 8.19.23 (also in 5.1.2) |
| Git image | 1.5 | 1.6 |
| Grafana | 12.4.9-h9 | 12.4.9-h12 |
| Hive Metastore | 4.1.0.0-v1 | 4.1.0.1-v1 |
| HopsFS | 3.4.3.3-EE-RC0 | 3.4.3.3-EE-RC1 |
| Inference logger | 5.1.0 | 5.2.0 |
| Kafka | 3.9.2 | 4.3.1 |
| KServe | v0.19.0 | v0.21.0 |
| KServe utilities | 0.1.10 | 0.1.11 |
| Model serving authenticator | 5.1.0 | 5.2.0 |
| Model serving webhook | 5.1.0 | 5.2.0 |
| OnlineFS | 2.4 | 2.5 |
| OpenSearch | 2.19.6.3 | 3.8.0.0 |
| OpenSearch Dashboards | 2.19.6.7 | 3.8.0.0 |
| Payara | 6.2025.11-jdk21.0 | 6.2025.11-jdk21.1 (also in 5.1.2) |
| Python in the base environments | 3.12 | 3.13 |
| Ray | 2.55.1 | 2.58.0 |
| RonDB | 26.02.10 | 26.02.11 (also in 5.1.1) |
| scikit-learn model server | 0.19.1 | 0.21.0 |
| Spark history server | 4.1.3.0 | 4.1.3.1 |
| Storage initializer | 5.1.0 | 5.2.0 |
| Strimzi | 0.45.2-h1 | 1.2.0 |
| Superset | 6.0.0p4.4 | 6.0.0p4.5 (also in 5.1.2) |
| Superset MySQL | 8.4.11-ubuntu24.04-h4 | 8.4.11-ubuntu24.04-h5 (also in 5.1.2) |
| Superset Redis | 7.4.11-alpine-h1 | 7.4.11-alpine-h2 (also in 5.1.2) |
| Toolbox image (hwutils) | 1.9 | 1.10 |
| Trino | 480-v10 | 483-v2 |
| Trino mountable-secrets sidecar | 3.4.3.3-EE-RC0-1 | 3.4.3.3-EE-RC1-1 |
| vLLM | v0.20.0 | v0.28.0 |
| vLLM-Omni | v0.20.0 | v0.28.0 |
Configuration changes#
- HELM Changed the default of
olk.opensearch.knn.circuit_breaker.triggeredfromtruetofalseand ofolk.opensearch.knn.circuit_breaker.percentfrom0.75to75(also in 5.1.1). - HELM Changed the default of
hopsworks.variables.docker_operations_buildkit_priority_classfromrondb-high-priorityto empty, so environment builds run at the default priority (also in 5.1.1). - HELM Changed
rondb.rondb.terminationGracePeriodSecondsto one value per component, and the data nodes' default from 60 to 300 seconds; an integer still sets only the data nodes (also in 5.1.1). - HELM Removed the MySQL event listener from the default
trino.trino.additionalConfigPropertiesand fromtrino.trino.coordinator.additionalConfigFilesandtrino.trino.worker.additionalConfigFiles(also in 5.1.2). - HELM Changed the default of
hopsworks.variables.trino_events_cleaner_batch_sizefrom 1000 to 100 (also in 5.1.2). - HELM Changed
hopsworks.variables.trino_default_catalogfromhivetodelta, the catalog new Superset connections to Trino open in. - HELM Changed the default driver memory of new Ray jobs (
hopsworks.variables.ray_job_driver_memory) from 2048 to 4096 MB. - HELM Added
kserve.servingTerminationGracePeriodSeconds(default120), the termination grace period the model serving webhook sets on model deployment pods, which 5.1 set to 3 seconds. - HELM Changed
trino.trinotest.serviceAccount.createtofalseandnametohopsworks-trino, so the test coordinator shares the Trino account. - HELM Changed the defaults of
trino.auth.adminUserPwdandtrino.auth.monitoringUserPwdto empty, so the chart generates the passwords. - HELM Changed
values.openshift.yamlto turn on credential files for Trino catalogs (global._hopsworks.trino.mountableSecrets.enabled). - HELM Changed
values.airgap.yamlto pull the HopsFS CSI driver and KEDA images from the mirror registry. - HELM Fixed
values.openshift.yamlfor the OpenShiftrestricted-v2SCC, covering Strimzi, the Kafka brokers and KRaft controllers, the Spark operator and the MySQL and Redis of Superset, and turned off the Prometheus node exporter, which OpenShift ships itself (also in 5.1.1). Use it with Helm 4 or Helm 3.17.1 or later, because older Helm 3 releases ignore itsnulloverrides of subchart values. - HELM Fixed
global._hopsworks.jobs.ttlSecondsAfterFinished: 0being replaced by86400. - HELM Fixed Helm 4 rejecting an empty
kafka.cluster.kafka.authorizer.authorizerClass. - HELM Fixed the values schema rejecting
hopsworks.variables.loadbalancer_external_domain_namenodeandhopsworks.variables.loadbalancer_external_domain_datanode(also in 5.1.1). - HELM Added
hopsworks.opensearchReindex.enabledto turn off the post-upgrade search index rebuild, andhopsworks.variables.command_search_fs_reindex_queue_wait_as_msto bound its wait for the search command queue (also in 5.1.1). - HELM Added
hopsworks.variables.trino_events_strip_details_after_days(default7), the days after which a recorded Trino query loses its text, plan and JSON details (also in 5.1.2). - HELM Added
olk.opensearch.indexUpgrade.enabledandactiveDeadlineSeconds(3600) for the pre-upgrade OpenSearch index pass (set the timeout). - HELM Added
kafka.migrationJobandkafka.crdUpgradeJobfor the hooks that migrate Kafka to KRaft and convert the Strimzi CRDs;kafka.migrationJob.timeoutSeconds(1800) bounds each of the migration's three waits (Kafka 4 and KRaft). - HELM Added
kafka.cluster.kafka.config.replicationFactorandminInsyncReplicasfor multi-broker Kafka;minInsyncReplicasabove a topic's replicas makesacks=allwrites to it fail (values). - HELM Added
nodePortvalues to pin the node ports of unmanaged external load balancers: ArrowFlight, OpenSearch, the HopsFS NameNode and DataNodes, Trino, the Hive Metastore, Kafka (bootstrapNodePort,startingNodePort) and the RonDB MySQL and REST servers (also in 5.1.1). The RonDB ones ignoreglobal._hopsworks.externalLoadBalancers.managedand apply only whenrondb.rondb.meta.mysqld.externalLoadBalancer.managedorrondb.rondb.meta.rdrs.externalLoadBalancer.managedisfalse. - HELM Added
rondb.rondb.rdrs.probesandrondb.rondb.rdrs.probePort, the settings and the port of the RonDB REST server probes, androndb.rondb.rdrs.maxKeepaliveRequeststo close a keep-alive connection after that many requests, so clients rebalance after a rolling restart (also in 5.1.1). - HELM Added
rondb.rondb.rdrs.ttlPurge.enableandactiveWindowto turn off the TTL purge of the RonDB REST server or limit it to a daily window (also in 5.1.1). - HELM Added
kserve.kserve.storage.resourcesfor the storage initializer that downloads models into deployment pods. - HELM Added
kserve.istio.ingressClass.enabledandkserve.istio.ingressClass.namefor the cluster-wide IngressClass the chart creates. - HELM Added
hopsworks.variables.kube_keda_installed(defaulttrue), which installs KEDA and lets model deployments autoscale through it. - HELM Added
hopsworks.variables.project_namespace_network_policy_enabled(defaulttrue) andproject_namespace_network_policy_allowed_namespacesfor the NetworkPolicy of project namespaces. - HELM Added
superset.backups.enabled(defaulttrue) for the Superset backups. - HELM Added
global._hopsworks.csi.driverNameto name the HopsFS CSI driver of a release. - HELM Added
global._hopsworks.trino.image.tag(default483-v2), which has to matchtrino.trino.image.tag. - HELM Added
hopsworks.terminal.sessionHours(default8), which every upgrade writes to the web terminal session length.