Skip to content

kubestellar/kubectl-multi-plugin

kubectl-multi

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).

Overview

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.

Key Features

  • 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

how to install

Downloading step for Linux

# 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

Downloading steps for windows

Refer to this -> Installation Guide

Downloading by brew

# 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

Quick Start for developer

# 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

Documentation

Tech Stack

  • 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

Example Output

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

Related Projects

  • KubeStellar - Multi-cluster configuration management
  • kubectl - Kubernetes command-line tool

Support

For issues and questions:

  • File an issue in this repository
  • Check the KubeStellar documentation
  • Join the KubeStellar community discussions

License

This project is licensed under the Apache License 2.0. See the LICENSE file for details.

About

home of the kubectl 'multi' command that reports all resources from all clusters in your existing KubeStellar environment

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9