In October 2020 we released the community-driven roadmap for 2021. It's time to revisit and see all the things we have completed from the list!

I am very proud to say that at Civo we have taken the community suggestions and implemented most of them during the launch on May 4th 2021.

Let's dive into each of the features listed in the original blog post and see where we are with the 2021 Civo Roadmap.

High Availability

Civo manages the control plane free for our users, ensuring resilience for management of your clusters. When you create a Kubernetes cluster, you won't see control plane node and also will not be able to schedule workload on control plane. You only pay for the nodes where your workloads run.

This will also remove one of the common issues that was reported our community faced, where suddenly their clusters became unreachable just because they inadvertently overloaded the cluster and the control plane went down.

With the current scenario the control plane node is managed by Civo and you will always get a highly available cluster.

#3 Node Cluster in London region
kubectl get nodes
NAME                                  STATUS   ROLES    AGE    VERSION
k3s-roadmap-6ac7481e-node-pool-5f4c   Ready    <none>   110s   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-9ffe   Ready    <none>   109s   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-4df6   Ready    <none>   109s   v1.20.2+k3s1


We are now live in two regions NYC1 and LON1. By no means stopping here, with more regions to come this year. Now when you log in to Civo you can see that you will be able to select the region and create resources in a particular region.

Region selection

Note: We will be making our current OpenStack SVG1 region end-of-life as of 11th of June. If you have any resources running on the legacy SVG1 region, please migrate to LON1 or NYC1 as appropriate.


This feature is in the development phase and will be out very soon: Users will be able to choose from multiple Kubernetes versions for their clusters. We are working to provide two versions at the moment for Kubernetes - 1.20 and 1.21, but eventually in the future (envisioned as from 1.21 onwards) we will be maintaining 3 versions as per the Kubernetes release cycle.

Managed Persistent Storage Service

We have written our custom CSI driver so you get a new storage class in your cluster that you can used for your persistent workloads directly.

kubectl get sc
civo-volume (default)            Delete          Immediate              false                  11h

So when you create a PersistentVolumeClaim (PVC) it will automatically create a Persistent Volume (PV), with the storage solution based on StorageOS.

cat << EOF | kubectl apply -f -
apiVersion: v1
kind: PersistentVolumeClaim
  name: task-pv-claim
    - ReadWriteOnce
      storage: 3Gi

kubectl get pv
NAME                                       CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                   STORAGECLASS   REASON   AGE
pvc-18d2785b-961f-489d-95ea-a5392295fb35   3Gi        RWO            Delete           Bound    default/task-pv-claim   civo-volume             1h

kubectl get pvc                
NAME            STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   AGE
task-pv-claim   Bound    pvc-18d2785b-961f-489d-95ea-a5392295fb35   3Gi        RWO            civo-volume    1h

The volume also appears in the Civo web interface in your account:

Persistent Volumes on Civo

k8s External DNS

External DNS synchronises exposed Kubernetes services and Ingresses with DNS providers. We have already raised a pull request for this.

Control Plane Backup

Since we have separated the control plane of your clusters, the backup for the control plane database is taken care of by Civo. However, this does not mean that the customer workloads are backed up, so we recommend you implement a solution to back up your workloads periodically.

Multiple Node Pools

This feature was one of our most requested and I am glad to announce that it is live and you can create multiple node pools and scale them separately as well. This means you can create node pools for specific work loads that can scale based on the demands based on those individual components:

Creating a node pool

Civo Node Pools

So we have now a 5 node cluster with 2 node pools for different types of workloads:

$ kubectl get nodes
NAME                                  STATUS   ROLES    AGE   VERSION
k3s-roadmap-6ac7481e-node-pool-9ffe   Ready    <none>   42h   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-5f4c   Ready    <none>   42h   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-4df6   Ready    <none>   42h   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-18a4   Ready    <none>   77s   v1.20.2+k3s1
k3s-roadmap-6ac7481e-node-pool-0e4d   Ready    <none>   60s   v1.20.2+k3s1


A great feature that our community loves and has requested. We are currently working with a member of our community to build this autoscaling solution.

Databases as a Service (DBaaS)

DBaaS In progress and on the verge of completion. So very soon you will be getting this to play around with!

Wrapping Up

So that was a quick update on where we are with the roadmap for 2021 that we published based on the Civo user community's suggestions.

We are not stopping here and the next 6 months will be more awesome as we have a lot of things for you all in the store which we will keep on revealing every month.

If there is a feature you would love to see on Civo, head to your account's suggestions page and see if it's already been requested or post one of your own!