A CLI and kubernetes CLI plugin that allows you to interact with open-cluster-management to manage your Hybrid Cloud presence from the command-line.
curl -L https://raw.githubusercontent.com/open-cluster-management-io/clusteradm/main/install.sh | bash
GO111MODULE=off go get -u open-cluster-management.io/clusteradm/...
The binaries for several platforms are available here.
- Download the compressed file from here
- Uncompress the file and place the output in a directory of your $PATH
Go 1.17 is required in order to build or contribute on this project as it leverage the go:embed
tip.
The binary will be installed in $GOPATH/bin
git clone https://github.com/open-cluster-management-io/clusteradm.git
cd clusteradm
make build
clusteradm
# Initialize the hub
kubectl config use-context <hub cluster context> # kubectl config use-context kind-hub
clusteradm init
# Request a managed cluster to join the hub
kubectl config use-context <managed cluster context> # kubectl config use-context kind-managed-cluster
clusteradm join --hub-token <token> --hub-apiserver <api server url> --cluster-name <cluster name>
# Accept the managed cluster request on the hub
kubectl config use-context <hub cluster context> # kubectl config use-context kind-hub
clusteradm accept --clusters <list of clusters> # clusteradm accept --clusters c1,c2,...
After each above clusteradm command, the clusteradm will print out the next clusteradm command to execute which can be copy/paste.
See our Contributing Document for more information.
The commands are composed of a verb and a noun and then a number of parameters.
Logs can be gather by setting the klog flag -v
.
To get the logs in a separate file:
clusteradm <subcommand> -v 2 > <your_logfile>
or
clusteradm <subcommand> -v 99 --logtostderr=false --log-file=<your_log_file>
Display the clusteradm version and the kubeversion
clusteradm version
Initialize the hub by deploying the hub side resources to manage clusters.
clusteradm init [--use-bootstrap-token]
it returns the command line to launch on the spoke to join the hub.
Install the agent on the spoke.
clusteradm join --hub-token <token> --hub-apiserver <hub_apiserver_url> --cluster-name c1
it returns the command line to launch on the hub the accept the spoke onboarding.
Accept the CSRs on the hub to approve the spoke clusters to join the hub.
clusteradm accept --clusters <cluster1>, <cluster2>,....
Install specific built-in add-on(s) to the hub cluster.
clusteradm install hub-addon --names application-manager
clusteradm install hub-addon --names governance-policy-framework
Enable specific add-on(s) agent deployment to the given managed clusters of the specified namespace
clusteradm addon enable --names application-manager --namespace <namespace> --clusters <cluster1>,<cluster2>,....
clusteradm addon enable --names governance-policy-framework --namespace <namespace> --clusters <cluster1>,<cluster2>,....
clusteradm addon enable --names config-policy-controller --namespace <namespace> --clusters <cluster1>,<cluster2>,....
Create and Deploy a Sample Subscription Application
clusteradm create sampleapp sampleapp1