OpenFaaS Cloud: multi-user serverless functions managed with git
martindekov and alexellis Extend claims with organization field
Added function which calls the GitHub API to get all the
organization the user is in and store them in struct
OpenFaaSCloudClaims. Organizations can be taken through
method which splits the string by commas

Signed-off-by: Martin Dekov (VMware) <mdekov@vmware.com>
Latest commit 0a3d321 Oct 10, 2018
Permalink
Failed to load latest commit information.
.github Add faas version to issue template Sep 28, 2018
audit-event Add descriptions for other functions Oct 5, 2018
auth Extend claims with organization field Nov 16, 2018
buildshiprun Add support for gitlab push event Nov 14, 2018
contrib Bump watchdog/faas-cli for git-tar Sep 7, 2018
dashboard Update dashboard dist and version Nov 14, 2018
docs Add documentation fix on minio Nov 16, 2018
garbage-collect Add godoc to handlers Oct 30, 2018
git-tar Add support for GitLab private repositories Nov 14, 2018
github-event Move customer validation into github-event Nov 2, 2018
github-push Add support for gitlab push event Nov 14, 2018
github-status Update to use truncation for logs Sep 28, 2018
gitlab-event Make the customer the owner of the repo Nov 16, 2018
gitlab-push Add support for GitLab private repositories Nov 14, 2018
gitlab-status Add GitLab status report on function creation Nov 2, 2018
import-secrets Revendor outdated openfaas-cloud sdk to the newest 0.5.7 version Sep 6, 2018
list-functions Add annotations to list-functions Nov 16, 2018
of-builder Bump version of of-builder in repository Oct 29, 2018
pipeline-log Update sdk version for functions Sep 25, 2018
router Rebuild router from master Sep 26, 2018
sample-json Allow usage of shared public Docker Repository May 25, 2018
sdk Add RepoURL and OwnerID to sdk Nov 6, 2018
system-metrics Added dynamic metrics_window param to system-metrics Oct 1, 2018
yaml Implemented GitLab OAuth 2 Provider for authorisation Oct 31, 2018
.DEREK.yml Redirect Derek file to openfaas/faas file Jun 16, 2018
.gitignore Add templates missing due to .gitignore Sep 26, 2018
.travis.yml Ammend CI for pre-install Apr 20, 2018
CONTRIBUTING.md Update usage / terms May 15, 2018
CUSTOMERS Update CUSTOMERS Oct 22, 2018
LICENSE.md Update usage / terms May 15, 2018
Makefile Add Makefile to supress Travis go/get Apr 20, 2018
PRIVACY.md Add reporting process for vulnerability Sep 27, 2018
README.md Combine paragraphs Nov 13, 2018
buildshiprun_limits.yml Fix the typo in buildshiprun Sep 18, 2018
gateway_config.yml Follow up #264 (Add support for custom templates) Oct 30, 2018
github.yml Move stack.yml Docker hub account Aug 31, 2018
gitlab.yml Make the customer the owner of the repo Nov 16, 2018
slack.yml Move slack audit to use K8s namespace Jun 28, 2018
stack.yml Bump version of git-tar and buildshiprun 0.9.1 Nov 14, 2018

README.md

OpenFaaS Cloud

OpenFaaS Cloud: multi-user serverless functions managed with git

https://pbs.twimg.com/media/DacWCtZVMAAJQ-u.jpg

Announcement from Cisco's DevNet Create in Mountain View

Description

OpenFaaS Cloud introduces an automated build and management system for your Serverless functions with native integrations into your source-control management system whether that is GitHub or GitLab.

With OpenFaaS Cloud functions are managed through typing git push which reduces the tooling and learning curve required to operate functions for your team. As soon as OpenFaaS Cloud receives a push event from git it will run through a build-workflow which clones your repo, builds a Docker image, pushes it to a registry and then deploys your functions to your cluster. Each user can access and monitor their functions through their personal dashboard.

Features:

  • Portable - self-host or use the hosted Community Cluster (SaaS)
  • Multi-user - use your GitHub/GitLab identity to log into your personal dashboard
  • Automates CI/CD triggered by git push (also known as GitOps)
  • Onboard new git repos with a single click by adding the GitHub App or a repository tag in GitLab
  • Immediate feedback on your personal dashboard and through GitHub Checks or GitLab Statuses
  • Sub-domain per user or organization with HTTPS
  • Fast, non-root image builds using Docker's buildkit

The dashboard page for a user:

Dashboard

The details page for a function:

Details page

Requirements

  • OpenFaaS (0.9.10 or greater is recommended)
  • Docker Swarm or Kubernetes (other OpenFaaS providers may work in the future)

Blog post

Read my introducing OpenFaaS Cloud blog post for an overview of the idea with examples, screenshots and background on the project.

Conceptual architecture diagram

This conceptual diagram shows how OpenFaaS Cloud integrates with GitHub/GitLab through the use of an event-driven architecture.

Main flows:

  1. User pushes code - GitHub/GitLab push event is sent to github-event/gitlab-event function triggering a CI/CD workflow
  2. User removes GitHub/GitLab app from one or more repos - garbage collection is invoked removing 1-many functions
  3. User accesses function via router using "pretty URL" format and request is routed to function via API Gateway

See also: COMPONENTS.md for detailed information on each component.

Roadmap & Features

See the Roadmap & Features

Try it out

You can set up and host your own OpenFaaS Cloud or contact alex@openfaas.com for instructions on how to participate in a public trial of a fully-hosted service (a.k.a. Community Cluster). Read the privacy statement and terms and conditions for the hosted version of OpenFaaS Cloud.

Read the development guide to find out more about the functions and to start hacking on OpenFaaS Cloud.

Getting help

For help join #openfaas-cloud on the OpenFaaS Slack workspace.