This repository contains a Crossplane Composite Resource Definitions (XRDs) for managing Piraeus/Linbit Datastore on Kubernetes.
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.
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
-
Install Crossplane on your Kubernetes cluster.
-
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
- Set up provider credentials using
-
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.yamlNOTE: From Kubernetes v1.20 volume snapshot feature is included in the Kubernetes release.
-
Setup RBAC: Add additional
ClusterRole
andClusterRoleBinding
required to manage Piraeuspiraeus.io
resources.NOTE: Default Crossplane Service Account doesn't come with RBAC permissions to manage Piraeus resources.
kubectl apply -f examples/rbac.yaml
-
Setup Piraeus Cluster using
cluster.piraeus.livewyer.io
XRD:kubectl apply -f examples/cluster.yaml
- 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.
cluster.piraeus.livewyer.io
resource currently cannot detect readiness of its sub-resources, due to the sub-resources (StorageClasses
,VolumeSnapshotClasses
andLinstorClusters
/LinstorNodeConnections
/LinstorSatelliteConfigurations
) do not have status conditiontype: Ready
,status: True
fields.
This project is licensed under the MIT License.