Skip to content
Kubernetes-native files/assets store based on CRDs and powered by MinIO - soon first release
Go Shell Smarty Other
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
charts Update casing in values.yaml in charts and fix gateway jobs on master ( Dec 3, 2019
config Update samples (#32) Dec 3, 2019
deploy Fix source label in docker containers (#31) Nov 27, 2019
internal Fix bucketRef type for CommonAssetGroupSpec (#21) Nov 15, 2019
.gitignore Integration tests pipeline (#20) Nov 22, 2019
LICENSE Consolidate Asset Store and CMS as Rafter (#1) Oct 17, 2019
rafter.png Add new version of logo (#30) Nov 26, 2019


Go Report Card Slack



Rafter is a solution for storing and managing different types of files called assets. It uses MinIO as object storage. The whole concept of Rafter relies on Kubernetes custom resources (CRs) managed by the Rafter Controller Manager. These CRs include:

  • Asset CR which manages a single asset or a package of assets
  • Bucket CR which manages buckets
  • AssetGroup CR which manages a group of Asset CRs of a specific type to make it easier to use and extract webhook information

Rafter enables you to manage assets using supported webhooks. For example, if you use Rafter to store a file such as a specification, you can additionally define a webhook service that Rafer should call before the file is sent to storage. The webhook service can:

  • validate the file
  • mutate the file
  • extract some of the file information and put it in the status of the custom resource

Rafter comes with the following set of services and extensions compatible with Rafter webhooks:

To see the implementation of Rafter in Kyma, follow these links:

Quick start

Try out this set of interactive tutorials to see Rafter in action on Minikube. These tutorials show how to:

  • Quickly install Rafter with our Helm Chart
  • Host a simple static site
  • Use Rafter as headless CMS with support of Rafter metadata webhook and Front Matter service . This example is based on a use case of storing Markdown files
  • Use Rafter as headless CMS with support of Rafter validation and conversion webhooks. This example is based on a use case of storing AsyncAPI specification

Project structure

The repository has the following structure:

├── .github                     # Pull request and issue templates
├── cmd                         # Rafter's applications
├── config                      # Configuration file templates
├── deploy                      # Dockerfiles for Rafter's applications
├── hack                        # Information, scripts, and files useful for development
├── internal                    # Private application and library code
├── pkg                         # Library code to be used by external applications
└── tests                       # Integration tests
You can’t perform that action at this time.