Introducing Koor Operator

Introducing Koor Operator

We are happy to introduce the Koor Operator, a method to manage and install the Koor Storage Distro. Using the Koor Operator will make maintaining and installing your KSD installation easier. This will help you install a full-fledged Koor Storage Distro (with all Rook-Ceph artifacts) in just 2 lines of helm install.

Installing using Helm

To get started, you can install the Koor Operator using helm, using the following command:

1
2
helm repo add koor-operator https://koor-tech.github.io/koor-operator
helm install --create-namespace --namespace koor-operator my-release koor-operator/koor-operator -f values.yaml

The cluster should be ready in a few minutes. You can check the status using this kubectl command:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
$ kubectl get --namespace koor-operator pods
NAME                                                     READY   STATUS      RESTARTS   AGE
csi-cephfsplugin-86b5g                                   2/2     Running     0          16m
csi-cephfsplugin-927rd                                   2/2     Running     0          16m
csi-cephfsplugin-provisioner-df5577568-7xng6             5/5     Running     0          16m
csi-cephfsplugin-provisioner-df5577568-gzmjv             5/5     Running     0          16m
csi-cephfsplugin-st679                                   2/2     Running     0          16m
csi-rbdplugin-5g529                                      2/2     Running     0          16m
csi-rbdplugin-gwqwg                                      2/2     Running     0          16m
csi-rbdplugin-ljskq                                      2/2     Running     0          16m
csi-rbdplugin-provisioner-65cfc5bdf9-dcg4w               5/5     Running     0          16m
csi-rbdplugin-provisioner-65cfc5bdf9-wt8fq               5/5     Running     0          16m
koor-operator-cert-manager-755849665f-dvncg              1/1     Running     0          24m
koor-operator-cert-manager-cainjector-576f685f87-9qv87   1/1     Running     0          24m
koor-operator-cert-manager-webhook-86cbd54d59-72hnm      1/1     Running     0          24m
koor-operator-controller-manager-7d68cb8b6c-qxs4h        2/2     Running     0          24m
koor-operator-koorcluster-job-bmvzp                      0/1     Completed   5          24m
rook-ceph-mon-a-canary-6b784678f7-fbr4h                  2/2     Running     0          45s
rook-ceph-mon-b-canary-6fb58fc9dd-4wvqq                  2/2     Running     0          45s
rook-ceph-mon-c-canary-5cc8b55d55-z7tdv                  2/2     Running     0          45s
rook-ceph-operator-8f76cf848-2j2nv                       1/1     Running     0          21m
rook-ceph-tools-7585487b84-6br42                         1/1     Running     0          21m

The Koor Operator uses sane defaults that help you bootstrap your KSD cluster quickly. It is also configurable:

1
2
3
4
5
6
koorCluster:
  spec:
    useAllDevices: true # Use all devices on all nodes. Default is true.
    monitoringEnabled: true # Enable monitoring. Requires Prometheus to be pre-installed.Default is true.
    dashboardEnabled: true # Enable the ceph dashboard for viewing cluster status. Default is true.
    toolboxEnabled: true # Installs a debugging toolbox deployment. Default is true

How it works

The operator currently installs KSD using helm on your local cluster. Installing the operator is equivalent to the following commands:

1
2
3
4
helm repo add koor-release https://charts.koor.tech/release
helm install --create-namespace --namespace <namespace> <namespace>-rook-ceph koor-release/rook-ceph -f utils/operatorValues.yaml
helm install --create-namespace --namespace <namespace> <namespace>-rook-ceph-cluster \
    --set operatorNamespace=<namespace> koor-release/rook-ceph-cluster -f utils/clusterValues.yaml

In addition to installing the helm charts, the operator checks if the current cluster meets the minimum recommended resources to run KSD. Based on our experience, the minimum recommended resources are:

  • number of nodes: 4
  • storage: 500GB
  • CPU: 19 cores
  • memory: 44GB

If your cluster meets the minimum resources, you will see that in the koorcluster status:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
$ kubectl describe --namespace koor-operator koorclusters
Name:         koor-operator-koorcluster
Namespace:    koor-operator
...
Status:
  Meets Minimum Resources:  true
  Total Resources:
    Cpu:          20
    Memory:       47185920Ki
    Nodes Count:  4
    Storage:      1073741824Ki
...

What’s next?

We continue to work on making the KSD easier to use and maintain. We are exploring allowing the operator to install the latest version of KSD automatically. You can track the progress of this feature and others on our development roadmap.

Do you have any questions or ideas? Feel free to contact us via email or our social media channels, or attend one of our bi-weekly office hours.

Zuhair AlSader March 31, 2023