Controllers for riff CRDs
riff System contains four API groups with CustomResourceDefinitions that are the public API for riff.
build.projectriff.io/v1alpha1Application- applications built from source using application buildpacksFunction- functions built from source using function buildpacksContainer- watch a container repository for the latest image
core.projectriff.io/v1alpha1Deployer- deployers map HTTP requests to applications, functions, containers or images with Kubernetes core resources
streaming.projectriff.io/v1alpha1Stream- streams of messagesProcessor- processors apply functions, containers or images to messages on streamsGateway- stream gatewayKafkaGateway- kafka based stream gatewayInMemoryGateway- in-memory stream gatewayPulsarGateway- pulsar based stream gateway
knative.projectriff.io/v1alpha1Adapter- 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
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.
Two ClusterRoles are defined to grant access to the riff CRDs.
riff-${component}-role- read/write access to component's CRDsriff-${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.
riff System is typically not installed directly by end users. See the Getting Started docs to learn how to install riff.
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 prepareTo run the unit tests locally:
make testTo deploy to a development cluster with ko:
ko apply -f config/or install a single component:
ko apply -f config/riff-${component}.yamlA 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:
- Contour (for ingress)
Knative Runtime:
- Contour (for ingress)
- Knative Serving
Streaming Runtime:
Releases are generated by CI and published to:
https://storage.googleapis.com/projectriff/riff-system/riff-${component}-${version}.yaml
Please refer to the Contributor Code of Conduct.