faas-netes is an OpenFaaS provider which enables Kubernetes for OpenFaaS. The existing REST API, CLI and UI are fully compatible.
OpenFaaS also runs well on managed Kubernetes services like AKS, EKS and GKE. See our list of tutorials in the documentation site for more.
Watch a video demo from TechFieldDay Extra at Dockercon
OpenFaaS (Functions as a Service) is a framework for building serverless functions with Docker and Kubernetes which has first class support for metrics. Any process can be packaged as a function enabling you to consume a range of web events without repetitive boiler-plate coding.
In this README you'll find a technical overview and instructions for deploying to a Kubernetes cluster. (Docker Swarm is also supported along with Hashicorp Nomad)
- Framework for deploying serverless workloads
- Native Kubernetes integrations (API and ecosystem)
- Built-in UI
- YAML templates & helm chart
- Over 13.5k GitHub stars
- Independent open-source project with over 130 contributors
- Operator available to use Custom Resource Definitions (CRDs) openfaas-operator
How is this project different from others?
Configuration via Environmental variables
faas-netes can be configured with environment variables, but for a full set of options see the helm chart.
||Boolean - use http probe type for function readiness and liveness. Default:
||HTTP timeout for writing a response body from your function (in seconds). Default:
||HTTP timeout for reading the payload from the client caller (in seconds). Default:
||Image pull policy for deployed functions (
The readiness checking for functions assumes you are using our function watchdog which writes a .lock file in the default "tempdir" within a container. To see this in action you can delete the .lock file in a running Pod with
kubectl exec and the function will be re-scheduled.
By default all OpenFaaS functions and services are deployed to the
openfaas-fn namespaces. To alter the namespace use the
To configure ingress see the
helm chart. By default NodePorts are used. These are listed in the deployment guide.
Image pull policy
By default, deployed functions will use an imagePullPolicy of
Always, which ensures functions using static image tags are refreshed during an update.
If this is not desired behavior, set the
image_pull_policy environment variable to an alternative.
IfNotPresent is particularly useful when developing locally with minikube.
In this case, you can set your local environment to use minikube's docker so
faas-cli build builds directly into minikube's image store.
faas-cli push is unnecessary in this workflow - use
faas-cli build then
Note: When set to
Never, only local (or pulled) images will work. When set to
IfNotPresent, function deployments may not be updated when using static image tags.