Skip to content

[Feature] Add Rook/Ceph as a selectable CSI storage backend with erasure coding and expose per-tenant OpenCost data via the Cozystack API #84

Description

@suse-coder

What is this about

Two proposed feature additions to Cozystack: adding Rook/Ceph as a selectable storage backend alongside LINSTOR/blockstor (including erasure coding), and adding built-in per-tenant OpenCost visibility for the on-prem open source variant.

Context

I put together a feature proposal covering two related-but-distinct asks:

Storage backend choice (Rook/Ceph) — Cozystack currently only ships LINSTOR/blockstor as the CSI storage backend. Many operators already run or want to standardize on Rook/Ceph (existing clusters, RBD/CephFS/RGW features, multi-tenant pools). There's no supported way to select it without going off-script. The idea would be a spec.storageProvider-style toggle or a dedicated rook-ceph addon package, with Cozystack managing the Rook operator + Ceph cluster lifecycle and registering the CSI driver as a StorageClass, without affecting existing LINSTOR/blockstor deployments.

Erasure coding (EC) should also be supported, not just replication. Operators should be able to configure EC pools (e.g. via spec.storageProvider / CephCluster CR or equivalent) so StorageClasses can use erasure-coded RBD/CephFS volumes as a first-class option, rather than requiring post-install manual Ceph tweaks.

Per-tenant OpenCost visibility — the on-prem open source variant has no built-in cost/usage breakdown per tenant. Proposal is to deploy OpenCost as an optional/built-in component, aggregate per-tenant cost data (compute/storage/network) scoped to tenant namespaces/objects, and expose it via the Cozystack API (e.g. a status field/subresource on the Tenant resource) so it's consumable by the dashboard/API clients.

Full write-up with scope check and alternatives considered is drafted, but since both items likely span multiple components/APIs, I wanted to raise them here first before deciding whether they need to go through the design-proposal process or be filed as separate issues in cozystack/cozystack.

What would help

Maintainer feedback on whether these should be split into two separate issues, escalated to full design proposals, or scoped down for a smaller initial issue.

Guidance on which repo/process is appropriate for each (storage provider toggle vs. cost-reporting API) before I file the corresponding issues in cozystack/cozystack.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions