Upgrading FlowFuse

If you are upgrading an existing FlowFuse installation, this page will list any particular requirements needed to upgrade to a given level.

If you are upgrading across multiple versions, make sure you check the requirements for each version you are upgrading across.

Note that we do not support downgrading FlowFuse to previous levels once an upgrade has been performed.

General guideline

Details of how to upgrade can be found for each deployment model:

Upgrading to 2.6.0

Required AWS EKS configuration change

This release introduces the new Embedded Editor which integrates the Node-RED editor with the FlowFuse dashboard when using Node-RED 4.0. This has required some changes to be made on how certain HTTP headers are passed between the NGINX Ingress controller and AWS NLB.

The following configuration change must be applied otherwise users will not be able to login to Node-RED 4.0 instances.

The following configuration needs to be added in the values passed to the ingress-nginx helm chart. See full configuration for the reference.

controller:
   config:
      use-proxy-protocol: true
   service:
      annotations:
         service.beta.kubernetes.io/aws-load-balancer-target-group-attributes: proxy_protocol_v2.enabled=true
   externalTrafficPolicy: Cluster

The Proxy Protocol feature will be enabled only on newly created Target Groups. To enable the Proxy Protocol on an existing Target Group, manual intervention is required. For detailed instructions, please refer to the official AWS documentation.

Persistent Storage

As part of this release there is a new option for Persistent File Storage for Kubernetes based deployments. This change removes the need to use the customised File Nodes and the FlowFuse File Server by mounting a Persistent Volume into the Pods running the instances.

To enable this feature the following needs to be created

  • A Kubernetes StorageClass that points to storage provider that can dynamically provision new Persistent Volumes. e.g. the AWS EFS CSI driver
  • Pass the following values to the FlowFuse Helm Chart
    forge:
      persistentStorage:
        enabled: true
        storageClass: '<name of StorageClass>'
        size: '5Gi'
    
    Where size is the default size for the volume.

Details for how to setup a AWS EFS backed StorageClass can be found on the aws-efs-csi-driver site.

Upgrading to 2.0.0

⚠️ Breaking changes introduced!

Together with new application features, this release 2.0.0 introduces breaking changes in Flowfuse Helm chart. If you are managing your local Flowfuse instance using our Helm Chart, please refer to the upgrade section of the Kubernetes installation guide or the Helm Chart README.md for more details.

Upgrading to 1.10

Endpoint Rate Limiting is now available to FlowFuse. This is disabled by default, but can be enabled by setting the rate_limits.enabled config setting to true. The documentation for this is available here.

The TeamType concept was expanded in this release. It is used to control what Instance Types are available for different teams, as well as any additional limits that should be applied. When creating new Instance Types, they must now be manually enabled for the Team Types on the platform.

Upgrading to 1.5

The main change in this release was a change in our terminology around the individual Node-RED instances. We have introduced the Application concept as a way to group individual Node-RED instances (what we previously called Projects).

The term 'Project' is being phased out. You may still see it crop up, such as in some of the external APIs, but we're working our way through removing it.

Upgrading to 1.3

To enable the Team Library and FlowFuse-based Authentication of HTTP routes each Node-RED instance will need to be updated to the latest Stack.

Persistent Context added

The new Persistent Context feature is available to projects when running with a premium license.

This feature requires additional configuration to be added to the File Server component that was introduced in FlowFuse 1.1.

Details of how to configure this can be found at the following links:

Upgrading to 1.1

File Server added

This release introduces a system for supporting persistent file storage when running on Docker or Kubernetes (it will also work with LocalFS, but is not required as projects have access to the hosts filesystem).

Details of how to configure this can be found at the following links:

Upgrading to 0.8

MQTT Broker added

This release introduces an MQTT Broker into the FlowFuse platform used to communicate between devices and the core platform.

For LocalFS users, they will need to manually setup the broker and ensure it is properly configured. The documentation for this is available here

LocalFS Users

With the 0.8 release we have updated the version of the SQLite3 module used by the localfs container driver. We are moving from v5.0.2 to v5.0.8.

There appears to be a clash with the bcrypt module when doing an in place upgrade of the SQLite3 module that gives an error similar to the following:

npm ERR! path /opt/share/projects/flowforge/sqlite-test/node_modules/sqlite3
npm ERR! command failed
npm ERR! command sh -c node-pre-gyp install --fallback-to-build
npm ERR! sh: line 1: node-pre-gyp: command not found

If you see this then the simplest fix is to remove the node_modules directory and reinstall the modules.

Project Nodes

This release adds support for the new Project Link nodes that can be used to send messages between projects seamlessly.

These nodes require the MQTT Broker to be properly configured.

To deploy flows using these nodes to a Device will require the Device to be running the latest 0.2.0 release. They will also need to have their credentials regenerated once the MQTT Broker has been added.

Upgrading to 0.7

The 0.7 release introduces the ProjectType concept.

After upgrading to 0.7, an administrator must perform the following tasks before users will be able to create new projects:

  1. Create a Project Type.
    1. On the Administrator Settings -> Project Types page, click 'Create project type'.
    2. Provide a name and description. If you have billing enabled, copy in the default Stripe Product/Price IDs from your runtime settings file.
    3. Click 'create'
  2. Assign your existing stacks to that type
    1. On the Administrator Settings -> Stacks page, edit each existing stack via the drop-down menu in the table.
    2. As a one-time action, set its Project Type to the one just created.
    3. Click 'save'. This will update the stack and all existing projects to be associated with the new Project Type