KubeStellar prerequisites#
The following prerequisites are required. You can use the check-pre-req script, to validate if all needed pre-requisites are installed.
Infrastructure (clusters)#
Because of its multicluster architecture, KubeStellar requires that you have the necessary privileges and infrastructure access to create and/or configure the necessary Kubernetes clusters. These are the following; see the architecture document for more details.
- One cluster to serve as the KubeFlex hosting cluster.
- Any additional Kubernetes clusters that are not created by KubeFlex but you will use as a WDS or ITS.
- Your WECs.
Our documentation has remarks about using the following sorts of clusters:
- kind
- k3s
- openshift
Software Prerequisites: for Using KubeStellar#
-
kubeflex version 0.6.1 or higher To install kubeflex go to https://github.com/kubestellar/kubeflex/blob/main/docs/users.md#installation. To upgrade from an existing installation, follow these instructions. At the end of the install make sure that the kubeflex CLI, kflex, is in your
$PATH
. -
OCM CLI (clusteradm) To install OCM CLI use:
curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bash
Note that the default installation of clusteradm will install in /usr/local/bin which will require root access. If you prefer to avoid root, you can specify an alternative installation location using the INSTALL_DIR environment variable, as follows:
mkdir -p ocm export INSTALL_DIR="$PWD/ocm" curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bash export PATH=$PWD/ocm:$PATH
At the end of the install make sure that the OCM CLI, clusteradm, is in your
$PATH
. -
helm - to deploy the kubestellar and kubeflex charts
- kubectl - to access the kubernetes clusters
Additional Software for the Quickstart setup#
- kind
- docker (or compatible docker engine that works with kind)
Additional Software For Running the Examples#
- argocd - for the examples that use it
Additional Software For Building KubeStellar from Source#
- go version 1.20 or higher - to build kubestellar
- make - to build kubestellar and create the kubestellar image
- ko - to create the kubestellar image
To build and test KubeStellar properly, you will also need
- kind
- OCP
Automated Check of Pre-Requisites for KubeStellar#
The check_pre_req script offers a convenient way to check for the pre-requisites needed for KubeStellar deployment and use.
The script checks for a pre-requisite presence in the $PATH
, by using the which
command, and it can optionally provide version and path information for pre-requisites that are present, or installation information for missing pre-requisites.
We envision that this script could be useful for user-side debugging as well as for asserting the presence of pre-requisites in higher-level automation scripts.
The script accepts a list of optional flags and arguments.
Supported flags:#
-A|--assert
: exits with error code 2 upon finding the fist missing pre-requisite-L|--list
: prints a list of supported pre-requisites-V|--verbose
: displays version and path information for installed pre-requisites or installation information for missing pre-requisites-X
: enableset -x
for debugging the script
Supported arguments:#
The script accepts a list of specific pre-requisites to check, among the list of available ones:
Examples#
For example, list of pre-requisites required by KubeStellar can be checked with the command below (add the -V
flag to get the version of each program and a suggestions on how to install missing pre-requisites):
$ hack/check_pre_req.sh
Checking pre-requisites for using KubeStellar:
✔ Docker
✔ kubectl
✔ KubeFlex
✔ OCM CLI
✔ Helm
Checking additional pre-requisites for running the examples:
✔ Kind
X ArgoCD CLI
Checking pre-requisites for building KubeStellar:
✔ GNU Make
✔ Go
✔ KO
In another example, a specific list of pre-requisites could be asserted by an higher-level script, while providing some installation information, with the command below (note that the script will terminate upon finding a missing pre-requisite):
$ check_pre_req.sh --assert --verbose helm argo docker kind
Checking KubeStellar pre-requisites:
✔ Helm
version: version.BuildInfo{Version:"v3.14.0", GitCommit:"3fc9f4b2638e76f26739cd77c7017139be81d0ea", GitTreeState:"clean", GoVersion:"go1.21.5"}
path: /usr/sbin/helm
X ArgoCD CLI
how to install: https://argo-cd.readthedocs.io/en/stable/cli_installation/