Better Together: CAPI, Sveltos, and Cyclops for Automated Development Environments
Introduction
Are you ready to simplify how your Platform team spins up and down development environments while improving DevX? In this post, we demonstrate how CAPI, Sveltos, and Cyclops work together to automatically create Kubernetes environments while allowing developers to interact and manage their applications in a user-friendly environment. It is not magic, it is the power of Sveltos combined with the right tooling!
For the demo, I kept the costs to the minimum using Civo Cloud for the management cluster and Akamai/Linode for the CAPI deployments. Cilium is the preferred CNI for this setup.
Lab Setup
+-----------------+-------------------------+--------------------------+
| Cluster Name | Type | Version |
+-----------------+-------------------------+--------------------------+
| mgmt | Civo Medium Standard | 1.30.5-k3s1 |
+-----------------+-------------------------+--------------------------+
+-----------------+-------------------------+
| Deployment | Version |
+-----------------+-------------------------+
| Sveltos | v0.51.1 |
| clusterctl | v1.9.6 |
| Cilium | v1.16.4 |
+-----------------+-------------------------+
GitHub Resources
The showcase repository is available here.
Prerequisites
- A Kubernetes management cluster
- Akamai/Linode Cloud account
- Helm installed
- kubectl installed
- clusterctl installed
Scenario
The idea is to demonstrate how Sveltos automates the deployment of different environments using blueprint configurations with the required global add-ons and applications while allowing users and developers to work in an intuitive UI to easily adjust the number of replicas, configure rolling updates, and monitor deployment progress. We combine the power of CAPI and Sveltos to look out for updates within a ConfigMap
and once a change is detected, Sveltos spins up or down CAPI clusters on the Akamai/Linode cloud. When the CAPI cluster is ready, Sveltos deploys the required global configuration using a ClusterProfile
like Kyverno
, Grafana Prometheus
, and Cyclops
. We want to provide DevOps engineers and/or seasonal engineers the tools and the understanding to create and manage the lifecycle of a fleet of clusters in a meaningful and manageable way following the GitOps approach while allowing developers to focus on their main task of developement.
Install Sveltos Management Cluster
On the management cluster, let's install Sveltos and Sveltos Dashboard. We will use the Helm chart installation for both components as it is easier to deploy and maintain. For Sveltos installation details, check out the link.
Sveltos
$ helm repo add projectsveltos https://projectsveltos.github.io/helm-charts
$ helm repo update
$ helm install projectsveltos projectsveltos/projectsveltos -n projectsveltos --create-namespace
$ helm list -n projectsveltos