faas-federation is an implementation of the faas-provider which can be used to unify one or more OpenFaaS clusters under a single API.
This project exists to join together two or more distinct OpenFaaS clusters.
- Multi-region - east/west
Get a single API / control-plane for one or more clusters split by location, such as east/west.
- Edge locations
You may have one or more edge locations (or even ARM/IoT OpenFaaS installations). You can join them together under a single set of credentials and control plane.
- Varying provider types
You can connect two or more different OpenFaaS provider types together. For instance: Kubernetes (faas-netes) and Lambda (faas-lambda). This means you can have a single, centralized control-plane but deploy to both AWS Lambda and Kubernetes at the same time.
faas-federation can replace your provider in your existing OpenFaaS deployment.
More coming soon.
Coming soon: deploy OpenFaaS with two separate faas-memory providers.
See also: example of Kubernetes and AWS Lambda federated configuration in the sample helm chart.
To route to one gateway or another, simply set com.openfaas.federation.gateway to the name you want to pick.
| Annotation | Description |
|---|---|
com.openfaas.federation.gateway |
route the request based on the provider name i.e. faas-netes, faas-lambda |
All configuration is managed using environment variables
| Option | Usage | Default | Required |
|---|---|---|---|
providers |
comma separated list of provider URLs i.e. http://faas-netes:8080,http://faas-lambda:8080 |
- | yes |
default_provider |
default provider URLs used when no deployment constraints are matched i.e. http://faas-netes:8080 |
- | yes |
Idea by Alex Ellis and Edward Wilde.
MIT