Home

Awesome

arkade - Open Source Marketplace For Developer Tools

arkade is how developers install the latest versions of their favourite CLI tools and Kubernetes apps.

With arkade get, you'll have kubectl, kind, terraform, and jq on your machine faster than you can type apt-get install or brew update.

<img src="docs/arkade-logo-sm.png" alt="arkade logo" width="150" height="150">

Sponsor this CI Build URL Checker GoDoc License: MIT Downloads

With over 120 CLIs and 55 Kubernetes apps (charts, manifests, installers) available for Kubernetes, gone are the days of contending with dozens of README files just to set up a development stack with the usual suspects like ingress-nginx, Postgres, and cert-manager.

Support arkade 👋

Arkade is built to save you time so you can focus and get productive quickly.

<a href="https://github.com/sponsors/alexellis/"> <img alt="Sponsor this project" src="https://github.com/alexellis/alexellis/blob/master/sponsor-today.png" width="90%"> </a>

You can support Alex's work on arkade via GitHub Sponsors.

Or get a copy of his eBook on Go so you can learn how to build tools like k3sup, arkade, and OpenFaaS for yourself:

<a href="https://openfaas.gumroad.com/l/everyday-golang"> <img src="https://public-files.gumroad.com/7j27fj7c5xqxm3f9lyxj1pg8oa1w" alt="Buy Everyday Go" width="50%"></a>

Should you try arkade?

I was setting up a new dev environment yesterday. Kind, helm, kustomize, kubectl, all this stuff. My take is - arkade is highly underappreciated. I'd spend an hour in the past to install such tools. With arkade it was under ten minutes.

Ivan Velichko, SRE @ Booking.com

Before arkade whenever I used to spin up an instance, I used to go to multiple sites and download the binary. Arkade is one of my favourite tools.

Kumar Anurag - Cloud Native Enthusiast

It's hard to use K8s without Arkade these days. My team at @lftechnology absolutely loves it.

@Yankexe

arkade is really a great tool to install CLI tools, and system packages, check this blog on how to get started with arkade it's a time saver.

Kiran Satya Raj

This is real magic get #kubernetes up and going in a second; then launch #openfaas a free better than lambda solution that uses docker images.

Greg runs Fullstack JS and is a JavaScript developer

for getting the basics installed, nothing beats arkade it can install commonly used cli tools like kubectl locally for you, as well as common k8s pkgs like ingress-nginx or portainer

@arghzero

I finally got around to installing Arkade, super simple! quicker to install this than the argocli standalone commands, but there are lots of handy little tools in there. also, the neat little part about arkade, not only does it make it easy to install a ton of different apps and CLIs you can also get the info on them as well pretty quickly.

Michael Cade @ Kasten

You've to install the latest and greatest tools for your daily @kubernetesio tasks? No problem, check out #arkade the open source #kubernetes marketplace 👍

Thorsten Hans - Cloud Native consultant

If you want to install quickly a new tool in your dev env or in your k8s cluster you can use the Arkade (https://github.com/alexellis/arkade) easy and quick you should it try out! Ps. I contribute to this project 🥰

Carlos Panato - Staff engineer @ Mattermost

arkade is the 'brew install' of Kubernetes. You can install and run an application in a single command. Finally! https://github.com/alexellis/arkade / by Alex Ellis

John Arundel - Cloud consultant, author

Demo

demo

Getting arkade

# Note: you can also run without `sudo` and move the binary yourself
curl -sLS https://get.arkade.dev | sudo sh

arkade --help
ark --help  # a handy alias

# Windows users with Git Bash
curl -sLS https://get.arkade.dev | sh

Windows users: arkade requires bash to be available, therefore Windows users should install and use Git Bash

An alias of ark is created at installation time, so you can also run ark install APP

Usage overview

Arkade can be used to install Kubernetes apps or to download CLI tools.

An arkade "app" could represent a helm chart such as openfaas/faas-netes, a custom CLI installer such as istioctl, or a set of static manifests (i.e. MetalLB).

An arkade "tool" is a CLI that can be downloaded for your operating system. Arkade downloads statically-linked binaries from their upstream locations on GitHub or the vendor's chosen URL such as with kubectl and terraform.

Did you know? Arkade users run arkade get both on their local workstations, and on their CI runners such as GitHub Actions or Jenkins.

Download CLI tools with arkade

arkade downloads the correct version of a CLI for your OS and CPU.

With automatic detection of: Windows / MacOS / Linux / Intel / ARM.

# Download a binary release of a tool

arkade get kubectl

# Download a specific version of that tool
arkade get kubectl@v1.22.0

# Download multiple tools at once
arkade get kubectl \
  helm \
  istioctl

# Download multiple specific versions
arkade get faas-cli@0.13.15 \
  kubectl@v1.22.0

# Override machine os/arch
arkade get faas-cli \
  --arch arm64 \
  --os linux

# Override machine os/arch
arkade get faas-cli \
  --arch arm64 \
  --os darwin

This is a time saver compared to searching for download pages every time you need a tool.

Files are stored at $HOME/.arkade/bin/

Want to download tools to a custom path such as into the GitHub Actions cached tool folder?

arkade get faas-cli kubectl \
  --path $HOME/runner/_work/_tools

# Usage:
/runner/_work/_tools/faas-cli version

PATH=$PATH:$HOME/runner/_work/_tools
faas-cli version

Think of arkade get TOOL as a doing for CLIs, what arkade install does for helm.

Adding a new tool for download is as simple as editing tools.go.

Click here for the full catalog of CLIs

Install System Packages

System packages are tools designed for installation on a Linux workstation, server or CI runner.

These are a more limited group of applications designed for quick setup, scripting and CI, and generally do not fit into the arkade get pattern, due to additional installation steps or system configuration.

# Show packages
arkade system install

# Show package flags
arkade system install go --help

# Install latest version of Go to /usr/local/bin/go
arkade system install go

# Install Go 1.18 to /tmp/go
arkade system install go \
  --version 1.18 \
  --path /tmp/

# Install containerd for ARM64, 32-bit ARM or x86_64
# with systemd enabled
arkade system install containerd \
  --systemd

Run the following to see what's available arkade system install:

  actions-runner  Install GitHub Actions Runner
  buildkitd       Install Buildkitd
  caddy           Install Caddy Server
  cni             Install CNI plugins
  containerd      Install containerd
  firecracker     Install Firecracker
  gitlab-runner   Install GitLab Runner
  go              Install Go
  node            Install Node.js
  prometheus      Install Prometheus
  pwsh            Install Powershell
  registry        Install registry
  tc-redirect-tap Install tc-redirect-tap

The initial set of system apps is now complete, learn more in the original proposal: Feature: system packages for Linux servers, CI and workstations #654

Install Packages from OCI images

For packages distributed in Open Container Initiative (OCI) images, you can use arkade oci install to extract them to a given folder on your system.

vmmeter is one example of a package that is only published as a container image, which is not released on a GitHub releases page.

arkade oci install ghcr.io/openfaasltd/vmmeter \
  --path /usr/local/bin

Install CLIs during CI with GitHub Actions

Example of downloading faas-cli (specific version) and kubectl (latest), putting them into the PATH automatically, and executing one of them in a subsequent step.

    - uses: alexellis/arkade-get@master
      with:
        kubectl: latest
        faas-cli: 0.14.10
    - name: check for faas-cli
      run: |
        faas-cli version

If you just need system applications, you could also try "setup-arkade":

    - uses: alexellis/setup-arkade@v2
    - name: Install containerd and go
      run: |
        arkade system install containerd
        arkade system install go

Bump Helm chart versions

To bump the patch version of your Helm chart, run arkade chart bump -f ./chart/values.yaml. This updates the patch component of the version specified in Chart.yaml.

arkade chart bump -f ./charts/flagger/values.yaml
charts/flagger/Chart.yaml 1.36.0 => 1.37.0

By default, the new version is written to stdout. To bump the version in the file, run the above command with the --write flag. To bump the version in the chart's Chart.yaml only if the chart has any changes, specify the --check-for-updates flag:

arkade chart bump -f ./charts/flagger/values.yaml --check-for-updates
no changes detected in charts/flagger/values.yaml; skipping version bump

The directory that contains the Helm chart should be a Git repository. If the flag is specified, the command runs git diff --exit-code <file> to figure out if the file has any changes.

Verify and upgrade images in Helm charts

There are two commands built into arkade designed for software vendors and open source maintainers.

Whilst end-users may use a GitOps-style tool to deploy charts and update their versions, maintainers need to make conscious decisions about when and which images to change within a Helm chart or compose file.

These two features are used by OpenFaaS Ltd on projects and products like OpenFaaS CE/Pro (Serverless platform) and faasd (docker-compose file).

Upgrade images within a Helm chart

With the command arkade chart upgrade you can upgrade the image tags of a Helm chart from within a values.yaml file to the latest available semantically versioned image.

Original YAML file:

stan:
  # Image used for nats deployment when using async with NATS-Streaming.
  image: nats-streaming:0.24.6

Running the command with --verbose prints the upgraded tags to stderr, allowing the output to stdout to be piped to a file.

arkade chart upgrade -f \
  ~/go/src/github.com/openfaas/faas-netes/chart/openfaas/values.yaml \
  --verbose

2023/01/03 10:12:47 Verifying images in: /home/alex/go/src/github.com/openfaas/faas-netes/chart/openfaas/values.yaml
2023/01/03 10:12:47 Found 18 images
2023/01/03 10:12:48 [natsio/prometheus-nats-exporter] 0.8.0 => 0.10.1
2023/01/03 10:12:50 [nats-streaming] 0.24.6 => 0.25.2
2023/01/03 10:12:52 [prom/prometheus] v2.38.0 => 2.41.0
2023/01/03 10:12:54 [prom/alertmanager] v0.24.0 => 0.25.0
2023/01/03 10:12:54 [nats] 2.9.2 => 2.9.10

Updated YAML file printed to console:

stan:
  # Image used for nats deployment when using async with NATS-Streaming.
  image: nats-streaming:0.25.2

Write the updated image tags back to the file:

arkade chart upgrade -f \
  ~/go/src/github.com/openfaas/faasd/docker-compose.yaml \
  --write

Supported:

Not supported yet:

Verify images within a helm chart

The arkade chart verify command validates that all images specified are accessible on a remote registry and takes a values.yaml file as its input.

Successful checking of a chart with image: ghcr.io/openfaas/cron-connector:TAG:

arkade chart verify  -f ~/go/src/github.com/openfaas/faas-netes/chart/cron-connector/values.yaml

echo $?
0

There is an exit code of zero and no output when the check passes.

You can pass --verbose to see a detailed view of what's happening.

Checking of nested components, where two of the images do not exist autoscaler.image and dashboard.image:

arkade chart verify  -f ~/go/src/github.com/openfaas/faas-netes/chart/openfaas/values.yamlecho $?
2 images are missing in /Users/alex/go/src/github.com/openfaas/faas-netes/chart/openfaas/values.yaml

COMPONENT           IMAGE
dashboard           ghcr.io/openfaasltd/openfaas-dashboard:0.9.8
autoscaler          ghcr.io/openfaasltd/autoscaler:0.2.5

Error: verifying failed

echo $?
1

Supported:

Not supported yet:

Installing apps with arkade

You'll need a Kubernetes cluster to arkade. Unlike cloud-based marketplaces, arkade doesn't have any special pre-requirements and can be used with any private or public cluster.

Create a Kubernetes cluster

If you have Docker installed, then you can install Kubernetes using KinD in a matter of moments:

arkade get kubectl@v1.22.0 \
  kind@v0.11.1

kind create cluster

You can also download k3d k3s in the same way with arkade get k3d.

Install a Kubernetes app

No need to worry about whether you're installing to Intel or ARM architecture, the correct values will be set for you automatically.

arkade install openfaas \
  --gateways 2 \
  --load-balancer false

The post-installation message shows you how to connect. And whenever you want to see those details again, just run arkade info openfaas.

There are even more options you can choose with arkade install openfaas --help - the various flags you see map to settings from the helm chart README, that you'd usually have to look up and set via a values.yaml file.

If there's something missing from the list of flags that you need, arkade also supports --set for any arkade app that uses helm. Note that not every app uses helm.

Remember how awkward it was last time you installed the Kubernetes dashboard? And how you could never remember the command to get the token to log in?

arkade install kubernetes-dashboard

Forgot your token? arkade info kubernetes-dashboard

This is an example of an arkade app that uses static YAML manifests instead of helm.

Prefer Portainer? Just run: arkade install portainer

Uninstall an app

Run arkade uninstall or arkade delete for more information on how to remove applications from a Kubernetes cluster.

Reduce the repetition

Normally up to a dozen commands (including finding and downloading helm), now just one. No searching for the correct CRD to apply, no trying to install helm, no trying to find the correct helm repo to add:

arkade install cert-manager

Other common tools:

arkade install ingress-nginx

arkade install metrics-server

Say goodbye to values.yaml and hello to flags

We use strongly typed Go CLI flags, so that you can run --help instead of trawling through countless Helm chart README files to find the correct --set combination for what you want.

arkade install ingress-nginx --help

Install ingress-nginx. This app can be installed with Host networking for
cases where an external LB is not available. please see the --host-mode
flag and the ingress-nginx docs for more info

Usage:
  arkade install ingress-nginx [flags]

Aliases:
  ingress-nginx, nginx-ingress

Examples:
  arkade install ingress-nginx --namespace default

Flags:
  -h, --help               help for ingress-nginx
      --host-mode          If we should install ingress-nginx in host mode.
  -n, --namespace string   The namespace used for installation (default "default")
      --update-repo        Update the helm repo (default true)

Override with --set

You can also set helm overrides, for apps which use helm via --set

ark install openfaas --set faasIdler.dryRun=false

After installation, an info message will be printed with help for usage, you can get back to this at any time via:

arkade info <NAME>

Compounding apps

Apps are easier to discover and install than helm chart which involve many more manual steps, however when you compound apps together, they really save you time.

Get a self-hosted TLS registry with authentication

Here's how you can get a self-hosted Docker registry with TLS and authentication in just 5 commands on an empty cluster:

Here's how you would bootstrap OpenFaaS with TLS:

arkade install ingress-nginx
arkade install cert-manager
arkade install openfaas
arkade install openfaas-ingress \
  --email web@example.com \
  --domain openfaas.example.com

And here's what it looks like for a private Docker registry with authentication enabled:

arkade install ingress-nginx
arkade install cert-manager
arkade install docker-registry
arkade install docker-registry-ingress \
  --email web@example.com \
  --domain reg.example.com

Get a public IP for a private cluster and your IngressController

And if you're running on a private cloud, on-premises or on your laptop, you can simply add the inlets-operator using inlets to get a secure TCP tunnel and a public IP address.

arkade install inlets-operator \
  --access-token $HOME/digitalocean-token \
  --region lon1 \
  --provider digitalocean

This makes your cluster behave like it was on a public cloud and LoadBalancer IPs go from Pending to a real, functioning IP.

Explore the apps

You can view the various apps available with arkade install / --help, more are available when you run the command yourself.

arkade install --help
ark --help

Examples:
  arkade install
  arkade install openfaas --helm3 --gateways=2
  arkade install inlets-operator --token-file $HOME/do-token

See the full catalog of apps: See all apps

Community & contributing

Tutorials & community blog posts

Watch a video walk-through by Alex Ellis

Install Apps and CLIs to Kubernetes

Featured tutorials

Official blog posts

Community posts

Suggest a new app

To suggest a new app, please check past issues and raise an issue for it. Think also whether your app suggestion would be a good candidate for a Sponsored App.

Sponsored apps

You can now propose your project or product as a Sponsored App. Sponsored Apps work just like any other app that we've curated, however they will have a note next to them in the app description (sponsored) and a link to your chosen site upon installation. An app sponsorship can be purchased for a minimum of 12 months and includes free development of the Sponsored App, with ongoing support via GitHub for the Sponsored App for the duration only. Ongoing support will be limited to a set amount of hours per month.

When your sponsorship expires the Sponsored App will be removed from arkade, and the ongoing support will cease. A Sponsored App can be renewed 60 days prior to expiration subject to a separate agreement and payment.

Example:

arkade VENDOR install PRODUCT
arkade acmeco install dashboard

Contact OpenFaas Ltd to find out how you can have your Sponsored App added to arkade.

FAQ

How does arkade compare to helm?

In the same way that brew uses git and Makefiles to compile applications for your Mac, arkade uses upstream helm charts and kubectl to install applications to your Kubernetes cluster. arkade exposes strongly-typed flags for the various popular options for helm charts, and enables easier discovery through arkade install --help and arkade install APP --help.

Is arkade suitable for production use?

If you consider helm suitable, and kubectl then yes, arkade by definition uses those tools and the upstream artifacts of OSS projects.

Do you want to run arkade in a CI or CD pipeline? Go ahead.

What is in scope for arkade get?

Generally speaking, tools that are used with the various arkade apps or with Kubernetes are in scope. If you want to propose a tool, raise a GitHub issue.

What about package management? arkade get provides a faster alternative to package managers like apt and brew, you're free to use either or both at the same time.

Automatic download of tools

When required, tools, CLIs, and the helm binaries are downloaded and extracted to $HOME/.arkade.

If installing a tool which uses helm3, arkade will check for a cached version and use that, otherwise it will download it on demand.

Did you accidentally run arkade as root? Running as root is not required, and will mean your KUBECONFIG environment variable will be ignored. You can revert this using the notes on release 0.1.18.

Improving the code or fixing an issue

Before contributing code, please see the CONTRIBUTING guide. Note that arkade uses the same guide as inlets.dev.

Both Issues and PRs have their own templates. Please fill out the whole template.

All commits must be signed-off as part of the Developer Certificate of Origin (DCO)

Join us on Slack

Join #contributors at slack.openfaas.io

License

MIT

Catalog of apps and CLIs

An app is software or an add-on for your Kubernetes cluster.

A CLI or "tool" is a command line tool that you run directly on your own workstation or a CI runner.

Catalog of Apps

TOOLDESCRIPTION
argocdInstall argocd
cassandraInstall cassandra
cert-managerInstall cert-manager
chartInstall the specified helm chart
cockroachdbInstall CockroachDB
consul-connectInstall Consul Service Mesh
cron-connectorInstall cron-connector for OpenFaaS
crossplaneInstall Crossplane
docker-registryInstall a community maintained Docker registry chart
docker-registry-ingressInstall registry ingress with TLS
falcoInstall Falco
giteaInstall gitea
gitlabInstall GitLab
grafanaInstall grafana
influxdbInstall influxdb
ingress-nginxInstall ingress-nginx
inlets-operatorInstall inlets-operator
istioInstall istio
jenkinsInstall jenkins
kafkaInstall Confluent Platform Kafka
kafka-connectorInstall kafka-connector for OpenFaaS
kong-ingressInstall kong-ingress for OpenFaaS
kube-image-prefetchInstall kube-image-prefetch
kube-state-metricsInstall kube-state-metrics
kubernetes-dashboardInstall kubernetes-dashboard
kumaInstall Kuma
kyvernoInstall Kyverno
linkerdInstall linkerd
lokiInstall Loki for monitoring and tracing
metallb-arpInstall MetalLB in L2 (ARP) mode
metrics-serverInstall metrics-server
minioInstall minio
mongodbInstall mongodb
mqtt-connectorInstall mqtt-connector for OpenFaaS
nats-connectorInstall OpenFaaS connector for NATS
nfs-provisionerInstall nfs subdir external provisioner
opa-gatekeeperInstall Open Policy Agent (OPA) Gatekeeper
openfaasInstall openfaas
openfaas-ingressInstall openfaas ingress with TLS
openfaas-lokiInstall Loki-OpenFaaS and Configure Loki logs provider for OpenFaaS
portainerInstall portainer to visualise and manage containers
postgresqlInstall postgresql
prometheusInstall Prometheus for monitoring
qemu-staticInstall qemu-user-static
rabbitmqInstall rabbitmq
redisInstall redis
registry-credsInstall registry-creds
sealed-secretInstall sealed-secrets
tektonInstall Tekton pipelines and dashboard
traefik2Install traefik2
vaultInstall vault
waypointInstall Waypoint

There are 52 apps that you can install on your cluster.

Note to contributors, run go build && ./arkade install --print-table to generate this list

Catalog of CLIs

TOOLDESCRIPTION
actions-usageGet usage insights from GitHub Actions.
actuated-cliOfficial CLI for actuated.dev
argocdDeclarative, GitOps continuous delivery tool for Kubernetes.
argocd-autopilotAn opinionated way of installing Argo-CD and managing GitOps repositories.
arkadePortable marketplace for downloading your favourite DevOps CLIs and installing helm charts, with a single command.
atuinSync, search, and backup shell history with Atuin.
autok3sRun Rancher Lab's lightweight Kubernetes distribution k3s everywhere.
buildxDocker CLI plugin for extended build capabilities with BuildKit.
bunBun is an incredibly fast JavaScript runtime, bundler, transpiler, and package manager – all in one.
butaneTranslates human readable Butane Configs into machine readable Ignition Configs
caddyCaddy is an extensible server platform that uses TLS by default
ch-remoteThe ch-remote binary is used for controlling an running Virtual Machine.
ciliumCLI to install, manage & troubleshoot Kubernetes clusters running Cilium.
civoCLI for interacting with your Civo resources.
cloud-hypervisorCloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of the KVM hypervisor and the Microsoft Hypervisor (MSHV).
clusterawsadmKubernetes Cluster API Provider AWS Management Utility
clusterctlThe clusterctl CLI tool handles the lifecycle of a Cluster API management cluster
cmctlcmctl is a CLI tool that helps you manage cert-manager and its resources inside your cluster.
conftestWrite tests against structured configuration data using the Open Policy Agent Rego query language
consulA solution to connect and configure applications across dynamic, distributed infrastructure
copaCLI for patching container images
cosignContainer Signing, Verification and Storage in an OCI registry.
crHosting Helm Charts via GitHub Pages and Releases
cranecrane is a tool for interacting with remote images and registries
crocEasily and securely send things from one computer to another
crossplaneSimplify some development and administration aspects of Crossplane.
daggerA portable devkit for CI/CD pipelines.
devspaceAutomate your deployment workflow with DevSpace and develop software directly inside Kubernetes.
diveA tool for exploring each layer in a docker image
docker-composeDefine and run multi-container applications with Docker.
doctlOfficial command line interface for the DigitalOcean API.
duplik8skubectl plugin to duplicate resources in a Kubernetes cluster.
eks-node-viewereks-node-viewer is a tool for visualizing dynamic node usage within an EKS cluster.
eksctlAmazon EKS Kubernetes cluster management
eksctl-anywhereRun Amazon EKS on your own infrastructure
etcdDistributed reliable key-value store for the most critical data of a distributed system.
faas-cliOfficial CLI for OpenFaaS.
faasdfaasd - a lightweight & portable faas engine
firectlCommand-line tool that lets you run arbitrary Firecracker MicroVMs
fluxContinuous Delivery solution for Kubernetes powered by GitOps Toolkit.
flyctlCommand line tools for fly.io services
fstailTail modified files in a directory.
fzfGeneral-purpose command-line fuzzy finder
ghGitHub’s official command line tool.
glabA GitLab CLI tool bringing GitLab to your command line.
golangci-lintGo linters aggregator.
gomplateA flexible commandline tool for template rendering. Supports lots of local and remote datasources.
goreleaserDeliver Go binaries as fast and easily as possible
gptscriptNatural Language Programming
grafana-agentGrafana Agent is a telemetry collector for sending metrics, logs, and trace data to the opinionated Grafana observability stack.
grypeA vulnerability scanner for container images and filesystems
hadolintA smarter Dockerfile linter that helps you build best practice Docker images
helmThe Kubernetes Package Manager: Think of it like apt/yum/homebrew for Kubernetes.
helmfileDeploy Kubernetes Helm Charts
heyLoad testing tool
hostctlDev tool to manage /etc/hosts like a pro!
hubbleCLI for network, service & security observability for Kubernetes clusters running Cilium.
hugoStatic HTML and CSS website generator.
influxInfluxDB’s command line interface (influx) is an interactive shell for the HTTP API.
inlets-proCloud Native Tunnel for HTTP and TCP traffic.
inletsctlAutomates the task of creating an exit-server (tunnel server) on public cloud infrastructure.
istioctlService Mesh to establish a programmable, application-aware network using the Envoy service proxy.
jqjq is a lightweight and flexible command-line JSON processor
justJust a command runner
k0sZero Friction Kubernetes
k0sctlA bootstrapping and management tool for k0s clusters
k3dHelper to run Rancher Lab's k3s in Docker.
k3sLightweight Kubernetes
k3supBootstrap Kubernetes with k3s over SSH < 1 min.
k9sProvides a terminal UI to interact with your Kubernetes clusters.
kailKubernetes log viewer.
keployTest generation for Developers. Generate tests and stubs for your application that actually work!
kgctlA CLI to manage Kilo, a multi-cloud network overlay built on WireGuard and designed for Kubernetes.
kimBuild container images inside of Kubernetes. (Experimental)
kindRun local Kubernetes clusters using Docker container nodes.
kopsProduction Grade K8s Installation, Upgrades, and Management.
krewPackage manager for kubectl plugins.
ktopA top-like tool for your Kubernetes cluster.
kube-benchChecks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark.
kube-burnerA tool aimed at stressing Kubernetes clusters by creating or deleting a high quantity of objects.
kube-linterKubeLinter is a static analysis tool that checks Kubernetes YAML files and Helm charts to ensure the applications represented in them adhere to best practices.
kube-scoreA tool that performs static code analysis of your Kubernetes object definitions.
kubebuilderFramework for building Kubernetes APIs using custom resource definitions (CRDs).
kubecmEasier management of kubeconfig.
kubecolorKubeColor is a kubectl replacement used to add colors to your kubectl output.
kubeconformA FAST Kubernetes manifests validator, with support for Custom Resources
kubectlRun commands against Kubernetes clusters
kubectxFaster way to switch between clusters.
kubensSwitch between Kubernetes namespaces smoothly.
kubescapekubescape is the first tool for testing if Kubernetes is deployed securely as defined in Kubernetes Hardening Guidance by NSA and CISA
kubesealA Kubernetes controller and tool for one-way encrypted Secrets
kubetailBash script to tail Kubernetes logs from multiple pods at the same time.
kubetrimTidy up old Kubernetes clusters from kubeconfig.
kubevalValidate your Kubernetes configuration files, supports multiple Kubernetes versions
kubieA more powerful alternative to kubectx and kubens
kumactlkumactl is a CLI to interact with Kuma and its data
kustomizeCustomization of kubernetes YAML configurations
kwokKWOK stands for Kubernetes WithOut Kubelet, responsible for simulating the lifecycle of fake nodes, pods, and other Kubernetes API resources
kwokctlCLI tool designed to streamline the creation and management of clusters, with nodes simulated by kwok
kyvernoCLI to apply and test Kyverno policies outside a cluster.
labctliximiuz Labs control - start remote microVM playgrounds from the command line.
lazydockerA simple terminal UI for both docker and docker-compose, written in Go with the gocui library.
lazygitA simple terminal UI for git commands.
linkerd2Ultralight, security-first service mesh for Kubernetes.
mcMinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage.
metalOfficial Equinix Metal CLI
minikubeRuns the latest stable release of Kubernetes, with support for standard Kubernetes features.
mixctlA tiny TCP load-balancer.
mkcertA simple zero-config tool to make locally trusted development certificates with any names you'd like.
natsUtility to interact with and manage NATS.
nats-serverCloud native message bus and queue server
nerdctlDocker-compatible CLI for containerd, with support for Compose
novaFind outdated or deprecated Helm charts running in your cluster.
ocClient to use an OpenShift 4.x cluster.
oh-my-poshA prompt theme engine for any shell that can display kubernetes information.
op1Password CLI enables you to automate administrative tasks and securely provision secrets across development environments.
opaGeneral-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack.
openshift-installCLI to install an OpenShift 4.x cluster.
operator-sdkOperator SDK is a tool for scaffolding and generating code for building Kubernetes operators
osmOpen Service Mesh uniformly manages, secures, and gets out-of-the-box observability features.
packBuild apps using Cloud Native Buildpacks.
packerBuild identical machine images for multiple platforms from a single source configuration.
polarisRun checks to ensure Kubernetes pods and controllers are configured using best practices.
popeyeScans live Kubernetes cluster and reports potential issues with deployed resources and configurations.
porterWith Porter you can package your application artifact, tools, etc. as a bundle that can distribute and install.
promtoolPrometheus rule tester and debugging utility
rclone'rsync for cloud storage' - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files
regctlUtility for accessing docker registries
rekor-cliSecure Supply Chain - Transparency Log
replicatedCLI for interacting with the Replicated Vendor API
rosaRed Hat OpenShift on AWS (ROSA) command line tool
rpkKafka compatible streaming platform for mission critical workloads.
run-jobRun a Kubernetes Job and get the logs when it's done.
scaleway-cliScaleway CLI is a tool to help you pilot your Scaleway infrastructure directly from your terminal.
seaweedfsSeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files!
skupperSkupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication
snowmachineFestive cheer for your terminal.
sopsSimple and flexible tool for managing secrets
sternMulti pod and container log tailing for Kubernetes.
syftCLI tool and library for generating a Software Bill of Materials from container images and filesystems
talosctlThe command-line tool for managing Talos Linux OS.
taskA simple task runner and build tool
tctlTemporal CLI.
terraformInfrastructure as Code for major cloud providers.
terraform-docsGenerate documentation from Terraform modules in various output formats.
terragruntTerragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules
terrascanDetect compliance and security violations across Infrastructure as Code.
tflintA Pluggable Terraform Linter.
tfsecSecurity scanner for your Terraform code
tiltA multi-service dev environment for teams on Kubernetes.
timoniA package manager for Kubernetes powered by CUE.
tknA CLI for interacting with Tekton.
tofuOpenTofu lets you declaratively manage your cloud infrastructure
trivyVulnerability Scanner for Containers and other Artifacts, Suitable for CI.
vagrantTool for building and distributing development environments.
vaultA tool for secrets management, encryption as a service, and privileged access management.
vclusterCreate fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster.
vhsCLI for recording demos
viddyA modern watch command. Time machine and pager etc.
waypointEasy application deployment for Kubernetes and Amazon ECS
yqPortable command-line YAML processor.
yt-dlpFork of youtube-dl with additional features and fixes
There are 162 tools, use arkade get NAME to download one.

Note to contributors, run go build && ./arkade get --format markdown to generate this list