-
Notifications
You must be signed in to change notification settings - Fork 5
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.
-
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 propertynifi.python.extensions.source.directory.defaultinnifi.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
./extensionsto./nar_extensions. qubership-nifi image retains./extensionsto 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:
-
./nar_repository- contains NAR files for NiFi extensions loaded via the NiFi API (directory path is defined by propertynifi.nar.persistence.provider.properties.directoryinnifi.properties). -
./assets- contains assets (various files used within flows) loaded via NiFi API (directory path is defined by propertynifi.asset.manager.properties.directoryinnifi.properties).
-
-
Apache NiFi 2.x prohibits changing the key used to encrypt sensitive properties. Therefore,
NIFI_NEW_SENSITIVE_KEYenvironment variable should not be changed after first deploy. Any change to it would cause an error.NIFI_PREVIOUS_SENSITIVE_KEYenvironment 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.sniHostCheckproperty set totrue. 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.