Convert Figma logo to code with AI

kubernetes-sigs logokrew

📦 Find and install kubectl plugins

6,327
364
6,327
23

Top Related Projects

26,898

The Kubernetes Package Manager

6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

17,684

Declarative Continuous Deployment for Kubernetes

23,337

Complete container management platform

17,537

Faster way to switch between clusters and namespaces in kubectl

Quick Overview

Krew is a plugin manager for kubectl, the command-line interface for Kubernetes. It simplifies the process of discovering, installing, and managing kubectl plugins, allowing users to extend the functionality of kubectl with custom commands and tools.

Pros

  • Easy installation and management of kubectl plugins
  • Large ecosystem of available plugins
  • Cross-platform support (Linux, macOS, Windows)
  • Seamless integration with existing kubectl workflows

Cons

  • Requires separate installation and setup
  • Limited to kubectl plugins only
  • Potential security risks if installing untrusted plugins
  • May increase complexity for users new to Kubernetes

Getting Started

To install Krew, run the following commands:

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)

Add the following to your shell configuration file (e.g., .bashrc, .zshrc):

export PATH="${KREW_ROOT:-$HOME/.krew}/bin:$PATH"

To install a plugin using Krew:

kubectl krew install <plugin-name>

To list installed plugins:

kubectl krew list

Competitor Comparisons

26,898

The Kubernetes Package Manager

Pros of Helm

  • More comprehensive package management solution for Kubernetes
  • Supports complex application deployments with templating and versioning
  • Larger ecosystem with a wide range of pre-built charts available

Cons of Helm

  • Steeper learning curve due to its more complex architecture
  • Requires additional resources to run Tiller (Helm v2) or manage client-side operations (Helm v3)
  • Can introduce security concerns if not properly configured

Code Comparison

Krew installation command:

kubectl krew install <plugin-name>

Helm installation command:

helm install <release-name> <chart-name>

Key Differences

  • Krew focuses on kubectl plugin management, while Helm is a full package manager for Kubernetes applications
  • Krew has a simpler architecture and is easier to get started with for basic plugin management
  • Helm provides more advanced features like templating, versioning, and rollback capabilities
  • Krew integrates directly with kubectl, while Helm operates as a separate tool
  • Helm has a larger community and more extensive documentation compared to Krew

Both tools serve different purposes within the Kubernetes ecosystem, with Krew being more specialized for kubectl plugin management and Helm offering a broader solution for application deployment and management.

6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Pros of Flux

  • Provides a complete GitOps solution for Kubernetes, enabling automated deployment and management of applications
  • Supports multi-tenancy and cluster management at scale
  • Offers advanced features like Helm releases, Kustomize integration, and notifications

Cons of Flux

  • Steeper learning curve due to its comprehensive feature set
  • Requires more setup and configuration compared to Krew's simpler plugin management approach
  • May be overkill for users only seeking basic kubectl plugin management

Code Comparison

Flux (Helm release example):

apiVersion: helm.toolkit.fluxcd.io/v2beta1
kind: HelmRelease
metadata:
  name: podinfo
  namespace: default
spec:
  interval: 5m
  chart:
    spec:
      chart: podinfo
      version: '>=5.0.0 <6.0.0'
      sourceRef:
        kind: HelmRepository
        name: podinfo
        namespace: default

Krew (plugin installation):

kubectl krew install ns
kubectl ns kube-system

While Flux focuses on GitOps and application deployment, Krew specializes in kubectl plugin management. Flux offers a more comprehensive solution for Kubernetes management, while Krew provides a simpler, focused approach to extending kubectl functionality.

17,684

Declarative Continuous Deployment for Kubernetes

Pros of Argo CD

  • Provides a complete GitOps solution for Kubernetes deployments
  • Offers a user-friendly web UI for visualizing and managing application deployments
  • Supports multi-cluster deployments and advanced rollback capabilities

Cons of Argo CD

  • More complex setup and configuration compared to Krew's simplicity
  • Requires additional resources to run as a separate application in the cluster
  • Steeper learning curve for users new to GitOps concepts

Code Comparison

Argo CD application definition:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    path: k8s
    repoURL: https://github.com/example/myapp.git
    targetRevision: HEAD

Krew plugin installation:

kubectl krew install my-plugin

While Argo CD focuses on continuous delivery and GitOps workflows, Krew is primarily a package manager for kubectl plugins. Argo CD offers more comprehensive deployment management features, but Krew provides a simpler solution for extending kubectl functionality. The choice between the two depends on the specific needs of your Kubernetes workflow and the level of deployment automation required.

23,337

Complete container management platform

Pros of Rancher

  • Comprehensive Kubernetes management platform with a user-friendly GUI
  • Supports multi-cluster management and provides built-in monitoring and logging
  • Offers enterprise-grade features like role-based access control and multi-tenancy

Cons of Rancher

  • More complex setup and resource-intensive compared to Krew
  • Steeper learning curve for users new to Kubernetes management
  • May introduce additional overhead for simple Kubernetes deployments

Code Comparison

Rancher (Helm installation):

helm repo add rancher-stable https://releases.rancher.com/server-charts/stable
helm install rancher rancher-stable/rancher \
  --namespace cattle-system \
  --set hostname=rancher.my.org

Krew (Installation):

(
  set -x; cd "$(mktemp -d)" &&
  OS="$(uname | tr '[:upper:]' '[:lower:]')" &&
  ARCH="$(uname -m | sed -e 's/x86_64/amd64/' -e 's/\(arm\)\(64\)\?.*/\1\2/' -e 's/aarch64$/arm64/')" &&
  KREW="krew-${OS}_${ARCH}" &&
  curl -fsSLO "https://github.com/kubernetes-sigs/krew/releases/latest/download/${KREW}.tar.gz" &&
  tar zxvf "${KREW}.tar.gz" &&
  ./"${KREW}" install krew
)
17,537

Faster way to switch between clusters and namespaces in kubectl

Pros of kubectx

  • Lightweight and focused on specific tasks (context and namespace switching)
  • Simple installation process without additional dependencies
  • Faster execution for its specific functions

Cons of kubectx

  • Limited functionality compared to krew's plugin ecosystem
  • Lacks the ability to manage and discover additional kubectl plugins
  • May require manual updates for new versions

Code Comparison

kubectx:

# Switch kubectl context
kubectx my-cluster

# Switch kubectl namespace
kubens my-namespace

krew:

# Install a kubectl plugin
kubectl krew install ctx

# Use the installed plugin
kubectl ctx my-cluster

Summary

kubectx is a lightweight tool focused on quick context and namespace switching for kubectl. It's easy to install and use but has limited functionality. krew, on the other hand, is a plugin manager for kubectl that allows users to discover, install, and manage various plugins, including those that replicate kubectx functionality. While krew offers more extensibility, it may have a slightly more complex setup process and slower execution for simple tasks compared to the specialized kubectx tool.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Krew logo

Krew

Build Status Go Report Card LICENSE Releases GitHub stars

Krew is the package manager for kubectl plugins.

What does Krew do?

Krew is a tool that makes it easy to use kubectl plugins. Krew helps you discover plugins, install and manage them on your machine. It is similar to tools like apt, dnf or brew. Today, over 200 kubectl plugins are available on Krew.

  • For kubectl users: Krew helps you find, install and manage kubectl plugins in a consistent way.
  • For plugin developers: Krew helps you package and distribute your plugins on multiple platforms and makes them discoverable.

Documentation

Visit the Krew documentation to find Installation instructions, User Guide and Developer Guide.

You can follow the Quickstart to get started with Krew.

Contributor Documentation

  • Releasing Krew: how to release new version of Krew.
  • Plugin Lifecycle: how Krew installs/upgrades plugins and itself. (Not necessarily up-to-date, but it can give a good idea about how Krew works under the covers.)
  • Krew Architecture: architectural decisions behind designing initial versions of Krew. (Not up-to-date.)
  • Krew Logo: our logo and branding assets.

Visit ./docs for all documentation.

Roadmap

Please check out the Issue Tracker to see the plan of record for new features and changes.

Community

Bug reports

  • If you have a problem with the Krew itself, please file an issue in this repository.
  • If you're having a problem with a particular plugin's installation or upgrades, file an issue at krew-index repository.
  • If you're having an issue with an installed plugin, file an issue for the repository the plugin's source code is hosted at.

Communication channels

Contributing

Interested in contributing to Krew? Please refer to our Contributing Guidelines for more details.

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.