Go Shell C# Java JavaScript Python Other
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.circleci Fix GKE cluster name with circleci tag May 22, 2018
.github add issue template Dec 27, 2017
chart pv for kafka (#735) May 8, 2018
cmd Add shorthand flags (#767) May 21, 2018
docker .NET Core runtime major fixes (#697) May 18, 2018
docs .NET Core runtime major fixes (#697) May 18, 2018
examples Set test link to master branch May 21, 2018
hack Changed Function struct with v1beta2/Deploy and apply deployment conf… Jan 30, 2018
manifests add NATS support (#689) Apr 17, 2018
pkg .NET Core runtime major fixes (#697) May 18, 2018
script [CI] Build only images when needed (#755) May 15, 2018
tests .NET Core runtime major fixes (#697) May 18, 2018
vendor bump up kubernetes code generator version (#753) May 15, 2018
.gitignore add NATS support (#689) Apr 17, 2018
CODE_OF_CONDUCT.md code of conduct Sep 8, 2017
CONTRIBUTING.md Split Kafka tests in a different Travis build (#511) Dec 21, 2017
LICENSE update LICENSE Aug 29, 2017
Makefile CircleCI integration (#743) May 11, 2018
OWNERS owners files (#350) Oct 9, 2017
README.md Remove travis file (#768) May 21, 2018
glide.lock bump up kubernetes code generator version (#753) May 15, 2018
glide.yaml bump up kubernetes code generator version (#753) May 15, 2018
kafka-zookeeper-openshift.jsonnet Generate kafka-zookeeper-openshift.yaml (#683) Apr 10, 2018
kafka-zookeeper.jsonnet move kafka crd, rbac from kubeless.jsonnet and kubeless-rbac.jsonnet … Apr 4, 2018
kubeless-non-rbac.jsonnet .NET Core runtime major fixes (#697) May 18, 2018
kubeless-openshift.jsonnet Fix Openshift permission issues (#721) Apr 30, 2018
kubeless.jsonnet Rename kubeless.yaml to kubeless-non-rbac.yaml (#680) Apr 10, 2018
nats.jsonnet add NATS support (#689) Apr 17, 2018

README.md

Kubeless logo

CircleCI Slack

kubeless is a Kubernetes-native serverless framework that lets you deploy small bits of code without having to worry about the underlying infrastructure plumbing. It leverages Kubernetes resources to provide auto-scaling, API routing, monitoring, troubleshooting and more.

Kubeless stands out as we use a Custom Resource Definition to be able to create functions as custom kubernetes resources. We then run an in-cluster controller that watches these custom resources and launches runtimes on-demand. The controller dynamically injects the functions code into the runtimes and make them available over HTTP or via a PubSub mechanism.

Kubeless is purely open-source and non-affiliated to any commercial organization. Chime in at anytime, we would love the help and feedback !

Screencasts

Click on the picture below to see a screencast demonstrating event based function triggers with kubeless.

screencast

Click on this next picture to see a screencast demonstrating our serverless plugin:

serverless

Tools

Quick start

Check out the instructions for quickly set up Kubeless here.

Building

Consult the developer's guide for a complete set of instruction to build kubeless.

Comparison

There are other solutions, like fission and funktion. There is also an incubating project at the ASF: OpenWhisk. We believe however, that Kubeless is the most Kubernetes native of all.

Kubeless uses k8s primitives, there is no additional API server or API router/gateway. Kubernetes users will quickly understand how it works and be able to leverage their existing logging and monitoring setup as well as their troubleshooting skills.

Compatibility Matrix with Kubernetes

Kubeless fully supports two major versions of Kubernetes (1.8 and 1.9) at the moment. For other versions some of the features in Kubeless may not be available. Our CI run tests against two different platforms: GKE (1.8) and Minikube (1.9). Other platforms are supported but fully compatibiliy cannot be assured. This is the summary of the features and versions supported:

Platform Kubernetes Version HTTP functions Scheduled functions PubSub (Kafka) functions PubSub (NATS) functions Autoscaling (CPU)
GKE 1.7.X X X
GKE (CI) 1.8.X
GKE 1.9.X
Minikube 1.7.X X
Minikube 1.8.X
Minikube (CI) 1.9.X

Roadmap

We would love to get your help, feel free to lend a hand. We are currently looking to implement the following high level features:

  • Add other runtimes, currently Python, NodeJS, Ruby and PHP are supported. We are also providing a way to use custom runtime. Please check this doc for more details.
  • Investigate other messaging bus (e.g SQS, rabbitMQ)
  • Use a standard interface for events
  • Optimize for functions startup time
  • Add distributed tracing (maybe using istio)

Community

Issues: If you find any issues, please file it.

Meetings: Thursday at 10:30 UTC (Weekly). Convert to your timezone

Meeting notes and agenda can be found here. Meeting records can be found here

Slack: We're fairly active on slack and you can find us in the #kubeless channel.