Installation#

Pre-requisites:

SkyCluster Manager depends on the following tools:

Please make sure you have installed all tools before proceeding. We utilize kind to create a local cluster to install and test SkyCluster Manager. Please ensure you can use kubectl without sudo before proceeding (refer to the docker post-installation guide).

Create a Local Management Kubernetes Cluster:

A management Kubernetes cluster is required to run the skycluster-manager and act as the point of contact for submitting your application. You can create a local management Kubernetes cluster using kind with the following command:

kind create cluster --name skycluster

Install Crossplane:

The skycluster-manager relies on Crossplane for managing external cloud resources. Crossplane is a Kubernetes extension that allows Kubernetes to manage external cloud resources via standard Kubernetes APIs. To install Crossplane, use the following commands:

helm repo add crossplane-stable https://charts.crossplane.io/stable
helm repo update

helm install crossplane \
   --namespace crossplane-system \
   --create-namespace crossplane-stable/crossplane \
   --version 1.18.0

You need to ensure the CrossPlane is installed and is running: k get pods -ncrossplane-system | grep crossplane before proceeding to the next step.

Install SkyCluster:

SkyCluster Manager supports AWS, GCP and Azure as well as on-premises infrastructure powered by OpenStack. You can install all the providers or only the ones you need. Create a settings file settings.yaml with the following content and set enabled to false for the providers you don’t want to be installed:

 1providers:
 2  public:
 3    aws:
 4      enabled: true
 5    gcp:
 6      enabled: true
 7    azure:
 8      enabled: true
 9    azure-network:
10      enabled: true
11  private:
12    openstack:
13      enabled: true

Then run the following command to install the skycluster using helm:

helm repo add skycluster https://skycluster.io/charts
helm repo update

helm install skycluster skycluster/skycluster \
  --set install=true -f settings.yaml

Warning

This step may take few mintues to be completed depending on your internet connection. You need to wait for all the providers to become available and healthy before proceeding to the next step. Check the status of the providers by running kubectl get providers. and wait till you see the fields Installed=True and HEALTHY=True for all the providers.

Providers’ Configuration:

Once all providers are installed, you need to provide form of authentication to enable using hyperscalers such as AWS and GCP. Please follow the instructions in provider configuration page to apply required configurations.

Setting up Regions and Locations:

To enable skycluster-manager to deploy services across different providers you need to setup each regions within each prvoider that you configured in the previouse step.