Install
What is Projectsveltos
Sveltos is a set of Kubernetes controllers deployed in the management cluster. From the management cluster, it can manage add-ons and applications to multiple clusters.
Installation Modes
Sveltos supports two modes: Mode 1 and Mode 2.
-
Mode 1: Will deploy up to two agents, sveltos-agent and drift-detection-manager1, in each managed cluster.
-
Mode 2: Sveltos agents will be created, per managed cluster, in the management cluster2. The agents, while centrally located, will still monitor their designated managed cluster’s API server.
Mode 1: Local Agent Mode
To install Sveltos in mode 1, run the commands below.
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/manifest.yaml
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/default-classifier.yaml
Mode 2: Centralised Agent Mode
If you do not want to have any Sveltos agent in any managed cluster, run the commands below.
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/agents_in_mgmt_cluster_manifest.yaml
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/default-classifier.yaml
Sveltos uses the git-flow branching model. The base branch is dev. If you are looking for latest features, please use the dev branch. If you are looking for a stable version, please use the main branch or tags labeled as v0.x.x.
Deployment Options
Sveltos can be installed as a Helm chart or with Kustomize. By default, Mode 1 will get deployed unless otherwise specified.
Helm Installation
$ 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
Please note: Sveltos pods assume to be running in the projectsveltos namespace.
Kustomize Installation
Mode 1: Local Agent Mode
$ kustomize build https://github.com/projectsveltos/sveltos.git//kustomize/base\?timeout\=120\&ref\=main |kubectl apply -f -
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/default-classifier.yaml
Mode 2: Centralised Agent Mode
$ kustomize build https://github.com/projectsveltos/sveltos.git//kustomize/overlays/agentless-mode\?timeout\=120\&ref\=main |kubectl apply -f -
$ kubectl apply -f https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/default-classifier.yaml
Sveltos Verification
Get the Sveltos status and verify that all pods are Up and Running.
projectsveltos access-manager-69d7fd69fc-7r4lw 2/2 Running 0 40s
projectsveltos addon-controller-df8965884-x7hp5 2/2 Running 0 40s
projectsveltos classifier-manager-6489f67447-52xd6 2/2 Running 0 40s
projectsveltos hc-manager-7b6d7c4968-x8f7b 2/2 Running 0 39s
projectsveltos sc-manager-cb6786669-9qzdw 2/2 Running 0 40s
projectsveltos event-manager-7b885dbd4c-tmn6m 2/2 Running 0 40s
Next Steps
Contiunue with the Sveltoctl command-line interface (CLI) definition and installation here.
-
sveltos-agent will be deployed if there is at least one Classifier instance in the management cluster. Drift detection manager will be deployed if there is a ClusterProfile instance with SyncMode set to ContinuousWithDriftDetection. ↩
-
If Prometheus operator is not present in your management cluster, you will see (and can ignore) following error: error: unable to recognize "https://raw.githubusercontent.com/projectsveltos/sveltos/main/manifest/manifest.yaml": no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1" ↩