Categorygithub.com/openfaas/faas-provider
modulepackage
0.25.6
Repository: https://github.com/openfaas/faas-provider.git
Documentation: pkg.go.dev

# README

faas-provider

This faas-provider can be used to write your own back-end for OpenFaaS. The Golang SDK can be vendored into your project so that you can provide a provider which is compliant and compatible with the OpenFaaS gateway.

Conceptual diagram

The faas-provider provides CRUD for functions and an invoke capability. If you complete the required endpoints then you will be able to use your container orchestrator or back-end system with the existing OpenFaaS ecosystem and tooling.

Read more: The power of interfaces in OpenFaaS

Recommendations

The following is used in OpenFaaS and recommended for those seeking to build their own back-ends:

  • License: MIT
  • Language: Golang

How to use this project

All the required HTTP routes are configured automatically including a HTTP server on port 8080. Your task is to implement the supplied HTTP handler functions.

Examples:

OpenFaaS for Kubernetes

See the main.go file in the faas-netes Kubernetes backend.

OpenFaaS for containerd (faasd)

See provider.go for the faasd backend

I.e.:

	timeout := 8 * time.Second
	bootstrapHandlers := bootTypes.FaaSHandlers{
		ListNamespaces: handlers.MakeNamespaceLister(),
		FunctionProxy:  handlers.MakeProxyHandler(),
		FunctionLister: handlers.MakeFunctionLister(),
		DeployFunction: handlers.MakeDeployFunctionHandler(),
		DeleteFunction: handlers.MakeDeleteFunctionHandler(),
		UpdateFunction: handlers.MakeUpdateFunctionHandler(),
		FunctionStatus: handlers.MakeFunctionStatusHandler(),
		ScaleFunction: 	handlers.MakeScaleFunctionHandler(),
		Secrets: 	  	handlers.MakeSecretHandler(),
		Logs: 			handlers.MakeLogsHandler(),
		Info: 			handlers.MakeInfoHandler(),
		Health: 		handlers.MakeHealthHandler(),
	}

	var port int
	port = 8080
	bootstrapConfig := bootTypes.FaaSConfig{
		ReadTimeout:  timeout,
		WriteTimeout: timeout,
		TCPPort:      &port,
	}

	bootstrap.Serve(&bootstrapHandlers, &bootstrapConfig)

# Packages

No description provided by the author
No description provided by the author
Package logs provides the standard interface and handler for OpenFaaS providers to expose function logs.
Package proxy provides a default function invocation proxy method for OpenFaaS providers.
No description provided by the author

# Functions

Router gives access to the underlying router for when new routes need to be added.
Serve load your handlers into the correct OpenFaaS route spec.

# Constants

NameExpression for a function / service.