All Projects → kyma-project → Rafter

kyma-project / Rafter

Licence: apache-2.0
Kubernetes-native S3-like files/assets store based on CRDs and powered by MinIO

Programming Languages

go
31211 projects - #10 most used programming language

Projects that are alternatives of or similar to Rafter

Less3
Less3 is an S3-compatible object storage server that runs on your laptop, servers, just about anywhere!
Stars: ✭ 16 (-88.97%)
Mutual labels:  storage, cloud-native
Openebs
Leading Open Source Container Attached Storage, built using Cloud Native Architecture, simplifies running Stateful Applications on Kubernetes.
Stars: ✭ 7,277 (+4918.62%)
Mutual labels:  cloud-native, storage
Juicefs
JuiceFS is a distributed POSIX file system built on top of Redis and S3.
Stars: ✭ 4,262 (+2839.31%)
Mutual labels:  cloud-native, storage
Cloudserver
Zenko CloudServer, an open-source Node.js implementation of the Amazon S3 protocol on the front-end and backend storage capabilities to multiple clouds, including Azure and Google.
Stars: ✭ 1,167 (+704.83%)
Mutual labels:  cloud-native, storage
Linstor Server
High Performance Software-Defined Block Storage for container, cloud and virtualisation. Fully integrated with Docker, Kubernetes, Openstack, Proxmox etc.
Stars: ✭ 374 (+157.93%)
Mutual labels:  cloud-native, storage
Rook
Storage Orchestration for Kubernetes
Stars: ✭ 9,369 (+6361.38%)
Mutual labels:  cloud-native, storage
Ghost Storage Adapter S3
An AWS S3 storage adapter for Ghost
Stars: ✭ 128 (-11.72%)
Mutual labels:  storage
Spring Backend Boilerplate
The modularized backend boilerplate based on Spring Boot Framework, easy to get started and add your business part.
Stars: ✭ 134 (-7.59%)
Mutual labels:  storage
Node Disk Manager
Kubernetes Storage Device Management
Stars: ✭ 128 (-11.72%)
Mutual labels:  storage
Phantoscope
Open Source, Cloud Native, RESTful Search Engine Powered by Neural Networks
Stars: ✭ 127 (-12.41%)
Mutual labels:  cloud-native
Vdo
Userspace tools for managing VDO volumes.
Stars: ✭ 138 (-4.83%)
Mutual labels:  storage
Coolstore Microservices
A full-stack .NET microservices build on Dapr and Tye
Stars: ✭ 1,903 (+1212.41%)
Mutual labels:  cloud-native
Noobaa Core
NooBaa is a Dynamic Data Gateway for cloud-native, hybrid and multi cloud environments ☁️🚀
Stars: ✭ 131 (-9.66%)
Mutual labels:  storage
Grandnode
Open source, headless, multi-tenant eCommerce platform built with .NET Core, MongoDB, AWS DocumentDB, Azure CosmosDB, Vue.js.
Stars: ✭ 1,768 (+1119.31%)
Mutual labels:  headless-cms
Spring Cloud Config
External configuration (server and client) for Spring Cloud
Stars: ✭ 1,740 (+1100%)
Mutual labels:  cloud-native
Kubernetes Vagrant Centos Cluster
Setting up a distributed Kubernetes cluster along with Istio service mesh locally with Vagrant and VirtualBox, only PoC or Demo use.
Stars: ✭ 1,750 (+1106.9%)
Mutual labels:  cloud-native
Vpp Agent
⚡️ Control plane management agent for FD.io's VPP
Stars: ✭ 137 (-5.52%)
Mutual labels:  cloud-native
Combinefirebase
Combine wrapper on Google's iOS Firebase library.
Stars: ✭ 126 (-13.1%)
Mutual labels:  storage
React Notion
A fast React renderer for Notion pages
Stars: ✭ 2,105 (+1351.72%)
Mutual labels:  headless-cms
Dbench
Benchmark Kubernetes persistent disk volumes with fio: Read/write IOPS, bandwidth MB/s and latency
Stars: ✭ 138 (-4.83%)
Mutual labels:  storage

Rafter

Go Report Card Slack

rafter


⚠️ Warning ⚠️

Rafter is looking for new maintainers

The project will no longer be developed within the kyma-project organization. Contact us if you are interested in becoming a new maintainer. If we fail to find new maintainers, the project will be archived. Until then, no new features will be developed and maintenance activities will be limited to the bare minimum.


Overview

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 single assets or asset packages from URLs or ConfigMaps
  • 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 Rafter 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:

NOTE: To learn how Rafter is implemented in Kyma, read Rafter documentation.

What Rafter is not

What Rafter can be used for

  • Rafter is based on CRs. Therefore, it is an extension of Kubernetes API and should be used mainly by developers building their solutions on top of Kubernetes,
  • Rafter is a file store that allows you to programmatically modify, validate the files and/or extract their metadata before they go to storage. Content of those files can be fetched using an API. This is a basic functionality of the headless CMS concept. If you want to deploy an application to Kubernetes and enrich it with additional documentation or specifications, you can do it using Rafter,
  • Rafter is an S3-like file store also for files written in HTML, CSS, and JS. It means that Rafter can be used as a hosting solution for client-side applications.

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 the 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 the support of Rafter validation and conversion webhooks. This example is based on a use case of storing AsyncAPI specifications.

NOTE: Read this development guide to start developing the project.

Installation

Prerequisites

  • Kubernetes 1.14 or higher / Minikube 1.3 or higher
  • Helm 2.16.0 or higher

Steps

  1. Add a new chart's repository to Helm. Run:

    helm repo add rafter-charts https://kyma-project.github.io/rafter

  2. Install Rafter:

    helm install --name rafter --set rafter-controller-manager.minio.service.type=NodePort rafter-charts/rafter

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].