system

module
v0.5.0 Latest Latest
Warning

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

Go to latest
Published: Feb 7, 2020 License: Apache-2.0

README

CI codecov Go Report Card GoDoc

riff System

Controllers for riff CRDs

CRDs

riff System contains four API groups with CustomResourceDefinitions that are the public API for riff.

  • build.projectriff.io/v1alpha1
    • Application - applications built from source using application buildpacks
    • Function - functions built from source using function buildpacks
    • Container - watch a container repository for the latest image
  • core.projectriff.io/v1alpha1
    • Deployer - deployers map HTTP requests to applications, functions, containers or images with Kubernetes core resources
  • streaming.projectriff.io/v1alpha1
    • Stream - streams of messages
    • Processor - processors apply functions, containers or images to messages on streams
    • Gateway - stream gateway
    • KafkaGateway - kafka based stream gateway
    • InMemoryGateway - in-memory stream gateway
    • PulsarGateway - pulsar based stream gateway
  • knative.projectriff.io/v1alpha1
    • Adapter - adapters map applications, functions or container images into an existing Knative Service or Configuration.
    • Deployer - deployers map HTTP requests to applications, functions, containers or images with Knative
Runtimes

Each runtime has an independent manager deployment that reconciles and hosts validation and defaulting webhooks for the CRDs needed by that runtime.

The build component is required by each runtime.

RBAC

Two ClusterRoles are defined to grant access to the riff CRDs.

  • riff-${component}-role - read/write access to component's CRDs
  • riff-${component}-readonly-role - read access to component's CRDs

These roles are aggregated to the edit and view ClusterRoles respectively.

See the Kuberneties Using RBAC Authorization for more information.

Install

riff System is typically not installed directly by end users. See the Getting Started docs to learn how to install riff.

Development

riff System builds on KubeBuilder which makes extensive use of generated code and configuration. After making any changes to source files in ./pkg/apis or ./pkg/controllers it is necessary to regenerate the API client and configuration by running:

make prepare

To run the unit tests locally:

make test

To deploy to a development cluster with ko:

ko apply -f config/

or install a single component:

ko apply -f config/riff-${component}.yaml
Dependencies

A common practice is to start with a standard riff install and then incrementally update riff System from source.

Make sure to install cert-manager first.

Build:

Core Runtime:

Knative Runtime:

Streaming Runtime:

Releases

Releases are generated by CI and published to:

https://storage.googleapis.com/projectriff/riff-system/riff-${component}-${version}.yaml

Code of Conduct

Please refer to the Contributor Code of Conduct.

Directories

Path Synopsis
cmd
pkg
apis/build/v1alpha1
+groupName=build.projectriff.io Package v1alpha1 contains API Schema definitions for the build v1alpha1 API group +kubebuilder:object:generate=true
+groupName=build.projectriff.io Package v1alpha1 contains API Schema definitions for the build v1alpha1 API group +kubebuilder:object:generate=true
apis/core/v1alpha1
+groupName=core.projectriff.io Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group +kubebuilder:object:generate=true
+groupName=core.projectriff.io Package v1alpha1 contains API Schema definitions for the core v1alpha1 API group +kubebuilder:object:generate=true
apis/knative/v1alpha1
+groupName=knative.projectriff.io Package v1alpha1 contains API Schema definitions for the knative v1alpha1 API group +kubebuilder:object:generate=true
+groupName=knative.projectriff.io Package v1alpha1 contains API Schema definitions for the knative v1alpha1 API group +kubebuilder:object:generate=true
apis/streaming/v1alpha1
+groupName=streaming.projectriff.io Copyright 2020 the original author or authors.
+groupName=streaming.projectriff.io Copyright 2020 the original author or authors.
apis/thirdparty/keda/v1alpha1
+kubebuilder:object:generate=true +groupName=keda.k8s.io
+kubebuilder:object:generate=true +groupName=keda.k8s.io
apis/thirdparty/knative/serving/v1
+kubebuilder:object:generate=true +groupName=serving.knative.dev
+kubebuilder:object:generate=true +groupName=serving.knative.dev
apis/thirdparty/kpack/build/v1alpha1
+kubebuilder:object:generate=true +groupName=build.pivotal.io
+kubebuilder:object:generate=true +groupName=build.pivotal.io
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/build/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/build/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/core/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/core/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/knative/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/knative/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset/versioned/typed/streaming/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/streaming/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
controllers/testing
Package testing provides support for testing reconcilers.
Package testing provides support for testing reconcilers.

Jump to

Keyboard shortcuts

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