Today, it's very common for organizations to run and manage multiple Kubernetes clusters across different cloud providers or infrastructures. With an increasing number of clusters, consistently managing Kubernetes add-ons is not an easy task.
Sveltos is a lightweight application designed to manage hundreds of clusters. It does so by providing declarative cluster APIs to deploy Kubernetes add-ons across set of clusters. All while also providing platform admin with a solution for multi-tenancy.
Sveltos focuses not only on the ability to scale the number of clusters it can manage, but also to give visibility to exactly which add-ons are installed on each cluster.
- Kubernetes addon distribution across multiple clusters;
- configuration drift detection: when Sveltos detects a configuration drift, it re-syncs the cluster state back to the state described in the management cluster;
- Templates instantiated reading values from management cluster;
- Multi-tenancy allowing platform admin to easily grant permissions to tenant admins and have Sveltos enforces those;
- Dry run to preview effect of a change;
- Kubernetes cluster classification and automatic label management based on cluster runtime states;
- Snapshot and Rollback.
Sveltos is a set of Kubernetes custom resource definitions (CRDs) and controllers to deploy kubernetes add-ons across multiple Kubernetes clusters.
- ClusterProfile CRD is the CRD used to instruct Sveltos on which add-ons to deploy on a set of clusters;
- Sveltos manager is a controller running in the management cluster. It watches for ClusterProfile instances and cluster instances (both CAPI Cluster and SveltosCluster). It orchestrates Kubernetes addon deployments: when a cluster is a match for a ClusterProfile instance, all add-ons listed in the ClusterProfile instance are deployed in the cluster.
- Classifier CRD is the CRD used to instructs Sveltos on how to classify a cluster;
- Classifier is a controller running in the management cluster. Its counterpart, Classifier Agent is a controller running in each managed cluster. Classifier distributes Classifier CRD instances to any managed cluster. Classifier Agent watches for cluster runtime state (kubernetes version and/or resources deployed) and Classifier CRD instances. It reports back to management cluster whether a managed cluster is a match or not for each Classifier instance;
- RoleRequest CRD is the CRD used to allow platform admin to grant permissions to tenant admins;
- Sveltosctl is the Sveltos CLI;
- Snapshot CRD is the CRD used to instruct Sveltos on collecting configuration snapshots;
- SveltosCluster is the CRD used to register a cluster with Sveltos (only non CAPI powered cluster needs to be manually registered with Sveltos);
- Drift detection manager is a controller running in each managed cluster. It watches for Kubernetes resources deployed by ClusterProfiles set in SyncModeContinuousWithDriftDetection mode. Anytime it detects a possible configuration drift, it informs management cluster so that a re-sync happens and the cluster state is brought back to the desidered state expressed in the management cluster.
😻 Contributing to projectsveltos
❤️ Your contributions are always welcome! If you want to contribute, have questions, noticed any bug or want to get the latest project news, you can connect with us in the following ways:
- Open a bug/feature enhancement on github
- Chat with us on the Slack in the #projectsveltos channel
- Contact Us