Skip to content

Crossplane Composite Resource Definitions (XRDs) package for Piraeus/Linbit Datastore on Kubernetes

License

Notifications You must be signed in to change notification settings

livewyer-ops/crossplane-configuration-piraeus

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  3. 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.

  4. 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
  5. 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.

About

Crossplane Composite Resource Definitions (XRDs) package for Piraeus/Linbit Datastore on Kubernetes

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages