cluster/kube: add waw-hdd-redundant-1 pool/storageclass
diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet
index e308fdd..48a8979 100644
--- a/cluster/kube/cluster.jsonnet
+++ b/cluster/kube/cluster.jsonnet
@@ -98,6 +98,16 @@
},
},
},
+ // redundant block storage
+ cephWaw1Redundant: rook.ECBlockPool(cluster.cephWaw1, "waw-hdd-redundant-1") {
+ spec: {
+ failureDomain: "host",
+ erasureCoded: {
+ dataChunks: 2,
+ codingChunks: 1,
+ },
+ },
+ },
};
diff --git a/cluster/kube/lib/rook.libsonnet b/cluster/kube/lib/rook.libsonnet
index 71b6a55..9c7b1e9 100644
--- a/cluster/kube/lib/rook.libsonnet
+++ b/cluster/kube/lib/rook.libsonnet
@@ -452,6 +452,36 @@
}
],
},
+ }
+ },
+
+ ECBlockPool(cluster, name):: {
+ local pool = self,
+ spec:: error "spec must be specified",
+
+ pool: kube._Object("ceph.rook.io/v1", "CephBlockPool", name) {
+ metadata+: cluster.metadata,
+ spec: pool.spec,
+ },
+ metapool: kube._Object("ceph.rook.io/v1", "CephBlockPool", name + "-metadata") {
+ metadata+: cluster.metadata,
+ spec: {
+ failureDomain: "host",
+ replicated: {
+ size: 3,
+ },
+ },
+ },
+
+ storageClass: kube.StorageClass(name) {
+ provisioner: "ceph.rook.io/block",
+ parameters: {
+ blockPool: pool.metapool.metadata.name,
+ dataBlockPool: pool.pool.metadata.name,
+ clusterNamespace: pool.pool.metadata.namespace,
+ fstype: "ext4",
+ },
+ reclaimPolicy: "Retain",
},
},
}