Official Provider access policy in effect:Official Provider versions published after March 25, 2025 requires a subscription to Upbound
Learn More
configuration-piraeus
By livewyer-ops
Languages
gokclpython
Homeconfigurationsconfiguration-piraeus
Overview
Crossplane Configuration to deploy and manage Piraeus/Linbit datastore on Kubernetes.

Crossplane Configuration for Piraeus/Linbit

This repository contains a Crossplane Composite Resource Definitions (XRDs) for managing Piraeus/Linbit Datastore on Kubernetes.

Overview

This Crossplane configuration defines Compositions and Composite Resource Definitions (XRDs) for provisioning and managing Piraeus/Linbit LinstorCluster, LinstorNodeConnection, LinstorSatelliteConfiguration and StorageClass in Kubernetes using Crossplane.

Installation

You can install the configuration package directly from the Upbound registry:

crossplane xpkg install configuration xpkg.upbound.io/livewyer-ops/configuration-piraeus:v0.0.2 configuration-piraeus

Or apply Kubernetes manifest:

apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
  name: configuration-piraeus
spec:
  package: xpkg.upbound.io/livewyer-ops/configuration-piraeus:v0.0.2

Usage

  1. Install Crossplane on your Kubernetes cluster.
  2. Optional: Use builtin installation.piraeus.livewyer.io XRD to install Piraeus Operator or use your own custom installation method.
  • Set up provider credentials using providerconfig.yaml for Helm provider.
    kubectl apply -f examples/providerconfig.yaml
    kubectl apply -f examples/install.yaml
  1. Optional: Install Snapshot Controller if you wish to take snapshots of Piraeus volumes. You can use your own custom installation method or use the example provided in examples/install.yaml

NOTE: From Kubernetes v1.20 volume snapshot feature is included in the Kubernetes release.

  1. Setup RBAC: Add additional ClusterRole and ClusterRoleBinding required to manage Piraeus piraeus.io resources.

NOTE: Default Crossplane Service Account doesn't come with RBAC permissions to manage Piraeus resources.

kubectl apply -f examples/rbac.yaml
  1. Setup Piraeus Cluster using cluster.piraeus.livewyer.io XRD:
kubectl apply -f examples/cluster.yaml

Examples

  • The examples/ folder contains sample configuration files for setting up Piraeus resources.
  • Ensure rbac.yaml is configured for managing Kubernetes storage classes and Piraeus resources.

Caveats

  • cluster.piraeus.livewyer.io resource currently cannot detect readiness of its sub-resources, due to the sub-resources (StorageClasses, VolumeSnapshotClasses and LinstorClusters/LinstorNodeConnections/LinstorSatelliteConfigurations) do not have status condition type: Ready, status: True fields.

License

This project is licensed under the MIT License.

Discover the building blocks for your internal cloud platform.
© 2025 Upbound, Inc.
Solutions
Learn
Company
More