Files
faasd/vendor/github.com/openfaas/faas-provider
Alistair Hey 237a026b79 Provider returns secrets for a function
This commit allows the provider to return a list of the names of the
secrets mapped into an openfaas function. This was tested by building
and deploying faasd on multipass and curling the provider directly and
seeing the returned secrets list!

Signed-off-by: Alistair Hey <alistair@heyal.co.uk>
2021-01-21 19:23:31 +00:00
..
2020-01-21 13:43:39 +00:00
2020-01-21 13:43:39 +00:00
2020-06-08 09:43:51 +01:00
2020-12-13 11:12:51 +00:00
2020-01-21 13:43:39 +00:00
2020-12-13 11:12:51 +00:00
2020-12-13 11:12:51 +00:00
2020-12-13 11:12:51 +00:00
2020-01-21 13:43:39 +00:00
2020-01-21 13:43:39 +00:00
2020-06-08 09:43:51 +01:00
2020-01-21 13:43:39 +00:00

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.

See also: backends guide

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.

For an example see the main.go file in the faas-netes Kubernetes backend.

I.e.:

	timeout := 8 * time.Second
	bootstrapHandlers := bootTypes.FaaSHandlers{
		FunctionProxy:  handlers.MakeProxy(),
		DeleteHandler:  handlers.MakeDeleteHandler(clientset),
		DeployHandler:  handlers.MakeDeployHandler(clientset),
		FunctionReader: handlers.MakeFunctionReader(clientset),
		ReplicaReader:  handlers.MakeReplicaReader(clientset),
		ReplicaUpdater: handlers.MakeReplicaUpdater(clientset),
		InfoHandler:    handlers.MakeInfoHandler(),
		LogHandler: logs.NewLogHandlerFunc(requestor,timeout),
	}

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

	bootstrap.Serve(&bootstrapHandlers, &bootstrapConfig)

Need help?

Join #faas-provider on OpenFaaS Slack