Skip to main content
Fusion 5.9.10 is a maintenance release that introduces enhanced capabilities for Neural Hybrid Search, that improve search relevance for ecommerce by intelligently blending semantic and lexical signals and optimizing result collapsing. Support for Kubernetes 1.31 boosts container security and operational reliability, while the Spark 3.4.1 upgrade accelerates data processing and analytics. Additional security updates and the new Apps Manager API strengthen system protection and give better visibility into licensing and usage. Collectively, these improvements drive more accurate search, faster data workflows, and a more secure, stable platform—delivering clear business value across search, infrastructure, and data operations. For supported Kubernetes versions and key component versions, see Platform support and component versions.

What’s new

Fusion 5.9.10 introduces the Neural Hybrid Query stage, enhancing Neural Hybrid Search (NHS) by refining how semantic and lexical scores are combined in search ranking. This new stage works with Lucidworks AI to ensure that result collapsing and final ranking use a unified scoring approach, leading to more precise and consistent search results—especially in ecommerce, where selecting the most relevant SKU for a product is critical. Key benefits include:
  • Smarter relevance ranking: Combines semantic and lexical signals earlier for more accurate ordering.
  • Optimized result collapsing: Ensures the best representative item is selected before final ranking.
  • Broad applicability: Enhances search performance in ecommerce and other scenarios that use result collapsing.
The Neural Hybrid Query stage differs from the Hybrid Query stage in a few ways. The new stage contains the following new fields:
  • Lexical Query Squash Factor lets you input a value that squashes the lexical query scores from 0..inf to 0..1. This setting helps prevent the lexical query from dominating the final score.
  • Compute Vector Similarity for Lexical-Only Matches computes vector similarity scores for documents found in lexical search results, but not in the initial vector search results. This setting can rescue orphaned nodes by finding docs which match lexically but are not in the vector results, and compute the vector similarity score for those.
Neural Hybrid Query stage This update provides a more intelligent hybrid search experience, improving relevance across a range of search applications.

Support for Kubernetes 1.31

Fusion 5.9.10 introduces support for Kubernetes 1.31, bringing enhanced security, improved resource management, and better networking reliability. This update strengthens container security, improves how custom resources are managed and filtered, and enhances the reliability of kubectl operations like exec and port-forward, especially in complex network environments. By upgrading to Fusion 5.9.10, you can take full advantage of Kubernetes 1.31’s advancements for stronger security, streamlined resource handling, and improved system stability.

Expanded support for read-only file system

Fusion 5.9.11 completes support for the read-only root file system feature across all Fusion services, strengthening protection against unauthorized changes and improving security posture in hardened environments. All services can now be configured to run in read-only mode using Helm values, with writable mounts available for components that require write access. To learn more, including which services have this feature enabled by default, see Enable Read-Only Root File System.
This topic describes how to configure a read-only root file system for a Fusion deployment. Read-only mode safeguards your file system against unauthorized changes, such as by malicious software or other attacks. Enabling this feature entails configuring the readOnlyRootFilesystem attribute in the Fusion Helm chart.
This feature is available starting in Fusion 5.9.9 and in all subsequent Fusion 5.9 releases.
Beginning with Fusion 5.9.10, all of Fusion’s services are designed to work with a read-only root file system, but some external services may require write access to the file system. In that case, you can configure a read-only root file system and mount a separate writable file system for these services.The examples below show how to configure a read-only root file system for various Fusion services.

Solr

fusion:
  solr:
    containerSecurityContext:
      readOnlyRootFilesystem: true
With optional services:
fusion:
  solr:
    exporter:
      enabled: true
      securityContext:
        readOnlyRootFilesystem: true
    containerSecurityContext:
      readOnlyRootFilesystem: true

Zookeeper

fusion:
  zookeeper:
    containerSecurityContext:
      readOnlyRootFilesystem: true
With optional services:
fusion:
  zookeeper:
    containerSecurityContext:
      readOnlyRootFilesystem: true
    exporters:
      jmx:
        enabled: true
      zookeeper:
        enabled: true
    jobs:
      chroots:
        enabled: true
        config:
          create:
            - /root-read-only

Kafka

fusion:
  kafka:
    containerSecurityContext:
      readOnlyRootFilesystem: true
With optional services:
fusion:
  kafka:
    containerSecurityContext:
      readOnlyRootFilesystem: true
    volumePermissions:
      enabled: true
      containerSecurityContext:
        readOnlyRootFilesystem: true
    metrics:
      kafka:
        containerSecurityContext:
          readOnlyRootFilesystem: true
          enabled: true
      jmx:
        enabled: true
        containerSecurityContext:
          enabled: true
          readOnlyRootFilesystem: true
    externalAccess:
      enabled: true
      autoDiscovery:
        enabled: true
        containerSecurityContext:
          enabled: true
          readOnlyRootFilesystem: true
    provisioning:
      enabled: true
      topics:
      - name: test
        partitions: 1
        replicationFactor: 1
        ## https://kafka.apache.org/documentation/#topicconfigs
        config:
          max.message.bytes: 64000
          flush.messages: 1
      containerSecurityContext:
        readOnlyRootFilesystem: true
        enabled: true

ML Model Service

fusion:
  ml-model-service:
    ambassador:
      containerSecurityContext:
        readOnlyRootFilesystem: true
    milvus:
      mysql:
        containerSecurityContext:
          readOnlyRootFilesystem: true
      securityContext:
        readOnlyRootFilesystem: true
With optional services:
fusion:
  ml-model-service:
    ambassador:
      containerSecurityContext:
        readOnlyRootFilesystem: true
      prometheusExporter:
        enabled: true
        securityContext:
          readOnlyRootFilesystem: true
    milvus:
      mysql:
        metrics:
          enabled: true
          securityContext:
            readOnlyRootFilesystem: true
        containerSecurityContext:
          readOnlyRootFilesystem: true
      cluster:
        enabled: false
      mishards:
        securityContext:
          readOnlyRootFilesystem: true
      admin:
        enabled: true
        securityContext:
          readOnlyRootFilesystem: true
      securityContext:
        readOnlyRootFilesystem: true

Argo

fusion:
  argo:
    minio:
      containerSecurityContext:
        readOnlyRootFilesystem: true
      extraVolumes:
        - name: config-dir
          emptyDir: {}
        - name: certs-dir
          emptyDir: {}
      extraVolumeMounts:
        - name: config-dir
          mountPath: /.minio
        - name: certs-dir
          mountPath: /etc/minio/certs
    server:
      securityContext:
        readOnlyRootFilesystem: true
    controller:
      securityContext:
        readOnlyRootFilesystem: true
    mainContainer:
      securityContext:
        readOnlyRootFilesystem: true
    executor:
      securityContext:
        readOnlyRootFilesystem: true

Seldon Core Operator

fusion:
  seldon-core-operator:
    containersSecurityContext:
      readOnlyRootFilesystem: true

Argo Common Workflows

fusion:
  argo-common-workflows:
    containerSecurityContext:
      readOnlyRootFilesystem: true

Question Answering

fusion:
  question-answering:
    containersSecurityContext:
      readOnlyRootFilesystem: true

Classification

fusion:
  classification:
    containersSecurityContext:
      readOnlyRootFilesystem: true

All-in-one values.yaml example

fusion:
  solr:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  solr-managed:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  zookeeper:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  kafka:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  ml-model-service:
    ambassador:
      containerSecurityContext:
        readOnlyRootFilesystem: true
    milvus:
      mysql:
        containerSecurityContext:
          readOnlyRootFilesystem: true
      securityContext:
        readOnlyRootFilesystem: true
  argo:
    minio:
      containerSecurityContext:
        readOnlyRootFilesystem: true
      extraVolumes:
        - name: config-dir
          emptyDir: {}
        - name: certs-dir
          emptyDir: {}
      extraVolumeMounts:
        - name: config-dir
          mountPath: /.minio
        - name: certs-dir
          mountPath: /etc/minio/certs
    server:
      securityContext:
        readOnlyRootFilesystem: true
    controller:
      securityContext:
        readOnlyRootFilesystem: true
    mainContainer:
      securityContext:
        readOnlyRootFilesystem: true
    executor:
      securityContext:
        readOnlyRootFilesystem: true
  seldon-core-operator:
    containersSecurityContext:
      readOnlyRootFilesystem: true
  argo-common-workflows:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  question-answering:
    containersSecurityContext:
      readOnlyRootFilesystem: true
  classification:
    containersSecurityContext:
      readOnlyRootFilesystem: true

All-in-one values.yaml with optional services example

fusion:
  argo:
    minio:
      persistence:
        enabled: false
      containerSecurityContext:
        readOnlyRootFilesystem: true
      extraVolumes:
        - name: config-dir
          emptyDir: {}
        - name: certs-dir
          emptyDir: {}
      extraVolumeMounts:
        - name: config-dir
          mountPath: /.minio
        - name: certs-dir
          mountPath: /etc/minio/certs
    server:
      securityContext:
        readOnlyRootFilesystem: true
    controller:
      securityContext:
        readOnlyRootFilesystem: true
    mainContainer:
      securityContext:
        readOnlyRootFilesystem: true
    executor:
      securityContext:
        readOnlyRootFilesystem: true
  solr:
    exporter:
      enabled: true
      securityContext:
        readOnlyRootFilesystem: true
    containerSecurityContext:
      readOnlyRootFilesystem: true
    # tls:
    #   enabled: true
  solr-managed:
    exporter:
      enabled: true
      securityContext:
        readOnlyRootFilesystem: true
    enableExternalFiles: true
    enabledStorage:
    - gcs
    processRaw:
      image:
        repository: fusion-dev-docker.ci-artifactory.lucidworks.com
      cloudRoot: gs://lw-managed-fusion-data/tmp
      gcs:
        secret: gcs-key
        secretFieldName: key.json
      securityContext:
        readOnlyRootFilesystem: true
    containerSecurityContext:
      readOnlyRootFilesystem: true
    # tls:
    #   enabled: true
  zookeeper:
    containerSecurityContext:
      readOnlyRootFilesystem: true
    exporters:
      jmx:
        enabled: true
      zookeeper:
        enabled: true
    jobs:
      chroots:
        # enabled: true
        config:
          create:
            - /root-read-only
  kafka:
    containerSecurityContext:
      readOnlyRootFilesystem: true
    volumePermissions:
      enabled: true
      image:
        repository: "fusion-dev-docker.ci-artifactory.lucidworks.com/os-shell"
      containerSecurityContext:
        readOnlyRootFilesystem: true
    metrics:
      kafka:
        containerSecurityContext:
          readOnlyRootFilesystem: true
          enabled: true
      jmx:
        enabled: true
        containerSecurityContext:
          enabled: true
          readOnlyRootFilesystem: true
    externalAccess:
      enabled: true
      autoDiscovery:
        enabled: true
        containerSecurityContext:
          enabled: true
          readOnlyRootFilesystem: true
    provisioning:
      enabled: true
      topics:
      - name: test
        partitions: 1
        replicationFactor: 1
        ## https://kafka.apache.org/documentation/#topicconfigs
        config:
          max.message.bytes: 64000
          flush.messages: 1
      containerSecurityContext:
        readOnlyRootFilesystem: true
        enabled: true
  ml-model-service:
    enabled: true
    ambassador:
      containerSecurityContext:
        readOnlyRootFilesystem: true
      prometheusExporter:
        enabled: true
        securityContext:
          readOnlyRootFilesystem: true
    milvus:
      mysql:
        metrics:
          enabled: true
          securityContext:
            readOnlyRootFilesystem: true
        containerSecurityContext:
          readOnlyRootFilesystem: true
      cluster:
        enabled: false
      mishards:
        securityContext:
          readOnlyRootFilesystem: true
      admin:
        enabled: true
        securityContext:
          readOnlyRootFilesystem: true
      securityContext:
        readOnlyRootFilesystem: true
  seldon-core-operator:
    containersSecurityContext:
      readOnlyRootFilesystem: true
  argo-common-workflows:
    containerSecurityContext:
      readOnlyRootFilesystem: true
  question-answering:
    containersSecurityContext:
      readOnlyRootFilesystem: true
  classification:
    containersSecurityContext:
      readOnlyRootFilesystem: true

Supported services

The table below lists the services that support a read-only root file system, the ones that have it enabled by default, and the Fusion release in which support was added:
Chart NamePod NameContainer NameSupportedDefault enabledSupported version
admin-uiadmin-uiadmin-ui5.9.9+
api-gatewayapi-gatewayinit/api-gateway5.9.9+
api-gatewayapi-gatewayapi-gateway5.9.9+
api-gatewayapi-gatewaygenerate-jks5.9.9+
apps-managerapps-managerapps-manager5.9.9+
argoargo-serverargo-server5.9.10+
argoargo-executorexecutor5.9.10+
argoargo-mainContainermainContainer5.9.10+
argoargo-controllercontroller5.9.10+
argo/miniominiominio5.9.10+
argo/miniominiominio5.9.10+
argo/miniomake-bucket-jobminio-mc5.9.10+
argo-common-workflowsdelete-modelinit/main/wait5.9.10+
argo-common-workflowsdeploy-modelinit/main/wait5.9.10+
argo-common-workflowsmilvus-maintenanceinit/main/wait5.9.10+
argo-common-workflowsupload-model-to-cloudinit/main/wait5.9.10+
async-parsingasync-parsingtika-server5.9.9+
async-parsingasync-parsingasync-parsing5.9.9+
auth-uiauth-uiauth-ui5.9.9+
classic-rest-serviceclassic-rest-serviceinit/import-certs5.9.10+
classic-rest-serviceclassic-rest-serviceclassic-rest-service5.9.9+
classificationargo/classificationinit/wait/main5.9.10+
connector-pluginconnector-plugininit/import-certs5.9.10+
connector-pluginconnector-pluginconnector-plugin5.9.9+
connectorsconnectorsconnectors5.9.9+
connectors-backendCRD5.9.9+
connectors-backendconnectors-backendconnectors-backend5.9.9+
fusion-adminfusion-adminadmin5.9.9+
fusion-commonscheck-admin5.9.9+
fusion-commonscheck-api-gateway5.9.9+
fusion-commonscheck-indexing5.9.9+
fusion-commonscheck-kafka5.9.9+
fusion-commonscheck-logstash5.9.9+
fusion-commonscheck-pulsar5.9.9+
fusion-commonssetup-keystore-and-properties5.9.9+
fusion-commonscheck-zk5.9.9+
fusion-config-syncfusion-config-syncfusion-config-sync5.9.9+
fusion-data-augmentationargo/data-augmentation/volume-fixinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/init-workspaceinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/write-job-configsinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/write-io-configsinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/add-zkhostinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/pull-data-training-and-metadatainit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/pull-data-training-and-metadata-cloudinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/volume-fix2init/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/synonym-listinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/download-synonym-dictionaryinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/keystroke-listinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/download-keystroke-blobinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/augmentinit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/push-augmented-datainit/main/wait5.9.10+
fusion-data-augmentationargo/data-augmentation/push-augmented-data-cloudinit/main/wait5.9.10+
fusion-indexingfusion-indexingfusion-indexing5.9.9+
fusion-resourcesfusion-resources-secret-hooksetup-keystore-and-properties5.9.10+
insightsinsightsinsights5.9.9+
job-launcherjob-launcherjob-launcher5.9.9+
job-launcherjob-launcherkubectl-runner5.9.9+
job-launcherjob-launcher-spark-cleanupkubectl-runner5.9.9+
job-launcherspark-kubernetes-driverspark-kubernetes-driver5.9.10+
job-launcherspark-kubernetes-executorspark-kubernetes-executor5.9.10+
job-rest-serverjob-rest-serverjob-rest-server5.9.9+
kafkakafka-metricskafka-exporter-archived5.9.10+
kafkakafka-provisioninginit/wait-for-available-kafka5.9.10+
kafkakafka-provisioningkafka-provisioning5.9.10+
kafkakafkakafka5.9.10+
kafkakafkajmx-exporter5.9.10+
kafkakafkainit/check-zk5.9.9+
kafkakafkainit/auto-discovery5.9.10+
kafkakafkainit/volume-permissions5.9.10+
lwai-gatewaylwai-gatewaylwai-gateway5.9.9+
ml-model-serviceml-model-servicejava-service5.9.9+
ml-model-serviceml-model-service-namespace-hookkubectl-runner5.9.9+
ml-model-service/ambassadorambassadorambassador5.9.10+
ml-model-service/ambassadorambassadorprometheus-exporter5.9.10+
ml-model-service/milvusmilvus-writablemilvus5.9.10+
ml-model-service/milvusmilvus-writableinit/wait-for-mysql5.9.10+
ml-model-service/milvusmilvus-writableinit/create-for-share-storage5.9.10+
ml-model-service/milvusmilvus-adminadmin5.9.10+
ml-model-service/milvusmilvus-admininit/wait-for-milvus5.9.10+
ml-model-service/milvusmilvus-mishardsinit/wait-for-mysql5.9.10+
ml-model-service/milvusmilvus-mishardsinit/wait-for-mysql5.9.10+
ml-model-service/milvusmilvus-mishardsmishards5.9.10+
ml-model-service/milvus/mysqlmysqlinit/remove-lost-found5.9.10+
ml-model-service/milvus/mysqlmysqlmysql5.9.10+
pm-uipm-uipm-ui5.9.9+
query-pipelinequery-pipelinequery-pipeline5.9.9+
question-answeringargo/qna-coldstart/init-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/write-job-configsinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/write-io-configsinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/write-io-configsinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/add-zkHostinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/pull-datainit/wait/main5.9.10+
question-answeringargo/qna-coldstart/pull-data-cloudinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/traininit/wait/main5.9.10+
question-answeringargo/qna-coldstart/list-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/post-modelinit/wait/main5.9.10+
question-answeringargo/qna-coldstart/apply-seldon-deploymentinit/wait/main5.9.10+
question-answeringargo/qna-supervised/init-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-supervised/write-job-configsinit/wait/main5.9.10+
question-answeringargo/qna-supervised/write-io-configsinit/wait/main5.9.10+
question-answeringargo/qna-supervised/add-zkhostinit/wait/main5.9.10+
question-answeringargo/qna-supervised/pull-qa-data-cloudinit/wait/main5.9.10+
question-answeringargo/qna-supervised/pull-qa-datainit/wait/main5.9.10+
question-answeringargo/qna-supervised/traininit/wait/main5.9.10+
question-answeringargo/qna-supervised/train-with-textsinit/wait/main5.9.10+
question-answeringargo/qna-supervised/list-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-supervised/post-modelinit/wait/main5.9.10+
question-answeringargo/qna-supervised/apply-seldon-deploymentinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/init-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/write-job-configsinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/write-io-configsinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/add-zkhostinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/list-workspaceinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/pull-eval-datainit/wait/main5.9.10+
question-answeringargo/qna-evaluation/pull-eval-data-cloudinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/evaluateinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/push-eval-results-cloudinit/wait/main5.9.10+
question-answeringargo/qna-evaluation/push-eval-resultsinit/wait/main5.9.10+
recommenderargo/item-recommender-userinit/wait/main5.9.10+
recommenderargo/item-recommender-user/init-workspaceinit/wait/main5.9.10+
recommenderargo/item-recommender-user/write-job-configsinit/wait/main5.9.10+
recommenderargo/item-recommender-user/write-io-configsinit/wait/main5.9.10+
recommenderargo/item-recommender-user/add-zkhostinit/wait/main5.9.10+
recommenderargo/item-recommender-user/pull-data-training-and-metadatainit/wait/main5.9.10+
recommenderargo/item-recommender-user/pull-data-training-and-metadata-cloudinit/wait/main5.9.10+
recommenderargo/item-recommender-user/train-with-metadatainit/wait/main5.9.10+
recommenderargo/item-recommender-user/train-without-metadatainit/wait/main5.9.10+
recommenderargo/item-recommender-user/push-recommendationsinit/wait/main5.9.10+
recommenderargo/item-recommender-user/push-recommendations-cloudinit/wait/main5.9.10+
recommenderargo/item-recommender-user/add-default-exclude-queryinit/wait/main5.9.10+
recommenderargo/item-recommender-user/init-workspaceinit/wait/main5.9.10+
recommenderargo/item-recommender-content/copy-modelinit/wait/main5.9.10+
recommenderargo/item-recommender-content/write-job-configsinit/wait/main5.9.10+
recommenderargo/item-recommender-content/write-io-configsinit/wait/main5.9.10+
recommenderargo/item-recommender-content/add-zkhostinit/wait/main5.9.10+
recommenderargo/item-recommender-content/pull-datainit/wait/main5.9.10+
recommenderargo/item-recommender-content/pull-data-cloudinit/wait/main5.9.10+
recommenderargo/item-recommender-content/traininit/wait/main5.9.10+
recommenderargo/item-recommender-content/push-contentinit/wait/main5.9.10+
recommenderargo/item-recommender-content/push-content-cloudinit/wait/main5.9.10+
recommenderargo/item-recommender-content/add-default-exclude-queryinit/wait/main5.9.10+
recommenderargo/item-recommender-content/delete-old-content-recommendationsinit/wait/main5.9.10+
reverse-searchreverse-searchinit/set-reverse-search-zone5.9.10+
reverse-searchreverse-searchinit/check-zk5.9.9+
reverse-searchreverse-searchinit/enable-tls-in-reverse-search5.9.10+
reverse-searchreverse-searchreverse-search5.9.10+
rules-uirules-uirules-ui5.9.9+
seldon-core-operatorseldon-controller-managermanager5.9.10+
seldon-core-operatorseldon-spartakus-volunteerseldon-spartakus-volunteer5.9.9+
seldon-core-operatorcrd/SeldonDeployment✅/❌5.9.9+
solrsolrinit/set-solr-zone5.9.10+
solrsolrinit/enable-tls-in-solr5.9.10+
solrconfigset-bootstrapconfigset-bootstrap5.9.10+
solrsolrsolr5.9.10+
solrsolr-exporterexporter5.9.10+
solrsolr-exporterinit/solr-init5.9.10+
solr-managedconfigset-bootstrapconfigset-bootstrap5.9.10+
solr-managedexporterexporter5.9.10+
solr-managedexporterinit/solr-init5.9.10+
solr-managedsolrinit/set-solr-zone5.9.10+
solr-managedsolrinit/enable-tls-in-solr5.9.10+
solr-managedsolrsolr5.9.10+
solr-managedsolrprocess-raw5.9.10+
solr-backup-runnersolr-backup-runner-backupsolr-backups5.9.10+
solr-backup-runnersolr-backup-runner-prunesolr-prune5.9.10+
templatingtemplatingtemplating5.9.9+
webappswebappswebapps5.9.9+
zookeeperzookeeperzookeeper5.9.10+
zookeeperzookeeperjmx-exporter5.9.10+
zookeeperzookeeperzookeeper-exporter5.9.10+
zookeeperzookeeper-chrootsmain5.9.10+

Faster, more efficient data processing with Spark 3.4.1

Fusion 5.9.10 upgrades Apache Spark to 3.4.1, bringing faster query execution, improved data transformation efficiency, and greater stability for distributed workloads. This enhancement optimizes indexing, refines SQL query handling, and ensures smoother analytics workflows, enabling you to process large-scale data with greater speed and precision. For more details, see the Spark 3.4.1 release notes. The Apache Spark 3.4.1 upgrade impacts jobs that use Python 3.7 behavior or compatibility, which may have automatically updated to Python 3.10.x and no longer function correctly. Update your code to ensure compatibility with Python 3.10.x and then test your Spark jobs in a staging environment before deploying to production.

Enhanced security and stability

Fusion 5.9.10 introduces a new wave of security enhancements, ensuring a more resilient and up-to-date platform. This release includes critical updates across core services, including admin, frameworks, apps manager, classic connectors, and query indexing, reinforcing protection across the stack. Additionally, we’ve updated the bitnami-shell base image and upgraded key-tools to v3.0.2, further strengthening security and compliance. These enhancements help maintain a robust and secure Fusion environment, keeping your data and infrastructure protected while optimizing performance for mission-critical workloads.

Apps Manager API

The new Apps Manager API gives information about your Fusion license, entitlements, and usage.
LucidAcademyLucidworks offers free training to help you get started.The Quick Learning for Apps Manager API focuses on the purpose and functions of the Apps Manager API:
Apps Manager APIPlay Button
Visit the LucidAcademy to see the full training catalog.

Bug fixes

  • Solr-exporter pods no longer get stuck in an ImagePullBackOff state, ensuring they pull the correct image and start reliably.
  • The job-launcher and job-rest-server services now start correctly in SSL mode, resolving an issue where missing dependencies caused failures during initialization.
  • Fusion now returns all matching search rules and rewrites in Commerce Studio instead of just the first ten, ensuring complete rule retrieval and better compatibility between the two systems.
  • Prometheus stage execution histograms and counters now include stage labels, making it easier to organize dashboards and interpret stage metrics without relying on auto-generated IDs.
  • Resolved an issue in Fusion 5.9.4 where v2 connectors failed to start in certain self-hosted EKS environments, preventing timeouts and ensuring successful job execution.
  • Increased the request buffer size in lwai-gateway from 250 KB to 5 MB, allowing large messages to be processed without failures.

Known issues

  • Saving large query pipelines may cause OOM failures under high load. In Fusion versions 5.9.10 through 5.9.13, saving a large query pipeline during high query volume can result in thread lock, excessive memory use, and eventual OOM errors in the Query service.
    This issue is fixed in Fusion 5.9.14.
  • Deploying Fusion with TLS flags enabled fails in ArgoCD due to Helm chart rendering limitations.
    When using ArgoCD to deploy Fusion 5.9.10 or 5.9.11 with TLS options enabled, Helm chart rendering fails due to the use of the lookup function, which is unsupported by ArgoCD. This prevents ArgoCD from generating manifests, blocking deployment workflows that rely on TLS configuration.
    As a workaround, deploy Fusion without enabling TLS in ArgoCD-managed environments, or perform the deployment using Helm directly.
    This issue is fixed in Fusion 5.9.12.
  • An issue prevents segment-based rule filtering from working correctly in Commerce Studio. This issue is fixed in Fusion 5.9.12.

Deprecations and removals

For full details on deprecations and removals, see Deprecations and Removals.

Bitnami removal

Fusion 5.9.10 will be re-released with the same functionality but updated image references. In the meantime, Lucidworks will self-host the required images while we work to replace Bitnami images with internally built open-source alternatives. If you are a self-hosted Fusion customer, you must upgrade before August 28 to ensure continued access to container images and prevent deployment issues. You can reinstall your current version of Fusion or upgrade to Fusion 5.9.14, which includes the updated Helm chart and prepares your environment for long-term compatibility. See Prevent image pull failures due to Bitnami deprecation in Fusion 5.9.5 to 5.9.13 for more information on how to prevent image pull failures.

Webapps service

Fusion has deprecated the Webapps service. In previous versions of Fusion, you could use this service to deploy an App Studio WAR file into Fusion. As of Fusion 5.9.10, you should instead Deploy App Studio Enterprise to a Fusion 5 Cluster (GKE).
This article explains how to deploy App Studio Enterprise (ASE) to an existing Fusion 5 cluster in Google Kubernetes Engine (GKE) without using the Webapps service.Before completing this guide, ensure that your fusion.conf file points to the IP or URI and port of the proxy service.Run the App Studio Enterprise application locally and verify functioning security and search features with the cluster you are deploying to.

Prepare the package

  1. Package your app into a single JAR file:
    ./app-studio package
    
  2. App Studio Enterprise includes a dockerfile. Create the App Studio Enterprise Docker image:
    docker build PATH -t APP_NAME
    
    Set or replace APP_NAME with the name of your application. Replace PATH with the path to build from.
  3. You can test the Docker image locally with the following command:
    docker run -it -p LOCAL_PORT:8080 APP_NAME
    
    Set or replace LOCAL_PORT with the port on your local machine that can access the app. Replace APP_NAME with the ASE application name.

Publish the image

You can publish the Docker image anywhere that supports Docker images. This section explains how to publish a Docker image to Google Kubernetes Engine.
  1. Tag your container for the registry:
    docker tag APP_NAME gcr.io/PROJECT_NAME/APP_NAME
    
  2. Push your Docker image to the Google Container Registry:
    docker push gcr.io/PROJECT_NAME/APP_NAME
    
  3. Verify the image:
    gcloud compute instances list
    

Deploy the app to a cluster

After publishing your ASE Docker image, deploy the image to a cluster. Your existing Fusion 5 cluster is a good choice.
  1. Switch the context to your Fusion 5 cluster:
    gcloud container clusters get-credentials CLUSTER_NAME
    
    Replace CLUSTER_NAME with your existing Fusion 5 cluster’s name.
  2. Create a deployment in your cluster using the image you published:
    kubectl create deployment APP_NAME --image=gcr.io/PROJECT_NAME/APP_NAME:latest
    

Create an Ingress resource

After deploying the app, create an Ingress resource for your ASE instance. If you require more Ingress rules, your Ingress resource will look different. Learn more about Ingress resources.
  1. Use the following command to create a minimal Ingress resource:
    cat <<EOF | kubectl apply -f -
    apiVersion: networking.k8s.io/v1beta1
    kind: Ingress
    metadata:
      name: ase-ingress
    spec:
      backend:
        serviceName: $AppName
        servicePort: 80
    EOF
    
  2. Verify the Ingress resource:
    kubectl get ingress ase-ingress
    

Forked Apache Tika Parser

The Forked Apache Tika parser stage has been removed. Use asynchronous Tika parsing instead.

Upgrade and platform support details

Upgrading to the latest version of Fusion 5.9 offers several key benefits:
  • Access to latest features: Stay current with the latest features and functionality to ensure compatibility and optimal performance.
  • Simplified process: Fusion 5.9.5 and later use an in-place upgrade strategy, making upgrades easier than ever.
  • Extended support: Upgrading keeps you up-to-date with the latest supported Kubernetes versions, as outlined in the Lucidworks Fusion Product Lifecycle policy.
Check out the Fusion 5 Upgrades for details.
Looking to upgrade?See Fusion 5 Upgrades for detailed instructions.

Kubernetes platform support

Lucidworks has tested and validated support for the following Kubernetes platforms and versions:
  • Google Kubernetes Engine (GKE): 1.28, 1.29, 1.30, 1.31
  • Microsoft Azure Kubernetes Service (AKS): 1.28, 1.29, 1.30, 1.31
  • Amazon Elastic Kubernetes Service (EKS): 1.28, 1.29, 1.30, 1.31
Support is also offered for Rancher Kubernetes Engine (RKE) and OpenShift 4 versions that are based on Kubernetes 1.28, 1.29, 1.30, 1.31. OpenStack and customized Kubernetes installations are not supported. For more information on Kubernetes version support, see the Kubernetes support policy.

Component versions

The following table details the versions of key components that may be critical to deployments and upgrades.
ComponentVersion
Solrfusion-solr 5.9.10 (based on Solr 9.6.1)
ZooKeeper3.9.1
Spark3.4.1
Ingress ControllersNginx, Ambassador (Envoy), GKE Ingress Controller Istio not supported.
More information about support dates can be found at Lucidworks Fusion Product Lifecycle.
I