- docs
- Overview
- Administering FlowForge
- Contributing to FlowForge
- FlowForge API
- FlowForge Cloud
- Using FlowForge
- Changing the Stack
- devices
- Environment Variables
- FlowForge Concepts
- FlowForge File Nodes
- FlowForge Persistent Context
- FlowForge Project Nodes
- Instance Settings
- Logging
- Migrating a Node-RED project to FlowForge
- Node-RED Tools plugin
- Shared Team Library
- Snapshots
- Staged Deployments
- Teams
- Running FlowForge
- Installing FlowForge
- Configuring FlowForge
- DNS Setup
- Docker install
- Email configuration
- First Run Setup
- FlowForge File Storage
- Install FlowForge on Kubernetes
- Local Install
- Upgrading FlowForge
# Kubernetes Stacks
A Stack defines a set of platform configuration options that will get applied to each Node-RED instance when created.
For container based deployment models, this covers three things:
memory
- the amount of memory (in MB) to limit container to. Recommended minimum:256
.cpu
- a value between 1 and 100 that is the % of a CPU core the container should be allowed to consume.container
- this is the fully qualified name of the container to use. The default container built when following the install instructions is namedflowforge/node-red:latest
# Creating Containers
There is an example Dockerfile
and package.json
in the node-red-container
directory of the helm project. This will start with nodered/node-red:latest
as it's base and then add the required FlowForge components.
Builds of this container for amd64, arm64 and armv7 are built for every release and published to Docker hub as flowforge/node-red. These can be used as a base to build custom stacks.
If you wanted to pin at Node-RED v3.0.2 you would change the first line to:
FROM nodered/node-red:3.0.2
ARG REGISTRY
RUN if [[ ! -z "$REGISTRY" ]] ; then npm config set @flowforge:registry "$REGISTRY"; fi
COPY package.json /data
...
To add nodes to the default image you can add them to the package.json
file along side the FlowForge plugins
{
"name": "node-red-project",
"description": "A Node-RED Project",
"version": "0.10.0",
"private": true,
"dependencies":{
"@flowforge/nr-storage": "^0.10.0",
"@flowforge/nr-auth": "^0.10.0",
"@flowforge/nr-audit-logger": "^0.10.0",
"node-red-dashboard": "^3.1.6"
}
}
To build the container run the following:
docker build node-red-container -t [your.container.registry]/flowforge/node-red-dashboard:3.0.2
docker push [your.container.registry]/flowforge/node-red-dashboard:3.0.2
You would then enter [your.container.registry]/flowforge/node-red-dashboard:3.0.2
in the container
section of the Stack configuration.
Stacks can be changed on a per Node-RED instance basis, see also the user stack documentation.