bootstrap

package module
v0.23.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 6, 2023 License: MIT Imports: 12 Imported by: 34

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.

For an example see the main.go file in the faas-netes Kubernetes 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)

Documentation

Index

Constants

View Source
const NameExpression = "-a-zA-Z_0-9."

NameExpression for a function / service

Variables

This section is empty.

Functions

func Router

func Router() *mux.Router

Router gives access to the underlying router for when new routes need to be added.

func Serve

func Serve(handlers *types.FaaSHandlers, config *types.FaaSConfig)

Serve load your handlers into the correct OpenFaaS route spec. This function is blocking.

Types

This section is empty.

Directories

Path Synopsis
Package logs provides the standard interface and handler for OpenFaaS providers to expose function logs.
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.
Package proxy provides a default function invocation proxy method for OpenFaaS providers.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL