Install nodes that require significant memory
- Dominant language
- JavaScript
- Stars
- 400
- Forks
- 89
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 146
Description
Some nodes in the Node-RED ecosystem have a larger install-time memory requirement than others. This can lead to installs failing when running in a Stack with a limited memory footprint.
For example, the 256 memory limit we have in FFCloud is fine for most cases, but will fail for a module like `node-red-contrib-graphql-server`.
This issue is to track how we can improve the user experience around this scenario
- Node-RED
- When running `npm`, node-red doesn't capture the full log output. That can make it hard to know why an install failed. Capturing the full log could produce a *lot* of noise. It would be interesting to see if the exit code of a killed process is distinct enough for Node-RED to detect and log appropriately
- FlowForge
- Memory is defined by the Project Stack. In a k8s environment, that doesn't give an admin any discretion to increase an individual project's memory allocation on an ad hoc basis.
- One solution would be to define a second stack with more memory allocated.
- If that was made generally available, we would want to consider attaching an additional cost to the stack to reflect the larger resource usage. This would require #380.
- An alternative would be to create the stack but mark it 'inactive' - this means it doesn't show up for users. We could then allow an admin to modify the project to use that stack (overriding the checks we have about applying an inactive stack). The user wouldn't be able to modify the stack (because they cannot select inactive stacks) - which would make upgrading their project something admins would have to do for them... the maintenance cost of that is not practical.
```[tasklist]
### Tasks
- [ ] https://github.com/FlowFuse/flowfuse/issues/3630
- [ ] https://github.com/FlowFuse/flowfuse/issues/3631
```
Contributor guide
Assessment
This issue has not been assessed yet.