FlowForge Docker Container Driver
FlowForge driver to create projects as docker containers
Configuration
In the flowforge.yml
file
...
driver:
type: kubernetes
options:
registry: containers.flowforge.com
projectSelector:
role: projects
projectNamespace: flowforge
cloudProvider: aws
privateCA: ff-ca-certs
certManagerIssuer: lets-encrypt
k8sDelay: 1000
k8sRetries: 10
logPassthrough: true
customHostname:
enabled: true
cnameTarget: custom-loadbalancer.example.com
certManagerIssuer: lets-encrypt
ingressClass: custom-nginx
storage:
enabled: true
storageClass: nfs-storage
size: 5Gi
podSecurityContext:
runAsUser: 1000
runAsGroup: 1000
fsGroup: 1000
registry
is the Docker Registry to load Stack Containers from
projectNamespace
the namespace Project pods should run in
projectSelector
a list of labels that should be used to select which nodes Project Pods
should run on
cloudProvider
normally not set, but can be aws
This triggers the adding of
AWS EKS specific annotation for ALB Ingress. or openshift
to allow running on OpenShift (Enterprise license only)
privateCA
name of ConfigMap holding PEM CA Cert Bundle (file name certs.pem
) Optional
certManagerIssuer
name of the ClusterIssuer to use to create HTTPS certs for instances (default not set)
k8sRetries
how many times to retry actions against the K8s API
k8sDelay
how long to wait (in ms) between retries to the K8s API
logPassthrough
Have Node-RED logs printed in JSON format to container stdout (default false)
customHostname
Settings linked to allowing instances to have a second hostname
customHostname.enabled
(default false)
customHostname.cnameTarget
The hostname users should configure their DNS entries to point at. Required. (default not set)
customHostname.certManagerIssuer
Name of the Cluster issuer to use to create HTTPS certs for the custom hostname (default not set)
customHostname.ingressClass
Name of the IngressClass to use to expose the custom hostname (default not set)
storage.enabled
Mounts a persistent volume on /data/storage
(default false)
storage.storageClass
Name of StorageClass to use to allocate the volume (default not set)
storage.storageClassEFSTag
Used instead of storage.storageClass
when needing to shard across multiple EFS file systems (default not set)
storage.size
Size of the volume to request (default not set)
podSecurityContext
Settings linked to the security context of the pod
Expects to pick up K8s credentials from the environment
Configuration via environment variables
Next variables are read from flowforge process environment in runtime:
INGRESS_CLASS_NAME
- Ingress
class name for editor instances
INGRESS_ANNOTATIONS
- Ingress
annotations for editor instances as JSON-encoded object
DEPLOYMENT_TOLERATIONS
- Editor Deployment
tolerations as JSON-encoded object
EDITOR_SERVICE_ACCOUNT
- Editor service account.