{ "1.1.2": { "healthy": true, "supported": true, "healthy_error": null, "location": "/__w/charts/charts/community/node-red/1.1.2", "last_update": "2023-11-14 10:11:57", "required_features": [ "normalize/ixVolume" ], "human_version": "3.1.0_1.1.2", "version": "1.1.2", "chart_metadata": { "name": "node-red", "description": "Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.", "annotations": { "title": "Node-RED" }, "type": "application", "version": "1.1.2", "apiVersion": "v2", "appVersion": "3.1.0", "kubeVersion": ">=1.16.0-0", "maintainers": [ { "name": "truenas", "url": "https://www.truenas.com/", "email": "dev@ixsystems.com" } ], "dependencies": [ { "name": "common", "repository": "file://../../../common", "version": "1.2.2" } ], "home": "https://nodered.org", "icon": "https://media.sys.truenas.net/apps/node-red/icons/icon.png", "sources": [ "https://github.com/node-red/node-red-docker", "https://github.com/truenas/charts/tree/master/community/node-red", "https://nodered.org" ], "keywords": [ "automation" ] }, "app_metadata": { "runAsContext": [ { "userName": "node-red", "groupName": "node-red", "gid": 1000, "uid": 1000, "description": "Node-RED runs as a non-root user." } ], "capabilities": [], "hostMounts": [] }, "schema": { "groups": [ { "name": "Node-RED Configuration", "description": "Configure Node-RED" }, { "name": "User and Group Configuration", "description": "Configure User and Group for Node-RED" }, { "name": "Network Configuration", "description": "Configure Network for Node-RED" }, { "name": "Storage Configuration", "description": "Configure Storage for Node-RED" }, { "name": "Resources Configuration", "description": "Configure Resources for Node-RED" } ], "portals": { "web_portal": { "protocols": [ "$kubernetes-resource_configmap_portal_protocol" ], "host": [ "$kubernetes-resource_configmap_portal_host" ], "ports": [ "$kubernetes-resource_configmap_portal_port" ], "path": "$kubernetes-resource_configmap_portal_path" } }, "questions": [ { "variable": "noderedConfig", "label": "", "group": "Node-RED Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "imageSelector", "label": "Node-RED Image", "description": "The Node-RED image to use.", "schema": { "type": "string", "default": "node16Image", "required": true, "enum": [ { "value": "node14Image", "description": "Node-RED on Node.js 14" }, { "value": "node14MinimalImage", "description": "Node-RED Minimal on Node.js 14" }, { "value": "node16Image", "description": "Node-RED on Node.js 16" }, { "value": "node16MinimalImage", "description": "Node-RED Minimal on Node.js 16" }, { "value": "node18Image", "description": "Node-RED on Node.js 18" }, { "value": "node18MinimalImage", "description": "Node-RED Minimal on Node.js 18" } ] } }, { "variable": "safeMode", "label": "Safe Mode", "description": "Starts Node-RED without starting the flows.\nThis allows you to open the flows in the editor and\n make changes without the flows running.\n When you deploy your changes, the flows are then started.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "enableProjects", "label": "Enable Projects", "description": "Enable projects in Node-RED.\nThis allows you to use the projects feature in Node-RED.\n", "schema": { "type": "boolean", "default": false } }, { "variable": "additionalEnvs", "label": "Additional Environment Variables", "description": "Configure additional environment variables for Node-RED.", "schema": { "type": "list", "default": [], "items": [ { "variable": "env", "label": "Environment Variable", "schema": { "type": "dict", "attrs": [ { "variable": "name", "label": "Name", "schema": { "type": "string", "required": true } }, { "variable": "value", "label": "Value", "schema": { "type": "string", "required": true } } ] } } ] } } ] } }, { "variable": "noderedNetwork", "label": "", "group": "Network Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "webPort", "label": "Web Port", "description": "The port for the Node-RED Web UI.", "schema": { "type": "int", "default": 30049, "min": 9000, "max": 65535, "required": true } }, { "variable": "hostNetwork", "label": "Host Network", "description": "Bind to the host network. It's recommended to keep this disabled.\n", "schema": { "type": "boolean", "default": false } } ] } }, { "variable": "noderedStorage", "label": "", "group": "Storage Configuration", "schema": { "type": "dict", "attrs": [ { "variable": "data", "label": "Node-RED Data Storage", "description": "The path to store Node-RED Data.", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.\nHost Path: Is a path that already exists on the system.\n", "schema": { "type": "string", "required": true, "immutable": true, "default": "ixVolume", "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" } ] } }, { "variable": "datasetName", "label": "Dataset Name", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "hidden": true, "immutable": true, "default": "data", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "hostPath", "label": "Host Path", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "immutable": true, "required": true } } ] } }, { "variable": "additionalStorages", "label": "Additional Storage", "description": "Additional storage for Node-RED.", "schema": { "type": "list", "default": [], "items": [ { "variable": "storageEntry", "label": "Storage Entry", "schema": { "type": "dict", "attrs": [ { "variable": "type", "label": "Type", "description": "ixVolume: Is dataset created automatically by the system.\nHost Path: Is a path that already exists on the system.\nSMB Share: Is a SMB share that is mounted to a persistent volume claim.\n", "schema": { "type": "string", "required": true, "default": "ixVolume", "immutable": true, "enum": [ { "value": "hostPath", "description": "Host Path (Path that already exists on the system)" }, { "value": "ixVolume", "description": "ixVolume (Dataset created automatically by the system)" }, { "value": "smb-pv-pvc", "description": "SMB Share (Mounts a persistent volume claim to a SMB share)" } ] } }, { "variable": "mountPath", "label": "Mount Path", "description": "The path inside the container to mount the storage.", "schema": { "type": "path", "required": true } }, { "variable": "hostPath", "label": "Host Path", "description": "The host path to use for storage.", "schema": { "type": "hostpath", "show_if": [ [ "type", "=", "hostPath" ] ], "required": true } }, { "variable": "datasetName", "label": "Dataset Name", "description": "The name of the dataset to use for storage.", "schema": { "type": "string", "show_if": [ [ "type", "=", "ixVolume" ] ], "required": true, "immutable": true, "default": "storage_entry", "$ref": [ "normalize/ixVolume" ] } }, { "variable": "server", "label": "Server", "description": "The server for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "share", "label": "Share", "description": "The share name for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "domain", "label": "Domain (Optional)", "description": "The domain for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ] } }, { "variable": "username", "label": "Username", "description": "The username for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true } }, { "variable": "password", "label": "Password", "description": "The password for the SMB share.", "schema": { "type": "string", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "private": true } }, { "variable": "size", "label": "Size (in Gi)", "description": "The size of the volume quota.", "schema": { "type": "int", "show_if": [ [ "type", "=", "smb-pv-pvc" ] ], "required": true, "min": 1, "default": 1 } } ] } } ] } } ] } }, { "variable": "resources", "group": "Resources Configuration", "label": "", "schema": { "type": "dict", "attrs": [ { "variable": "limits", "label": "Limits", "schema": { "type": "dict", "attrs": [ { "variable": "cpu", "label": "CPU", "description": "CPU limit for Node-RED.", "schema": { "type": "string", "max_length": 6, "valid_chars": "^(0\\.[1-9]|[1-9][0-9]*)(\\.[0-9]|m?)$", "valid_chars_error": "Valid CPU limit formats are\n- Plain Integer - eg. 1\n- Float - eg. 0.5\n- Milicpu - eg. 500m\n", "default": "4000m", "required": true } }, { "variable": "memory", "label": "Memory", "description": "Memory limit for Node-RED.", "schema": { "type": "string", "max_length": 12, "valid_chars": "^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$", "valid_chars_error": "Valid Memory limit formats are\n- Suffixed with E/P/T/G/M/K - eg. 1G\n- Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi\n- Plain Integer in bytes - eg. 1024\n- Exponent - eg. 134e6\n", "default": "8Gi", "required": true } } ] } } ] } } ] }, "app_readme": "
Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
\n\n", "detailed_readme": "When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the
\nNode-RED
directories.\nAfterward, theNode-RED
container will run as a non-root user (1000
).\nAll mounted storage(s) will bechown
ed only if the parent directory does not match the configured user.
Node-RED is a programming tool for wiring together hardware devices, APIs and online services in new and interesting ways.
\n\n", "changelog": null } }When application is installed, a container will be launched with root privileges.\nThis is required in order to apply the correct permissions to the
\nNode-RED
directories.\nAfterward, theNode-RED
container will run as a non-root user (1000
).\nAll mounted storage(s) will bechown
ed only if the parent directory does not match the configured user.