Contribute to the project¶
There are many ways to contribute to OpenFaaS and a wide variety of activities that help both the project and the community.
Before raising a PR or an Issue, it is requested that you read the project's Contributing guide. This guide applies to every OpenFaaS GitHub repository. We have a wide range of suggestions for contributing to the project and community and only some of those involve writing code.
Examples may be: writing some Go code, reviewing a PR, helping with the website or UI, volunteering to write documentation for a new feature, creating code examples, or something else completely.
Five practical ideas to get started¶
Try the workshop
Read the architecture diagrams
Submit a function to the Function Store
Write a blog post and add it to the community file
Improve the OpenFaaS CLI tooling with a PR or documentation
Get up to speed¶
If you are new with Docker, Kubernetes, or Go and would like to learn or just improve your skills, you may find the following links useful:
- Books useful for learning Golang
- Travis CI User Documentation
Communicate with the community¶
Let the project team know in the #contributors channel on Slack.
- Decide how many hours you think you may be able to contribute
- Think about where you are most comfortable starting out and what you would like to work on
- Ask for help if you don't know where to begin
Main source repositories¶
All source is organised under two repositories on GitHub: openfaas and openfaas-incubator. Some prototyping may take place under the personal accounts of The Members Team.
OpenFaaS started as a single mono-repo called
faas and has been broken out into separate repositories in the openfaas organisation.
For this reason you should always collate statistics from the
openfaas organisation, rather than the repository of a single component, which would provide invalid data. So whether counting issues, PRs, contributors, stars, or any other metric, use the whole organisation.
|certifier||End-to-end tests written in Go for verifying OpenFaaS with Swarm or Kubernetes after a release, this also runs through CI for the
|docs||Official docs repository for this site - i.e. https://docs.openfaas.com|
|faas||Main repository for project issues, suggestions, documentation and roadmap/backlog items. Also includes UI portal and API gateway|
|faas-netes||Kubernetes provider for OpenFaaS contains YAML and helm for deployment|
|faas-swarm||Docker Swarm provider for OpenFaaS contains a stack file for deployment|
|faas-cli||CLI for operating with OpenFaaS similar to
|templates||Official templates for OpenFaaS CLI used to scaffold a new function|
|nats-queue-worker||Asynchronous processing for deferred / queued work with OpenFaaS, based upon NATS Streaming|
|media||Press-kit and media for the project branding and swag|
|openfaas.github.io||Source for https://www.openfaas.com and blog|
|openfaas-cloud||OpenFaaS Cloud - portable, multi-user Serverless Functions powered by GitOps|
|workshop||Practical training and hands-on labs for learning OpenFaaS|
The openfaas-incubator organisation contains projects which are under active development.
Some people wrongly assume that the "incubator" organisation means that these projects have a special status, or that they are unsuitable for production. Projects that are unsuitable for production usage will say so in their readme file.
|of-watchdog||The OpenFaaS watchdog re-written with mode-abstractions for both STDIO & HTTP|
|faas-idler||Scale OpenFaaS functions to zero replicas after specified period of inactivity|
|openfaas-operator||The OpenFaaS CRD Operator for Kubernetes|
|kafka-connector||The Kafka connector connects OpenFaaS functions to Kafka topics|
|ofc-bootstrap||"one-click" CLI to install OpenFaaS Cloud on Kubernetes|
|connector-sdk||Build your own event connectors for OpenFaaS|
|vcenter-connector||Trigger OpenFaaS Functions from events in VMware vCenter|
|faas-federation||Federate two OpenFaaS installations into one API|
|faas-memory||An OpenFaaS Provider example using memory for state.|
Training & tutorials¶
|workshop-vscode||Run a Kubernetes workshop with VSCode in the browser|
|openfaas-linkerd2||Lightweight Serverless on Kubernetes with mTLS and traffic-splitting with Linkerd2|
|openfaas-function-auth||Examples of authentication in OpenFaaS Serverless functions.|
|node10-express-template||Node.js 10 Express template providing additional context and control over the HTTP response from your function|
|node10-express-service||Template with Node.js and Express.js exposed fully|
|node8-express-template||Node.js 8 template for OpenFaaS with HTTP via Express.js|
|golang-http-template||Golang template providing additional control over the HTTP request and response.|
|powershell-http||PowerShell HTTP template|
|ruby-http||A Ruby HTTP template for OpenFaaS|
|python-flask-template||OpenFaaS templates for Python 2.7/3.6 with Flask|
|python3-debian||Template for Python3 on Debian for data-science / compiled pip modules|
|perl-template||Perl template for OpenFaaS|