Skip to content

qubership‐nifi 2.0.0 Upgrade Notes

Dmitriy Myasnikov edited this page Nov 5, 2025 · 4 revisions

qubership-nifi 2.0.0 Upgrade Notes

qubership-nifi 2.0.0 includes an upgrade to Apache NiFi 2.5.0, which may affect existing deployments. This document outlines the key upgrade notes to help ensure a smooth transition to the new version.

Notable Changes

  • Apache NiFi 2.x requires updates to custom components (processors, controller services, reporting tasks). See the Updating Custom Components to Apache NiFi 2.5.0 page for details on how to update custom components.

  • Apache NiFi 2.x supports Python-based processors. For this functionality to work, Python must be installed in the Docker image used to run qubership-nifi. See the qubership-nifi Dockerfile for reference.

  • A new directory has been added in Apache NiFi 2.x to support Python: ./python_extensions. It contains Python files used by Python-based processors. Directory path is defined by property nifi.python.extensions.source.directory.default in nifi.properties. If you plan to use Python-based processors, you may need to mount this directory as a volume in the Docker container.

  • The vanilla Apache NiFi 2.x Docker image changes the NAR autoloader directory from ./extensions to ./nar_extensions. qubership-nifi image retains ./extensions to maintain backward compatibility with 1.x version.

  • New directories have been added in Apache NiFi 2.x for NAR files and assets loaded via the NiFi API. If you plan to use the NiFi API to load NAR files or assets, you may need to mount these directories as volumes in the Docker container to ensure they persist between restarts. These directories are:

    1. ./nar_repository - contains NAR files for NiFi extensions loaded via the NiFi API (directory path is defined by property nifi.nar.persistence.provider.properties.directory in nifi.properties).
    2. ./assets - contains assets (various files used within flows) loaded via NiFi API (directory path is defined by property nifi.asset.manager.properties.directory in nifi.properties).
  • Apache NiFi 2.x prohibits changing the key used to encrypt sensitive properties. Therefore, NIFI_NEW_SENSITIVE_KEY environment variable should not be changed after first deploy. Any change to it would cause an error. NIFI_PREVIOUS_SENSITIVE_KEY environment variable is ignored in qubership-nifi 2.x version.

  • PrometheusReportingTask is deprecated and removed in NiFi 2.x. See the Monitoring changes in Apache NiFi 2.x page for details. Some of the metrics that were used from PrometheusReportingTask are now available in ComponentPrometheusReportingTask.

  • Apache NiFi 2.x relies on Jetty 12.x, which by default has jetty.ssl.sniHostCheck property set to true. As a result, HTTPS liveness and readiness probes set like below:

            livenessProbe:
              httpGet:
                path: "/"
                port: web
                scheme: HTTPS

will fail with status code = 400. To avoid these errors, you need to add httpHeaders section to probes like below (where <common-nifi-hostname> must be replaced with some hostname included in nifi server TLS certificate Subject Alternative Names (SANs) and common for all cluster nodes):

            livenessProbe:
              httpGet:
                path: "/"
                port: web
                scheme: HTTPS
                httpHeaders:
                - name: Host
                  value: "<common-nifi-hostname>"

See the Jetty documentation for more details on property jetty.ssl.sniHostCheck and its behavior.