A comprehensive kubectl plugin for multi-cluster operations with KubeStellar. This plugin extends kubectl to work seamlessly across all KubeStellar managed clusters, providing unified views and operations while filtering out workflow staging clusters (WDS).
kubectl-multi is a kubectl plugin written in Go that automatically discovers KubeStellar managed clusters and executes kubectl commands across all of them simultaneously. It provides a unified tabular output with cluster context information, making it easy to monitor and manage resources across multiple clusters.
- Multi-cluster resource viewing: Get resources from all managed clusters with unified output
- Cluster context identification: Each resource shows which cluster it belongs to
- All kubectl commands: Supports all major kubectl commands across clusters
- KubeStellar integration: Automatically discovers managed clusters via KubeStellar APIs
- WDS filtering: Automatically excludes Workload Description Space clusters
- Familiar syntax: Uses the same command structure as kubectl
# Step 1: Download kubectl-multi binary for Linux
TAG="v0.0.3"
# Fix: Use ${TAG#v} to remove just 'v', not 'v_'
curl -L -o "kubectl-multi_${TAG#v}_linux_amd64.tar.gz" \
"https://github.com/kubestellar/kubectl-plugin/releases/download/${TAG}/kubectl-multi_${TAG#v}_linux_amd64.tar.gz"
# Step 2: Extract and install
tar -xzf "kubectl-multi_${TAG#v}_linux_amd64.tar.gz"
sudo mv kubectl-multi /usr/local/bin/kubectl-multi
#to test
kubectl-multi -v
Refer to this -> Installation Guide
# This looks for: github.com/kubestellar/homebrew-kubectl-multi
brew tap kubestellar/kubectl-multi
# This also looks for: github.com/kubestellar/homebrew-kubectl-multi
brew install kubestellar/kubectl-multi/kubectl-multi
kubectl-multi -v# Install the plugin
make install
# To build the binary
make build
# Get nodes from all managed clusters
kubectl multi get nodes
# Get pods from all clusters in all namespaces
kubectl multi get pods -A- Installation Guide - How to install and set up kubectl-multi
- Usage Guide - Detailed usage examples and commands
- Architecture Guide - Technical architecture and how it works
- Development Guide - Contributing and development workflow
- API Reference - Code organization and technical implementation
- Go 1.21+: Primary language for the plugin
- Cobra: CLI framework for command structure and parsing
- Kubernetes client-go: Official Kubernetes Go client library
- KubeStellar APIs: For managed cluster discovery
CONTEXT CLUSTER NAME STATUS ROLES AGE VERSION
its1 cluster1 cluster1-control-plane Ready control-plane 6d23h v1.33.1
its1 cluster2 cluster2-control-plane Ready control-plane 6d23h v1.33.1
its1 its1-cluster kubeflex-control-plane Ready <none> 6d23h v1.27.2+k3s1
- KubeStellar - Multi-cluster configuration management
- kubectl - Kubernetes command-line tool
For issues and questions:
- File an issue in this repository
- Check the KubeStellar documentation
- Join the KubeStellar community discussions
This project is licensed under the Apache License 2.0. See the LICENSE file for details.