Cyclops is an open-source dev tool that helps developers deploy their software to Kubernetes. It abstracts the complexities of Kubernetes under a customizable UI that can be tailored to any use case or organization. Instead of configuring and deploying software with configuration files, it is as simple as filling out a form.

To create a custom UI for your organization, you can simply create a Helm chart and import it into Cyclops as a template. Cyclops will then render a UI with all the fields needed to deploy an application. This way, you can enable all of the engineers in the organization to deploy their applications in a fast and safe way.

Ultimately, Cyclops allows you to build an internal developer platform by abstracting all of the complexities of your K8s cluster and other technologies. Leave Kubernetes intricacies to your DevOps/Platform teams, and help your engineers to develop faster and focus on shipping new products.

An overview of the Cyclops architecture

Under the hood, Cyclops is implemented as a Kubernetes operator and comes with a CRD called Module. Each Module represents an application and contains information on how to deploy an application.

Cyclops is made out of two main components: the UI and the controller.

An overview of the Cyclops architecture

Cyclops UI is the frontend for all of your modules. Responsible for rendering dynamic UIs, allowing you to deploy all of your applications more easily, and validating user inputs based on the rules provided in the templates. Through it, you can make changes to any of your Modules.

The backend of Cyclops is the Cyclops controller, which serves both as a controller for Cyclops’s CRD Module, and as an API allowing you to create, get, update, and delete modules. Each time a user updates any of the Modules in their cluster, the Cyclops controller will pick up the change and make sure to create all of the necessary resources in your Kubernetes cluster.

Installing Cyclops on Civo

Let’s bring Cyclops to life on a Civo managed Kubernetes cluster. There are some prerequisites to do so:

We will create a Civo cluster and add Cyclops through the Civo marketplace. To create the cluster, you can follow the instructions provided by Civo. On the bottom of the page, there is the Marketplace section where you can go under Management and select Cyclops UI.

Cyclops on Civo Marketplace

Hit Create cluster and give it a couple of minutes to bring up a cluster and your Cyclops instance.

Once your cluster is up and running, you can verify that your Cyclops instance is up and running with the following command:

kubectl get pods -n cyclops

The output of the command should show two running pods. One for the cyclops-ui and another one for the cyclops-ctrl:

NAME                            READY   STATUS    RESTARTS   AGE
cyclops-ui-7d8789cd6-425v9      1/1     Running   0          11m
cyclops-ctrl-789dbf6b65-8nk6b   1/1     Running   0          11m

View Cyclops in action

Now that everything is set up, let’s see how Cyclops can help you deploy your applications. To access Cyclops UI, we can port forward the cyclops-ui service:

kubectl port-forward svc/cyclops-ui 3000:3000 -n cyclops

Cyclops UI is now available on localhost:3000

View Cyclops in action

Deploy a new application

To create a new application through Cyclops, hit the Add Module button in the top right corner. Here, you can choose from many templates that come with Cyclops out of the box.

Deploy a new application on Cyclops

Once a module is created, you can check all the deployed resources.

Live demo of Cyclops on Civo

You can try editing your application by scaling the number of instances and checking how it updates in the UI.

Also, play around with available templates to deploy a MySQL or RabbitMQ instance in a couple of clicks!

Summary

At this point, you should have Cyclops up and running in your Civo cluster. Depending on your next steps, you can carry out further testing by referring to the Cyclops documentation, which can be found here.

Cleaning up (optional)

After completing this tutorial, clean up the resources to prevent unnecessary costs. Remove the Kubernetes cluster using the Civo dashboard or the Civo CLI:

civo k3s remove my-cluster

This command will remove the cluster and associated resources from your Civo account.

Further resources

If you want to learn more about the topics discussed in this tutorial, here are some additional resources to check out: