OpenKeel: the sovereign French Cloud solution of the inherent group, with a European reach Discover inherent

Components · Storage

Swift and S3

Object storage: Rook-Ceph and its RGW gateway for the S3 and Swift APIs.

Specified Rook-Ceph RGW

The module

Object storage: Rook-Ceph and its RGW gateway for the S3 and Swift APIs.

No such module in the workspace: openkeel-swift

How compatibility is tested

OpenKeel has no Swift service of its own: Rook-Ceph RGW serves the Swift and S3 APIs with Keystone authentication, exercised with standard clients and Skyline on a lab.

End to end on a lab

Swift API with the openstack CLI

Containers and objects are created and listed through the Swift API of RGW, authenticated by Keystone.

How it runs

okadm install --mode lab --create-kind --ingress --ceph-s3, then openstack container create, object create, object list.

Latest result Run in lab mode on a new kind cluster.

Source: openkeel-okadm/README.md

End to end on a lab

S3 with Keystone EC2 credentials

The S3 API accepts Keystone EC2 credentials, and buckets share one namespace with Swift containers.

How it runs

openstack ec2 credentials create, then aws s3 mb, PUT and GET.

Latest result Run in lab mode on a new kind cluster.

Source: openkeel-okadm/README.md

End to end on a lab

Skyline Object Storage page

Skyline's console lists RGW containers, uploads a file and creates a container through the Swift API.

How it runs

In a browser on the lab; the file was given to the upload form by script.

Latest result Run in lab mode; production settings covered by unit tests only, never on a real cluster.

Source: openkeel-okadm/README.md

Left out of the rewrite

OpenKeel has no Swift service: Rook-Ceph RGW, enabled with okadm --ceph-s3, serves both the Swift and S3 APIs with Keystone authentication.

Done by the Cloud Native platform

Swift proxy, rings and storage daemons

Taken over by Rook-Ceph RGW

Why it was left out

Ceph already provides replicated object storage operated by Rook on Kubernetes; RGW speaks the Swift API.

Why the solution is not affected

RGW is the catalog's object-store at /swift/v1/AUTH_<project id>; Skyline's object storage page and the ok container and object commands were tested against it.

Source: openkeel-okadm/README.md

Done by the Cloud Native platform

Separate S3 layer (s3api, ec2-api-s3)

Taken over by Rook-Ceph RGW

Why it was left out

RGW serves S3 natively, authenticated through Keystone EC2 credentials.

Why the solution is not affected

Containers and buckets are one namespace per project: a container made in Skyline is listed by aws s3 ls. Object storage is optional and absent without --ceph-s3.

Source: openkeel-okadm/README.md

Only what was left out by design is listed here; the work not done yet is in the Known gaps of the module's docs/CONFORMANCE.md. Every module

Swift and S3 interactions

Service view generated by the diagram skill from the OpenKeel model.

Diagram openkeel-swift.svg Full screen
The 3 interactions of the model
FromToProtocolWhat
Swift proxySwift storageREST APIinternal account/container/object requests (ring lookup)
Swift storageCSI driver (Longhorn)Kubernetes APIone PVC per device (block StorageClass)
CSI driver (Longhorn)Swift storageData pathXFS devices, 1 Longhorn replica

Specifications