From c7258f4644f1194a7392093381eda0fb6dce668a Mon Sep 17 00:00:00 2001 From: Sergiusz Bazanski Date: Fri, 21 Jun 2019 00:24:09 +0200 Subject: [PATCH] cluster/kube: refactor, add crdb-waw1 --- cluster/kube/cluster.jsonnet | 163 +++++++++++++++++++---------------- 1 file changed, 91 insertions(+), 72 deletions(-) diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet index ee21b045..1b988b9e 100644 --- a/cluster/kube/cluster.jsonnet +++ b/cluster/kube/cluster.jsonnet @@ -1,13 +1,15 @@ # Top level cluster configuration. local kube = import "../../kube/kube.libsonnet"; -local coredns = import "lib/coredns.libsonnet"; -local metrics = import "lib/metrics.libsonnet"; + local calico = import "lib/calico.libsonnet"; +local certmanager = import "lib/cert-manager.libsonnet"; +local cockroachdb = import "lib/cockroachdb.libsonnet"; +local coredns = import "lib/coredns.libsonnet"; local metallb = import "lib/metallb.libsonnet"; +local metrics = import "lib/metrics.libsonnet"; local nginx = import "lib/nginx.libsonnet"; local rook = import "lib/rook.libsonnet"; -local certmanager = import "lib/cert-manager.libsonnet"; local Cluster(fqdn) = { local cluster = self, @@ -86,77 +88,94 @@ local Cluster(fqdn) = { }, }, }, - // waw1 ceph cluster - cephWaw1: rook.Cluster(cluster.rook, "ceph-waw1") { - spec: { - mon: { - count: 3, - allowMultiplePerNode: false, - }, - storage: { - useAllNodes: false, - useAllDevices: false, - config: { - databaseSizeMB: "1024", - journalSizeMB: "1024", - }, - nodes: [ - { - name: "bc01n01.hswaw.net", - location: "rack=dcr01 chassis=bc01 host=bc01n01", - devices: [ { name: "sda" } ], - }, - { - name: "bc01n02.hswaw.net", - location: "rack=dcr01 chassis=bc01 host=bc01n02", - devices: [ { name: "sda" } ], - }, - { - name: "bc01n03.hswaw.net", - location: "rack=dcr01 chassis=bc01 host=bc01n03", - devices: [ { name: "sda" } ], - }, - ], - }, - }, - }, - // redundant block storage - cephWaw1Redundant: rook.ECBlockPool(cluster.cephWaw1, "waw-hdd-redundant-1") { - spec: { - failureDomain: "host", - erasureCoded: { - dataChunks: 2, - codingChunks: 1, - }, - }, - }, - // yolo block storage (no replicas!) - cephWaw1Yolo: rook.ReplicatedBlockPool(cluster.cephWaw1, "waw-hdd-yolo-1") { - spec: { - failureDomain: "host", - replicated: { - size: 1, - }, - }, - }, - cephWaw1Object: rook.S3ObjectStore(cluster.cephWaw1, "waw-hdd-redundant-1-object") { - spec: { - metadataPool: { - failureDomain: "host", - replicated: { size: 3 }, - }, - dataPool: { - failureDomain: "host", - erasureCoded: { - dataChunks: 2, - codingChunks: 1, - }, - }, - }, - }, }; { - k0: Cluster("k0.hswaw.net"), + k0: { + local k0 = self, + cluster: Cluster("k0.hswaw.net"), + cockroach: { + waw1: cockroachdb.Cluster("crdb-waw1") { + cfg+: { + topology: [ + { name: "bc01n01", node: "bc01n01.hswaw.net", ip: "185.236.240.35" }, + { name: "bc01n02", node: "bc01n02.hswaw.net", ip: "185.236.240.36" }, + { name: "bc01n03", node: "bc01n03.hswaw.net", ip: "185.236.240.37" }, + ], + hostPath: "/var/db/crdb-waw1", + }, + }, + }, + ceph: { + // waw1 cluster + waw1: rook.Cluster(k0.cluster.rook, "ceph-waw1") { + spec: { + mon: { + count: 3, + allowMultiplePerNode: false, + }, + storage: { + useAllNodes: false, + useAllDevices: false, + config: { + databaseSizeMB: "1024", + journalSizeMB: "1024", + }, + nodes: [ + { + name: "bc01n01.hswaw.net", + location: "rack=dcr01 chassis=bc01 host=bc01n01", + devices: [ { name: "sda" } ], + }, + { + name: "bc01n02.hswaw.net", + location: "rack=dcr01 chassis=bc01 host=bc01n02", + devices: [ { name: "sda" } ], + }, + { + name: "bc01n03.hswaw.net", + location: "rack=dcr01 chassis=bc01 host=bc01n03", + devices: [ { name: "sda" } ], + }, + ], + }, + }, + }, + // redundant block storage + blockRedundant: rook.ECBlockPool(k0.ceph.waw1, "waw-hdd-redundant-1") { + spec: { + failureDomain: "host", + erasureCoded: { + dataChunks: 2, + codingChunks: 1, + }, + }, + }, + // yolo block storage (no replicas!) + blockYolo: rook.ReplicatedBlockPool(k0.ceph.waw1, "waw-hdd-yolo-1") { + spec: { + failureDomain: "host", + replicated: { + size: 1, + }, + }, + }, + objectRedundant: rook.S3ObjectStore(k0.ceph.waw1, "waw-hdd-redundant-1-object") { + spec: { + metadataPool: { + failureDomain: "host", + replicated: { size: 3 }, + }, + dataPool: { + failureDomain: "host", + erasureCoded: { + dataChunks: 2, + codingChunks: 1, + }, + }, + }, + }, + }, + }, }