Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/flowfuse/driver-k8s
Kubernetes container driver for FlowFuse
https://github.com/flowfuse/driver-k8s
Last synced: about 2 months ago
JSON representation
Kubernetes container driver for FlowFuse
- Host: GitHub
- URL: https://github.com/flowfuse/driver-k8s
- Owner: FlowFuse
- License: apache-2.0
- Created: 2022-01-04T13:53:56.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2024-10-24T09:51:39.000Z (3 months ago)
- Last Synced: 2024-10-25T07:42:51.371Z (3 months ago)
- Language: JavaScript
- Homepage:
- Size: 1020 KB
- Stars: 2
- Watchers: 4
- Forks: 3
- Open Issues: 11
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# FlowForge Docker Container Driver
FlowForge driver to create projects as docker containers
## Configuration
In the `flowforge.yml` file
```yaml
...
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
```- `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)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.