How to get a GitOps cluster in 20 minutes with Civo - part 3

Create a production-ready Kubernetes management cluster with virtual and physical workload clusters on Civo using all the popular cloud native open source tools in only 20 minutes instead of weeks.

How to get a GitOps cluster in 20 minutes with Civo - part 3

Welcome to the third and last part of this series on how to get a GitOps cluster in 20 minutes with Civo. The first article was about preparing for the magic to happen, and creating a production-ready management cluster with multi-cluster support. In the second one, we explored a little of the new cluster you created, and all its tools so you don’t navigate in unknown water. In this blog post, I’ll guide you toward some ways you can customize your new cluster, going from GitOps, to using our beautiful interface.

Customizing your new platform

kubefirst did its job; it created a new management cluster, just for you. It is now yours, and it’s time for you to take the ownership of it, and make it yours.


There are multiple ways to customize your new cluster, and they all start, and end with your gitops repository (more information about GitOps in our documentation). As we respect the GitOps principles, this new repository is now your source of truth. Everything in your new ecosystem is under some sort of code form within Git.

The users having access to the different tools installed for you are in Terraform files within the terraform folder. Same goes for the infrastructure needed to create the clusters. All applications, and configurations are in different YAML files, structured and organized in an easy and understandable way within the registry folder. If you want to manually customize your new environments, this is the place to be.

GitHub web interface showing the gitops repository content of the main branch

GitOps Catalog

We have to admit that playing directly within the repository is not for everyone. This is why we created the GitOps catalog to help you install new applications in, what I call, the proper way to do ClickOps. In the catalog tab, you will see a list of predefined applications that aren’t installed by default at creation, as we try to limit the number of tools we install to make the cluster as lean as possible, and not taking too many decisions for you. Once you click on the “Install” button of one of those, it will do the work for you of adding the proper YAML files in the gitops repository.

The, even better, thing about the GitOps catalog is that it is open source, which means that you can add the application you think are missing from it. If you don’t want to add it, or are not sure how, feel free to create an issue to request the wanted application, and we’ll add it for you.

GitOps Catalog tab on the Services Overview page showcasing some of the applications that can be installed like Argo Events, Argo Rollouts, Datadog, and many more

Manage your workload clusters

An important part of having this new management cluster is to be able to create new workload clusters as needed. You do not need to restrict yourself to the three defaults virtual ones we created by default to give you a preview of the platform capabilities right from the start. The good news is that all new workload clusters will have access to the tools installed in the management physical one, like HashiCorp Vault, and Argo CD.

Before I show you how to create the workload clusters, if you want to know more about the capabilities of the 2.3.X new interface, the addition of workload clusters or understand better the difference between physical and virtual ones, I highly recommend that you watch the recording of the 2.3.0 release livestream.

Physical Clusters

You may be worrying about workload clusters as you’ve only seen virtual ones once you logged in to your new console management interface. As my homebody Yoda would say “Worry, you should not” as you can also create physical ones. To do so, click on the “Add workload cluster” button. It will bring a side popup where you’ll need to enter the information about the new workload physical cluster you want to create. You will need to provide the cluster name, region, instance size, and number of nodes in addition to selecting in which environment this cluster will be created.

The Cluster Management list view with the “Create workload cluster” right-sided drawer with entered information for the new physical cluster creation

Once you press the “Create cluster” button, the cluster creation will start, and you will be presented with a link to see the process within Argo CD. A second link, not available right away, is pointing directly to the cluster configuration in your gitops repository, as everything you do in the UI is reflected in Git.

The Cluster Management list view with the “Create workload cluster” right-sided drawer showing the information about the cluster being created.

If you click on the top link, a new tab will open in the browser to your Argo CD instance, directly within the workload clusters view. Note that if you were logged out of Argo CD, you will see the login screen, and will be able to log back using HashiCorp Vault as the SSO provider.

Argo CD showcasing the new testing physical cluster being created

If you want to visit the testing cluster folder from the gitops repository, click on the second link as soon as it’s available. You’ll be able to see what is added by default in terms of the configurations files and applications. We keep the resources to a minimum, so it’s up to you to add the application you want to run inside this newly created cluster.

GitHub web interface showing the content of the new testing cluster, including some folders, and YAML files.

Lastly, you will now see your new cluster provisioning from our very sexy user interface. The provision process will take some time as we first need to create the public cloud, and after that, Argo CD will sync and install whatever needs to be installed based on the gitops repository content.

The Cluster Management List view showing the default management, and workload clusters in addition to the newly testing cluster which isn’t completely provision yet

Virtual Clusters

We are all used to physical clusters, but there is a new sheriff in town: vclusters, or virtual clusters. They act like real physical clusters, but they live within the management physical one. They are perfect for development or testing purposes so you don’t have to create new physical clusters. If this is a new concept for you, I propose you take the time to watch the embedded livestream recording below, in which we introduce the concept to our community. You could also read the vcluster documentation.

To create one, the process is exactly the same as physical ones, except you won’t have to specify the region, instance size, and number of nodes.

The Cluster Management list view with the “Create workload cluster” right-sided drawer with entered information for the new virtual cluster creation

Once you press “Create cluster”, you will be shown the same information window, and you will also be able to see a new item in the cluster management list view, or a new node in the graph one.

The Cluster Management Graph View showing the default clusters in addition to the physical testing one, and the qa-team virtual cluster

Have fun!

Congratulations, you learned how to customize your platform by using the UI, and knowing that you can always do everything you need manually using the gitops repository. You created new workload clusters, and played a little more with Argo CD, and GitHub. From now on, you can do whatever you please with your new production-ready management and workload clusters.

Before I forget, you remember cluster zero? We could have torn it down right after we validated that everything was working well with our new Civo cluster, so here comes nothing, run kubefirst launch down to make it disappear, and free some Docker resources. Do not worry about the message saying your platform was destroyed: it’s not about your Civo cluster.

kubefirst launch down command executed successfully

With that said, if you were only testing the platform, or played a bit too much with it, and would love a blank slate, we have a guide to help you deprovision your Civo cluster. This is a thing I love about kubefirst: in addition to helping us create production-ready clusters, it’s a perfect playground to test things, and learn more about amazing cloud native tools. You screwed something up? No problem, destroy, and start again; it’s only a couple of minutes!

This ends the last article of this three-part series. I hope that these blog posts were useful to help you create, understand, and customize a new management cluster with workload clusters and the tools you need to be successful, all that in minutes instead of weeks. As always, we are welcoming constructive feedback, features ideas, and overall comment on your experience with our open-source platform. The best place to do that, or ask for help if you encounter any issues, is our Slack community, where you can join more than 300 other cloud native enthusiasts!