riff

command module
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Mar 21, 2018 License: Apache-2.0 Imports: 6 Imported by: 0

README

= riff is for functions image:https://travis-ci.org/projectriff/riff.svg?branch=master["Build Status", link="https://travis-ci.org/projectriff/riff"]

image::logo.png[riff logo, link=https://projectriff.io/]
A FaaS for Kubernetes

== Installation of the latest release

See link:Getting-Started.adoc[Getting Started] for how to install riff with a Helm Chart,
and how to install the riff CLI.

== Developer installation

See link:Development-Helm-install.adoc[Installing the riff development version using Helm] to install the latest unreleased builds (git master branch) of riff.

== [[manual]] Manual build

This is the best option if you want to modify the riff components.

=== Prerequisites

You need:

* A working Go environment
* A local 1.7+ Kubernetes cluster
* A docker daemon

To build images with docker in minikube use

[source, bash]
----
eval $(minikube docker-env)
----

=== Get the main riff repo and install the CLI

[source, bash]
----
go get github.com/projectriff/riff
----

=== Build the riff core components

[source, bash]
----
cd $(go env GOPATH)/src/github.com/projectriff/riff
make dockerize
----

=== Deploy Kafka

Create the `riff-system` namespace:

[source, bash]
----
kubectl create namespace riff-system
----

Install the kafka/zookeeper deployments and services:

[source, bash]
----
kubectl apply -n riff-system -f config/kafka
----

=== Deploy the riff Custom Resource Definitions and deploy the riff core components

This creates the the _topic_ and _function_ link:kubernetes-crds[CRDS], then deploys the HTTP Gateway, Topic Controller, and Function Controller:

[source, bash]
----
make kubectl-apply
----

If your cluster has RBAC enabled, then you also need to create a Role and a RoleBinding:

[source, bash]
----
kubectl apply -f config/rbac
----

=== To tear it all down

Once you're done playing with riff (see samples below), you can destroy everything created above by running:

[source, bash]
----
./teardown
----

== [[samples]]Try Some Samples

With riff running try some of the link:samples/README.adoc[samples].

== Running the tests

To run all riff's unit and integration tests, ensure Kafka (with `auto.create.topics.enable=true`, which
is the default) and Zookeeper are running locally, then issue:

[source, bash]
----
KAFKA_BROKERS=localhost:9092 KAFKA_BROKER=localhost:9092 make test
----


== Contributing to riff

Please refer to the link:CONTRIBUTING.adoc[Contributors' Guide].

== Maintaining riff

Please refer to the link:MAINTAINING.adoc[Maintainers' Guide].

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
function-controller
cmd command
mocks
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
function-sidecar
cmd command
pkg/dispatcher/grpc/function
Package function is a generated protocol buffer package.
Package function is a generated protocol buffer package.
pkg/dispatcher/mockdispatcher
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
http-gateway
cmd command
kubernetes-crds
pkg/apis/projectriff.io/v1
Package v1 contains the v1 version of API types corresponding to riff Custom Resource Definitions.
Package v1 contains the v1 version of API types corresponding to riff Custom Resource Definitions.
pkg/client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
pkg/client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
pkg/client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
pkg/client/clientset/versioned/typed/projectriff/v1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
pkg/client/clientset/versioned/typed/projectriff/v1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
message-transport
pkg/message
Package message defines an abstract message type with a simple concrete implementation.
Package message defines an abstract message type with a simple concrete implementation.
pkg/transport
Package transport provides interfaces for sending and receiving messages.
Package transport provides interfaces for sending and receiving messages.
pkg/transport/kafka
Package kafka provides an implementation of the transport interface for Apache Kafka.
Package kafka provides an implementation of the transport interface for Apache Kafka.
pkg/transport/mocktransport
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
riff-cli
cmd
pkg/docker
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
pkg/functions
* Copyright 2018 the original author or authors.
* Copyright 2018 the original author or authors.
pkg/kubectl
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
pkg/options
* Copyright 2018 the original author or authors.
* Copyright 2018 the original author or authors.
samples
go/rot13 command
topic-controller
cmd command
pkg/topic/provisioner
Package provisioner provides utilities to allow creation of destinations in middlewares, such as queues and topics.
Package provisioner provides utilities to allow creation of destinations in middlewares, such as queues and topics.

Jump to

Keyboard shortcuts

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