FlowForge driver to create projects as docker containers
In the flowforge.yml file
...
driver:
type: kubernetes
options:
registry: containers.flowforge.com
projectSelector:
role: projects
projectNamespace: flowforge
projectLabels:
environment: production
team: alpha
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: 1000registryis the Docker Registry to load Stack Containers fromprojectNamespacethe namespace Project pods should run inprojectSelectora list of labels that should be used to select which nodes Project Pods should run onprojectLabelsa list of custom labels that should be applied to all resources created for Projects (Pods, Services, Ingresses, PVCs)projectProbesoptional configuration for liveness, readiness and startup probes for project containersprojectProbes.livenessProbecustom liveness probe configuration (default not set)projectProbes.readinessProbecustom readiness probe configuration (default not set)projectProbes.startupProbecustom startup probe configuration (default not set)cloudProvidernormally not set, but can beawsThis triggers the adding of AWS EKS specific annotation for ALB Ingress. oropenshiftto allow running on OpenShift (Enterprise license only)privateCAname of ConfigMap holding PEM CA Cert Bundle (file namecerts.pem) OptionalcertManagerIssuername of the ClusterIssuer to use to create HTTPS certs for instances (default not set)k8sRetrieshow many times to retry actions against the K8s APIk8sDelayhow long to wait (in ms) between retries to the K8s APIlogPassthroughHave Node-RED logs printed in JSON format to container stdout (default false)customHostnameSettings linked to allowing instances to have a second hostnamecustomHostname.enabled(default false)customHostname.cnameTargetThe hostname users should configure their DNS entries to point at. Required. (default not set)customHostname.certManagerIssuerName of the Cluster issuer to use to create HTTPS certs for the custom hostname (default not set)customHostname.ingressClassName of the IngressClass to use to expose the custom hostname (default not set)storage.enabledMounts a persistent volume on/data/storage(default false)storage.storageClassName of StorageClass to use to allocate the volume (default not set)storage.storageClassEFSTagUsed instead ofstorage.storageClasswhen needing to shard across multiple EFS file systems (default not set)storage.sizeSize of the volume to request (default not set)podSecurityContextSettings linked to the security context of the podcontainerSecurityContextSettings linked to the security context of the containerservice.typeType of service to create for the editor (allowedClusterIPorNodePort, defaultClusterIP)schedulerNamename of the custom Kubernetes scheduler to use for Project Pods and MQTT agent Pods (default not set, uses default Kubernetes scheduler)
Expects to pick up K8s credentials from the environment
Next variables are read from flowforge process environment in runtime:
INGRESS_CLASS_NAME-Ingressclass name for editor instancesINGRESS_ANNOTATIONS-Ingressannotations for editor instances as JSON-encoded objectDEPLOYMENT_TOLERATIONS- EditorDeploymenttolerations as JSON-encoded objectEDITOR_SERVICE_ACCOUNT- Editor service account.