From b0cf2fbdb9986f1c5a0413442c52599458bcae81 Mon Sep 17 00:00:00 2001 From: Richard Gee Date: Tue, 5 Nov 2024 22:00:53 +0000 Subject: [PATCH] feat: add rclone, kubie & EKS-node-viewer Signed-off-by: Richard Gee --- README.md | 328 ++++++++++++++++++++++---------------------- pkg/get/get_test.go | 161 ++++++++++++++++++++++ pkg/get/tools.go | 85 ++++++++++++ 3 files changed, 411 insertions(+), 163 deletions(-) diff --git a/README.md b/README.md index c7b0e9633..72d3c851f 100644 --- a/README.md +++ b/README.md @@ -756,168 +756,170 @@ There are 52 apps that you can install on your cluster. ### Catalog of CLIs -| TOOL | DESCRIPTION | -|------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------| -| [actions-usage](https://github.com/self-actuated/actions-usage) | Get usage insights from GitHub Actions. | -| [actuated-cli](https://github.com/self-actuated/actuated-cli) | Official CLI for actuated.dev | -| [argocd](https://github.com/argoproj/argo-cd) | Declarative, GitOps continuous delivery tool for Kubernetes. | -| [argocd-autopilot](https://github.com/argoproj-labs/argocd-autopilot) | An opinionated way of installing Argo-CD and managing GitOps repositories. | -| [arkade](https://github.com/alexellis/arkade) | Portable marketplace for downloading your favourite DevOps CLIs and installing helm charts, with a single command. | -| [atuin](https://github.com/atuinsh/atuin) | Sync, search, and backup shell history with Atuin. | -| [autok3s](https://github.com/cnrancher/autok3s) | Run Rancher Lab's lightweight Kubernetes distribution k3s everywhere. | -| [buildx](https://github.com/docker/buildx) | Docker CLI plugin for extended build capabilities with BuildKit. | -| [bun](https://github.com/oven-sh/bun) | Bun is an incredibly fast JavaScript runtime, bundler, transpiler, and package manager – all in one. | -| [butane](https://github.com/coreos/butane) | Translates human readable Butane Configs into machine readable Ignition Configs | -| [caddy](https://github.com/caddyserver/caddy) | Caddy is an extensible server platform that uses TLS by default | -| [ch-remote](https://github.com/cloud-hypervisor/cloud-hypervisor) | The ch-remote binary is used for controlling an running Virtual Machine. | -| [cilium](https://github.com/cilium/cilium-cli) | CLI to install, manage & troubleshoot Kubernetes clusters running Cilium. | -| [civo](https://github.com/civo/cli) | CLI for interacting with your Civo resources. | -| [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) | Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of the KVM hypervisor and the Microsoft Hypervisor (MSHV). | -| [clusterawsadm](https://github.com/kubernetes-sigs/cluster-api-provider-aws) | Kubernetes Cluster API Provider AWS Management Utility | -| [clusterctl](https://github.com/kubernetes-sigs/cluster-api) | The clusterctl CLI tool handles the lifecycle of a Cluster API management cluster | -| [cmctl](https://github.com/cert-manager/cmctl) | cmctl is a CLI tool that helps you manage cert-manager and its resources inside your cluster. | -| [conftest](https://github.com/open-policy-agent/conftest) | Write tests against structured configuration data using the Open Policy Agent Rego query language | -| [consul](https://github.com/hashicorp/consul) | A solution to connect and configure applications across dynamic, distributed infrastructure | -| [copa](https://github.com/project-copacetic/copacetic) | CLI for patching container images | -| [cosign](https://github.com/sigstore/cosign) | Container Signing, Verification and Storage in an OCI registry. | -| [cr](https://github.com/helm/chart-releaser) | Hosting Helm Charts via GitHub Pages and Releases | -| [crane](https://github.com/google/go-containerregistry) | crane is a tool for interacting with remote images and registries | -| [croc](https://github.com/schollz/croc) | Easily and securely send things from one computer to another | -| [crossplane](https://github.com/crossplane/crossplane) | Simplify some development and administration aspects of Crossplane. | -| [dagger](https://github.com/dagger/dagger) | A portable devkit for CI/CD pipelines. | -| [devspace](https://github.com/devspace-sh/devspace) | Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes. | -| [dive](https://github.com/wagoodman/dive) | A tool for exploring each layer in a docker image | -| [docker-compose](https://github.com/docker/compose) | Define and run multi-container applications with Docker. | -| [doctl](https://github.com/digitalocean/doctl) | Official command line interface for the DigitalOcean API. | -| [duplik8s](https://github.com/Telemaco019/duplik8s) | kubectl plugin to duplicate resources in a Kubernetes cluster. | -| [eksctl](https://github.com/eksctl-io/eksctl) | Amazon EKS Kubernetes cluster management | -| [eksctl-anywhere](https://github.com/aws/eks-anywhere) | Run Amazon EKS on your own infrastructure | -| [etcd](https://github.com/etcd-io/etcd) | Distributed reliable key-value store for the most critical data of a distributed system. | -| [faas-cli](https://github.com/openfaas/faas-cli) | Official CLI for OpenFaaS. | -| [faasd](https://github.com/openfaas/faasd) | faasd - a lightweight & portable faas engine | -| [firectl](https://github.com/firecracker-microvm/firectl) | Command-line tool that lets you run arbitrary Firecracker MicroVMs | -| [flux](https://github.com/fluxcd/flux2) | Continuous Delivery solution for Kubernetes powered by GitOps Toolkit. | -| [flyctl](https://github.com/superfly/flyctl) | Command line tools for fly.io services | -| [fstail](https://github.com/alexellis/fstail) | Tail modified files in a directory. | -| [fzf](https://github.com/junegunn/fzf) | General-purpose command-line fuzzy finder | -| [gh](https://github.com/cli/cli) | GitHub’s official command line tool. | -| [glab](https://github.com/gitlab-org/cli) | A GitLab CLI tool bringing GitLab to your command line. | -| [golangci-lint](https://github.com/golangci/golangci-lint) | Go linters aggregator. | -| [gomplate](https://github.com/hairyhenderson/gomplate) | A flexible commandline tool for template rendering. Supports lots of local and remote datasources. | -| [goreleaser](https://github.com/goreleaser/goreleaser) | Deliver Go binaries as fast and easily as possible | -| [gptscript](https://github.com/gptscript-ai/gptscript) | Natural Language Programming | -| [grafana-agent](https://github.com/grafana/agent) | Grafana Agent is a telemetry collector for sending metrics, logs, and trace data to the opinionated Grafana observability stack. | -| [grype](https://github.com/anchore/grype) | A vulnerability scanner for container images and filesystems | -| [hadolint](https://github.com/hadolint/hadolint) | A smarter Dockerfile linter that helps you build best practice Docker images | -| [helm](https://github.com/helm/helm) | The Kubernetes Package Manager: Think of it like apt/yum/homebrew for Kubernetes. | -| [helmfile](https://github.com/helmfile/helmfile) | Deploy Kubernetes Helm Charts | -| [hey](https://github.com/alexellis/hey) | Load testing tool | -| [hostctl](https://github.com/guumaster/hostctl) | Dev tool to manage /etc/hosts like a pro! | -| [hubble](https://github.com/cilium/hubble) | CLI for network, service & security observability for Kubernetes clusters running Cilium. | -| [hugo](https://github.com/gohugoio/hugo) | Static HTML and CSS website generator. | -| [influx](https://github.com/influxdata/influxdb) | InfluxDB’s command line interface (influx) is an interactive shell for the HTTP API. | -| [inlets-pro](https://github.com/inlets/inlets-pro) | Cloud Native Tunnel for HTTP and TCP traffic. | -| [inletsctl](https://github.com/inlets/inletsctl) | Automates the task of creating an exit-server (tunnel server) on public cloud infrastructure. | -| [istioctl](https://github.com/istio/istio) | Service Mesh to establish a programmable, application-aware network using the Envoy service proxy. | -| [jq](https://github.com/jqlang/jq) | jq is a lightweight and flexible command-line JSON processor | -| [just](https://github.com/casey/just) | Just a command runner | -| [k0s](https://github.com/k0sproject/k0s) | Zero Friction Kubernetes | -| [k0sctl](https://github.com/k0sproject/k0sctl) | A bootstrapping and management tool for k0s clusters | -| [k3d](https://github.com/k3d-io/k3d) | Helper to run Rancher Lab's k3s in Docker. | -| [k3s](https://github.com/k3s-io/k3s) | Lightweight Kubernetes | -| [k3sup](https://github.com/alexellis/k3sup) | Bootstrap Kubernetes with k3s over SSH < 1 min. | -| [k9s](https://github.com/derailed/k9s) | Provides a terminal UI to interact with your Kubernetes clusters. | -| [kail](https://github.com/boz/kail) | Kubernetes log viewer. | -| [keploy](https://github.com/keploy/keploy) | Test generation for Developers. Generate tests and stubs for your application that actually work! | -| [kgctl](https://github.com/squat/kilo) | A CLI to manage Kilo, a multi-cloud network overlay built on WireGuard and designed for Kubernetes. | -| [kim](https://github.com/rancher/kim) | Build container images inside of Kubernetes. (Experimental) | -| [kind](https://github.com/kubernetes-sigs/kind) | Run local Kubernetes clusters using Docker container nodes. | -| [kops](https://github.com/kubernetes/kops) | Production Grade K8s Installation, Upgrades, and Management. | -| [krew](https://github.com/kubernetes-sigs/krew) | Package manager for kubectl plugins. | -| [ktop](https://github.com/vladimirvivien/ktop) | A top-like tool for your Kubernetes cluster. | -| [kube-bench](https://github.com/aquasecurity/kube-bench) | Checks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark. | -| [kube-burner](https://github.com/cloud-bulldozer/kube-burner) | A tool aimed at stressing Kubernetes clusters by creating or deleting a high quantity of objects. | -| [kube-linter](https://github.com/stackrox/kube-linter) | KubeLinter 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-score](https://github.com/zegl/kube-score) | A tool that performs static code analysis of your Kubernetes object definitions. | -| [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) | Framework for building Kubernetes APIs using custom resource definitions (CRDs). | -| [kubecm](https://github.com/sunny0826/kubecm) | Easier management of kubeconfig. | -| [kubecolor](https://github.com/kubecolor/kubecolor) | KubeColor is a kubectl replacement used to add colors to your kubectl output. | -| [kubeconform](https://github.com/yannh/kubeconform) | A FAST Kubernetes manifests validator, with support for Custom Resources | -| [kubectl](https://github.com/kubernetes/kubernetes) | Run commands against Kubernetes clusters | -| [kubectx](https://github.com/ahmetb/kubectx) | Faster way to switch between clusters. | -| [kubens](https://github.com/ahmetb/kubectx) | Switch between Kubernetes namespaces smoothly. | -| [kubescape](https://github.com/kubescape/kubescape) | kubescape is the first tool for testing if Kubernetes is deployed securely as defined in Kubernetes Hardening Guidance by NSA and CISA | -| [kubeseal](https://github.com/bitnami-labs/sealed-secrets) | A Kubernetes controller and tool for one-way encrypted Secrets | -| [kubetail](https://github.com/johanhaleby/kubetail) | Bash script to tail Kubernetes logs from multiple pods at the same time. | -| [kubetrim](https://github.com/alexellis/kubetrim) | Tidy up old Kubernetes clusters from kubeconfig. | -| [kubeval](https://github.com/instrumenta/kubeval) | Validate your Kubernetes configuration files, supports multiple Kubernetes versions | -| [kumactl](https://github.com/kumahq/kuma) | kumactl is a CLI to interact with Kuma and its data | -| [kustomize](https://github.com/kubernetes-sigs/kustomize) | Customization of kubernetes YAML configurations | -| [kwok](https://github.com/kubernetes-sigs/kwok) | KWOK stands for Kubernetes WithOut Kubelet, responsible for simulating the lifecycle of fake nodes, pods, and other Kubernetes API resources | -| [kwokctl](https://github.com/kubernetes-sigs/kwok) | CLI tool designed to streamline the creation and management of clusters, with nodes simulated by `kwok` | -| [kyverno](https://github.com/kyverno/kyverno) | CLI to apply and test Kyverno policies outside a cluster. | -| [labctl](https://github.com/iximiuz/labctl) | iximiuz Labs control - start remote microVM playgrounds from the command line. | -| [lazydocker](https://github.com/jesseduffield/lazydocker) | A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. | -| [lazygit](https://github.com/jesseduffield/lazygit) | A simple terminal UI for git commands. | -| [linkerd2](https://github.com/linkerd/linkerd2) | Ultralight, security-first service mesh for Kubernetes. | -| [mc](https://github.com/minio/mc) | MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage. | -| [metal](https://github.com/equinix/metal-cli) | Official Equinix Metal CLI | -| [minikube](https://github.com/kubernetes/minikube) | Runs the latest stable release of Kubernetes, with support for standard Kubernetes features. | -| [mixctl](https://github.com/inlets/mixctl) | A tiny TCP load-balancer. | -| [mkcert](https://github.com/FiloSottile/mkcert) | A simple zero-config tool to make locally trusted development certificates with any names you'd like. | -| [nats](https://github.com/nats-io/natscli) | Utility to interact with and manage NATS. | -| [nats-server](https://github.com/nats-io/nats-server) | Cloud native message bus and queue server | -| [nerdctl](https://github.com/containerd/nerdctl) | Docker-compatible CLI for containerd, with support for Compose | -| [nova](https://github.com/FairwindsOps/nova) | Find outdated or deprecated Helm charts running in your cluster. | -| [oc](https://github.com/openshift/oc) | Client to use an OpenShift 4.x cluster. | -| [oh-my-posh](https://github.com/jandedobbeleer/oh-my-posh) | A prompt theme engine for any shell that can display kubernetes information. | -| [op](https://github.com/1password/) | 1Password CLI enables you to automate administrative tasks and securely provision secrets across development environments. | -| [opa](https://github.com/open-policy-agent/opa) | General-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack. | -| [openshift-install](https://github.com/openshift/installer) | CLI to install an OpenShift 4.x cluster. | -| [operator-sdk](https://github.com/operator-framework/operator-sdk) | Operator SDK is a tool for scaffolding and generating code for building Kubernetes operators | -| [osm](https://github.com/openservicemesh/osm) | Open Service Mesh uniformly manages, secures, and gets out-of-the-box observability features. | -| [pack](https://github.com/buildpacks/pack) | Build apps using Cloud Native Buildpacks. | -| [packer](https://github.com/hashicorp/packer) | Build identical machine images for multiple platforms from a single source configuration. | -| [polaris](https://github.com/FairwindsOps/polaris) | Run checks to ensure Kubernetes pods and controllers are configured using best practices. | -| [popeye](https://github.com/derailed/popeye) | Scans live Kubernetes cluster and reports potential issues with deployed resources and configurations. | -| [porter](https://github.com/getporter/porter) | With Porter you can package your application artifact, tools, etc. as a bundle that can distribute and install. | -| [promtool](https://github.com/prometheus/prometheus) | Prometheus rule tester and debugging utility | -| [regctl](https://github.com/regclient/regclient) | Utility for accessing docker registries | -| [rekor-cli](https://github.com/sigstore/rekor) | Secure Supply Chain - Transparency Log | -| [replicated](https://github.com/replicatedhq/replicated) | CLI for interacting with the Replicated Vendor API | -| [rosa](https://github.com/openshift/rosa) | Red Hat OpenShift on AWS (ROSA) command line tool | -| [rpk](https://github.com/redpanda-data/redpanda) | Kafka compatible streaming platform for mission critical workloads. | -| [run-job](https://github.com/alexellis/run-job) | Run a Kubernetes Job and get the logs when it's done. | -| [scaleway-cli](https://github.com/scaleway/scaleway-cli) | Scaleway CLI is a tool to help you pilot your Scaleway infrastructure directly from your terminal. | -| [seaweedfs](https://github.com/seaweedfs/seaweedfs) | SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! | -| [skupper](https://github.com/skupperproject/skupper) | Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication | -| [snowmachine](https://github.com/rgee0/snowmachine) | Festive cheer for your terminal. | -| [sops](https://github.com/getsops/sops) | Simple and flexible tool for managing secrets | -| [stern](https://github.com/stern/stern) | Multi pod and container log tailing for Kubernetes. | -| [syft](https://github.com/anchore/syft) | CLI tool and library for generating a Software Bill of Materials from container images and filesystems | -| [talosctl](https://github.com/siderolabs/talos) | The command-line tool for managing Talos Linux OS. | -| [task](https://github.com/go-task/task) | A simple task runner and build tool | -| [tctl](https://github.com/temporalio/tctl) | Temporal CLI. | -| [terraform](https://github.com/hashicorp/terraform) | Infrastructure as Code for major cloud providers. | -| [terraform-docs](https://github.com/terraform-docs/terraform-docs) | Generate documentation from Terraform modules in various output formats. | -| [terragrunt](https://github.com/gruntwork-io/terragrunt) | Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules | -| [terrascan](https://github.com/tenable/terrascan) | Detect compliance and security violations across Infrastructure as Code. | -| [tflint](https://github.com/terraform-linters/tflint) | A Pluggable Terraform Linter. | -| [tfsec](https://github.com/aquasecurity/tfsec) | Security scanner for your Terraform code | -| [tilt](https://github.com/tilt-dev/tilt) | A multi-service dev environment for teams on Kubernetes. | -| [timoni](https://github.com/stefanprodan/timoni) | A package manager for Kubernetes powered by CUE. | -| [tkn](https://github.com/tektoncd/cli) | A CLI for interacting with Tekton. | -| [tofu](https://github.com/opentofu/opentofu) | OpenTofu lets you declaratively manage your cloud infrastructure | -| [trivy](https://github.com/aquasecurity/trivy) | Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. | -| [vagrant](https://github.com/hashicorp/vagrant) | Tool for building and distributing development environments. | -| [vault](https://github.com/hashicorp/vault) | A tool for secrets management, encryption as a service, and privileged access management. | -| [vcluster](https://github.com/loft-sh/vcluster) | Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. | -| [vhs](https://github.com/charmbracelet/vhs) | CLI for recording demos | -| [viddy](https://github.com/sachaos/viddy) | A modern watch command. Time machine and pager etc. | -| [waypoint](https://github.com/hashicorp/waypoint) | Easy application deployment for Kubernetes and Amazon ECS | -| [yq](https://github.com/mikefarah/yq) | Portable command-line YAML processor. | -| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Fork of youtube-dl with additional features and fixes | - -There are 159 tools, use `arkade get NAME` to download one. +| TOOL | DESCRIPTION | +|------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| [actions-usage](https://github.com/self-actuated/actions-usage) | Get usage insights from GitHub Actions. | +| [actuated-cli](https://github.com/self-actuated/actuated-cli) | Official CLI for actuated.dev | +| [argocd](https://github.com/argoproj/argo-cd) | Declarative, GitOps continuous delivery tool for Kubernetes. | +| [argocd-autopilot](https://github.com/argoproj-labs/argocd-autopilot) | An opinionated way of installing Argo-CD and managing GitOps repositories. | +| [arkade](https://github.com/alexellis/arkade) | Portable marketplace for downloading your favourite DevOps CLIs and installing helm charts, with a single command. | +| [atuin](https://github.com/atuinsh/atuin) | Sync, search, and backup shell history with Atuin. | +| [autok3s](https://github.com/cnrancher/autok3s) | Run Rancher Lab's lightweight Kubernetes distribution k3s everywhere. | +| [buildx](https://github.com/docker/buildx) | Docker CLI plugin for extended build capabilities with BuildKit. | +| [bun](https://github.com/oven-sh/bun) | Bun is an incredibly fast JavaScript runtime, bundler, transpiler, and package manager – all in one. | +| [butane](https://github.com/coreos/butane) | Translates human readable Butane Configs into machine readable Ignition Configs | +| [caddy](https://github.com/caddyserver/caddy) | Caddy is an extensible server platform that uses TLS by default | +| [ch-remote](https://github.com/cloud-hypervisor/cloud-hypervisor) | The ch-remote binary is used for controlling an running Virtual Machine. | +| [cilium](https://github.com/cilium/cilium-cli) | CLI to install, manage & troubleshoot Kubernetes clusters running Cilium. | +| [civo](https://github.com/civo/cli) | CLI for interacting with your Civo resources. | +| [cloud-hypervisor](https://github.com/cloud-hypervisor/cloud-hypervisor) | Cloud Hypervisor is an open source Virtual Machine Monitor (VMM) that runs on top of the KVM hypervisor and the Microsoft Hypervisor (MSHV). | +| [clusterawsadm](https://github.com/kubernetes-sigs/cluster-api-provider-aws) | Kubernetes Cluster API Provider AWS Management Utility | +| [clusterctl](https://github.com/kubernetes-sigs/cluster-api) | The clusterctl CLI tool handles the lifecycle of a Cluster API management cluster | +| [cmctl](https://github.com/cert-manager/cmctl) | cmctl is a CLI tool that helps you manage cert-manager and its resources inside your cluster. | +| [conftest](https://github.com/open-policy-agent/conftest) | Write tests against structured configuration data using the Open Policy Agent Rego query language | +| [consul](https://github.com/hashicorp/consul) | A solution to connect and configure applications across dynamic, distributed infrastructure | +| [copa](https://github.com/project-copacetic/copacetic) | CLI for patching container images | +| [cosign](https://github.com/sigstore/cosign) | Container Signing, Verification and Storage in an OCI registry. | +| [cr](https://github.com/helm/chart-releaser) | Hosting Helm Charts via GitHub Pages and Releases | +| [crane](https://github.com/google/go-containerregistry) | crane is a tool for interacting with remote images and registries | +| [croc](https://github.com/schollz/croc) | Easily and securely send things from one computer to another | +| [crossplane](https://github.com/crossplane/crossplane) | Simplify some development and administration aspects of Crossplane. | +| [dagger](https://github.com/dagger/dagger) | A portable devkit for CI/CD pipelines. | +| [devspace](https://github.com/devspace-sh/devspace) | Automate your deployment workflow with DevSpace and develop software directly inside Kubernetes. | +| [dive](https://github.com/wagoodman/dive) | A tool for exploring each layer in a docker image | +| [docker-compose](https://github.com/docker/compose) | Define and run multi-container applications with Docker. | +| [doctl](https://github.com/digitalocean/doctl) | Official command line interface for the DigitalOcean API. | +| [duplik8s](https://github.com/Telemaco019/duplik8s) | kubectl plugin to duplicate resources in a Kubernetes cluster. | +| [eks-node-viewer](https://github.com/awslabs/eks-node-viewer) | eks-node-viewer is a tool for visualizing dynamic node usage within an EKS cluster. | +| [eksctl](https://github.com/eksctl-io/eksctl) | Amazon EKS Kubernetes cluster management | +| [eksctl-anywhere](https://github.com/aws/eks-anywhere) | Run Amazon EKS on your own infrastructure | +| [etcd](https://github.com/etcd-io/etcd) | Distributed reliable key-value store for the most critical data of a distributed system. | +| [faas-cli](https://github.com/openfaas/faas-cli) | Official CLI for OpenFaaS. | +| [faasd](https://github.com/openfaas/faasd) | faasd - a lightweight & portable faas engine | +| [firectl](https://github.com/firecracker-microvm/firectl) | Command-line tool that lets you run arbitrary Firecracker MicroVMs | +| [flux](https://github.com/fluxcd/flux2) | Continuous Delivery solution for Kubernetes powered by GitOps Toolkit. | +| [flyctl](https://github.com/superfly/flyctl) | Command line tools for fly.io services | +| [fstail](https://github.com/alexellis/fstail) | Tail modified files in a directory. | +| [fzf](https://github.com/junegunn/fzf) | General-purpose command-line fuzzy finder | +| [gh](https://github.com/cli/cli) | GitHub’s official command line tool. | +| [glab](https://github.com/gitlab-org/cli) | A GitLab CLI tool bringing GitLab to your command line. | +| [golangci-lint](https://github.com/golangci/golangci-lint) | Go linters aggregator. | +| [gomplate](https://github.com/hairyhenderson/gomplate) | A flexible commandline tool for template rendering. Supports lots of local and remote datasources. | +| [goreleaser](https://github.com/goreleaser/goreleaser) | Deliver Go binaries as fast and easily as possible | +| [gptscript](https://github.com/gptscript-ai/gptscript) | Natural Language Programming | +| [grafana-agent](https://github.com/grafana/agent) | Grafana Agent is a telemetry collector for sending metrics, logs, and trace data to the opinionated Grafana observability stack. | +| [grype](https://github.com/anchore/grype) | A vulnerability scanner for container images and filesystems | +| [hadolint](https://github.com/hadolint/hadolint) | A smarter Dockerfile linter that helps you build best practice Docker images | +| [helm](https://github.com/helm/helm) | The Kubernetes Package Manager: Think of it like apt/yum/homebrew for Kubernetes. | +| [helmfile](https://github.com/helmfile/helmfile) | Deploy Kubernetes Helm Charts | +| [hey](https://github.com/alexellis/hey) | Load testing tool | +| [hostctl](https://github.com/guumaster/hostctl) | Dev tool to manage /etc/hosts like a pro! | +| [hubble](https://github.com/cilium/hubble) | CLI for network, service & security observability for Kubernetes clusters running Cilium. | +| [hugo](https://github.com/gohugoio/hugo) | Static HTML and CSS website generator. | +| [influx](https://github.com/influxdata/influxdb) | InfluxDB’s command line interface (influx) is an interactive shell for the HTTP API. | +| [inlets-pro](https://github.com/inlets/inlets-pro) | Cloud Native Tunnel for HTTP and TCP traffic. | +| [inletsctl](https://github.com/inlets/inletsctl) | Automates the task of creating an exit-server (tunnel server) on public cloud infrastructure. | +| [istioctl](https://github.com/istio/istio) | Service Mesh to establish a programmable, application-aware network using the Envoy service proxy. | +| [jq](https://github.com/jqlang/jq) | jq is a lightweight and flexible command-line JSON processor | +| [just](https://github.com/casey/just) | Just a command runner | +| [k0s](https://github.com/k0sproject/k0s) | Zero Friction Kubernetes | +| [k0sctl](https://github.com/k0sproject/k0sctl) | A bootstrapping and management tool for k0s clusters | +| [k3d](https://github.com/k3d-io/k3d) | Helper to run Rancher Lab's k3s in Docker. | +| [k3s](https://github.com/k3s-io/k3s) | Lightweight Kubernetes | +| [k3sup](https://github.com/alexellis/k3sup) | Bootstrap Kubernetes with k3s over SSH < 1 min. | +| [k9s](https://github.com/derailed/k9s) | Provides a terminal UI to interact with your Kubernetes clusters. | +| [kail](https://github.com/boz/kail) | Kubernetes log viewer. | +| [keploy](https://github.com/keploy/keploy) | Test generation for Developers. Generate tests and stubs for your application that actually work! | +| [kgctl](https://github.com/squat/kilo) | A CLI to manage Kilo, a multi-cloud network overlay built on WireGuard and designed for Kubernetes. | +| [kim](https://github.com/rancher/kim) | Build container images inside of Kubernetes. (Experimental) | +| [kind](https://github.com/kubernetes-sigs/kind) | Run local Kubernetes clusters using Docker container nodes. | +| [kops](https://github.com/kubernetes/kops) | Production Grade K8s Installation, Upgrades, and Management. | +| [krew](https://github.com/kubernetes-sigs/krew) | Package manager for kubectl plugins. | +| [ktop](https://github.com/vladimirvivien/ktop) | A top-like tool for your Kubernetes cluster. | +| [kube-bench](https://github.com/aquasecurity/kube-bench) | Checks whether Kubernetes is deployed securely by running the checks documented in the CIS Kubernetes Benchmark. | +| [kube-burner](https://github.com/cloud-bulldozer/kube-burner) | A tool aimed at stressing Kubernetes clusters by creating or deleting a high quantity of objects. | +| [kube-linter](https://github.com/stackrox/kube-linter) | KubeLinter 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-score](https://github.com/zegl/kube-score) | A tool that performs static code analysis of your Kubernetes object definitions. | +| [kubebuilder](https://github.com/kubernetes-sigs/kubebuilder) | Framework for building Kubernetes APIs using custom resource definitions (CRDs). | +| [kubecm](https://github.com/sunny0826/kubecm) | Easier management of kubeconfig. | +| [kubecolor](https://github.com/kubecolor/kubecolor) | KubeColor is a kubectl replacement used to add colors to your kubectl output. | +| [kubeconform](https://github.com/yannh/kubeconform) | A FAST Kubernetes manifests validator, with support for Custom Resources | +| [kubectl](https://github.com/kubernetes/kubernetes) | Run commands against Kubernetes clusters | +| [kubectx](https://github.com/ahmetb/kubectx) | Faster way to switch between clusters. | +| [kubens](https://github.com/ahmetb/kubectx) | Switch between Kubernetes namespaces smoothly. | +| [kubescape](https://github.com/kubescape/kubescape) | kubescape is the first tool for testing if Kubernetes is deployed securely as defined in Kubernetes Hardening Guidance by NSA and CISA | +| [kubeseal](https://github.com/bitnami-labs/sealed-secrets) | A Kubernetes controller and tool for one-way encrypted Secrets | +| [kubetail](https://github.com/johanhaleby/kubetail) | Bash script to tail Kubernetes logs from multiple pods at the same time. | +| [kubetrim](https://github.com/alexellis/kubetrim) | Tidy up old Kubernetes clusters from kubeconfig. | +| [kubeval](https://github.com/instrumenta/kubeval) | Validate your Kubernetes configuration files, supports multiple Kubernetes versions | +| [kubie](https://github.com/sbstp/kubie) | A more powerful alternative to kubectx and kubens | +| [kumactl](https://github.com/kumahq/kuma) | kumactl is a CLI to interact with Kuma and its data | +| [kustomize](https://github.com/kubernetes-sigs/kustomize) | Customization of kubernetes YAML configurations | +| [kwok](https://github.com/kubernetes-sigs/kwok) | KWOK stands for Kubernetes WithOut Kubelet, responsible for simulating the lifecycle of fake nodes, pods, and other Kubernetes API resources | +| [kwokctl](https://github.com/kubernetes-sigs/kwok) | CLI tool designed to streamline the creation and management of clusters, with nodes simulated by `kwok` | +| [kyverno](https://github.com/kyverno/kyverno) | CLI to apply and test Kyverno policies outside a cluster. | +| [labctl](https://github.com/iximiuz/labctl) | iximiuz Labs control - start remote microVM playgrounds from the command line. | +| [lazydocker](https://github.com/jesseduffield/lazydocker) | A simple terminal UI for both docker and docker-compose, written in Go with the gocui library. | +| [lazygit](https://github.com/jesseduffield/lazygit) | A simple terminal UI for git commands. | +| [linkerd2](https://github.com/linkerd/linkerd2) | Ultralight, security-first service mesh for Kubernetes. | +| [mc](https://github.com/minio/mc) | MinIO Client is a replacement for ls, cp, mkdir, diff and rsync commands for filesystems and object storage. | +| [metal](https://github.com/equinix/metal-cli) | Official Equinix Metal CLI | +| [minikube](https://github.com/kubernetes/minikube) | Runs the latest stable release of Kubernetes, with support for standard Kubernetes features. | +| [mixctl](https://github.com/inlets/mixctl) | A tiny TCP load-balancer. | +| [mkcert](https://github.com/FiloSottile/mkcert) | A simple zero-config tool to make locally trusted development certificates with any names you'd like. | +| [nats](https://github.com/nats-io/natscli) | Utility to interact with and manage NATS. | +| [nats-server](https://github.com/nats-io/nats-server) | Cloud native message bus and queue server | +| [nerdctl](https://github.com/containerd/nerdctl) | Docker-compatible CLI for containerd, with support for Compose | +| [nova](https://github.com/FairwindsOps/nova) | Find outdated or deprecated Helm charts running in your cluster. | +| [oc](https://github.com/openshift/oc) | Client to use an OpenShift 4.x cluster. | +| [oh-my-posh](https://github.com/jandedobbeleer/oh-my-posh) | A prompt theme engine for any shell that can display kubernetes information. | +| [op](https://github.com/1password/) | 1Password CLI enables you to automate administrative tasks and securely provision secrets across development environments. | +| [opa](https://github.com/open-policy-agent/opa) | General-purpose policy engine that enables unified, context-aware policy enforcement across the entire stack. | +| [openshift-install](https://github.com/openshift/installer) | CLI to install an OpenShift 4.x cluster. | +| [operator-sdk](https://github.com/operator-framework/operator-sdk) | Operator SDK is a tool for scaffolding and generating code for building Kubernetes operators | +| [osm](https://github.com/openservicemesh/osm) | Open Service Mesh uniformly manages, secures, and gets out-of-the-box observability features. | +| [pack](https://github.com/buildpacks/pack) | Build apps using Cloud Native Buildpacks. | +| [packer](https://github.com/hashicorp/packer) | Build identical machine images for multiple platforms from a single source configuration. | +| [polaris](https://github.com/FairwindsOps/polaris) | Run checks to ensure Kubernetes pods and controllers are configured using best practices. | +| [popeye](https://github.com/derailed/popeye) | Scans live Kubernetes cluster and reports potential issues with deployed resources and configurations. | +| [porter](https://github.com/getporter/porter) | With Porter you can package your application artifact, tools, etc. as a bundle that can distribute and install. | +| [promtool](https://github.com/prometheus/prometheus) | Prometheus rule tester and debugging utility | +| [rclone](https://github.com/rclone/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 | +| [regctl](https://github.com/regclient/regclient) | Utility for accessing docker registries | +| [rekor-cli](https://github.com/sigstore/rekor) | Secure Supply Chain - Transparency Log | +| [replicated](https://github.com/replicatedhq/replicated) | CLI for interacting with the Replicated Vendor API | +| [rosa](https://github.com/openshift/rosa) | Red Hat OpenShift on AWS (ROSA) command line tool | +| [rpk](https://github.com/redpanda-data/redpanda) | Kafka compatible streaming platform for mission critical workloads. | +| [run-job](https://github.com/alexellis/run-job) | Run a Kubernetes Job and get the logs when it's done. | +| [scaleway-cli](https://github.com/scaleway/scaleway-cli) | Scaleway CLI is a tool to help you pilot your Scaleway infrastructure directly from your terminal. | +| [seaweedfs](https://github.com/seaweedfs/seaweedfs) | SeaweedFS is a fast distributed storage system for blobs, objects, files, and data lake, for billions of files! | +| [skupper](https://github.com/skupperproject/skupper) | Skupper is an implementation of a Virtual Application Network, enabling rich hybrid cloud communication | +| [snowmachine](https://github.com/rgee0/snowmachine) | Festive cheer for your terminal. | +| [sops](https://github.com/getsops/sops) | Simple and flexible tool for managing secrets | +| [stern](https://github.com/stern/stern) | Multi pod and container log tailing for Kubernetes. | +| [syft](https://github.com/anchore/syft) | CLI tool and library for generating a Software Bill of Materials from container images and filesystems | +| [talosctl](https://github.com/siderolabs/talos) | The command-line tool for managing Talos Linux OS. | +| [task](https://github.com/go-task/task) | A simple task runner and build tool | +| [tctl](https://github.com/temporalio/tctl) | Temporal CLI. | +| [terraform](https://github.com/hashicorp/terraform) | Infrastructure as Code for major cloud providers. | +| [terraform-docs](https://github.com/terraform-docs/terraform-docs) | Generate documentation from Terraform modules in various output formats. | +| [terragrunt](https://github.com/gruntwork-io/terragrunt) | Terragrunt is a thin wrapper for Terraform that provides extra tools for working with multiple Terraform modules | +| [terrascan](https://github.com/tenable/terrascan) | Detect compliance and security violations across Infrastructure as Code. | +| [tflint](https://github.com/terraform-linters/tflint) | A Pluggable Terraform Linter. | +| [tfsec](https://github.com/aquasecurity/tfsec) | Security scanner for your Terraform code | +| [tilt](https://github.com/tilt-dev/tilt) | A multi-service dev environment for teams on Kubernetes. | +| [timoni](https://github.com/stefanprodan/timoni) | A package manager for Kubernetes powered by CUE. | +| [tkn](https://github.com/tektoncd/cli) | A CLI for interacting with Tekton. | +| [tofu](https://github.com/opentofu/opentofu) | OpenTofu lets you declaratively manage your cloud infrastructure | +| [trivy](https://github.com/aquasecurity/trivy) | Vulnerability Scanner for Containers and other Artifacts, Suitable for CI. | +| [vagrant](https://github.com/hashicorp/vagrant) | Tool for building and distributing development environments. | +| [vault](https://github.com/hashicorp/vault) | A tool for secrets management, encryption as a service, and privileged access management. | +| [vcluster](https://github.com/loft-sh/vcluster) | Create fully functional virtual Kubernetes clusters - Each vcluster runs inside a namespace of the underlying k8s cluster. | +| [vhs](https://github.com/charmbracelet/vhs) | CLI for recording demos | +| [viddy](https://github.com/sachaos/viddy) | A modern watch command. Time machine and pager etc. | +| [waypoint](https://github.com/hashicorp/waypoint) | Easy application deployment for Kubernetes and Amazon ECS | +| [yq](https://github.com/mikefarah/yq) | Portable command-line YAML processor. | +| [yt-dlp](https://github.com/yt-dlp/yt-dlp) | Fork 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 \ No newline at end of file diff --git a/pkg/get/get_test.go b/pkg/get/get_test.go index d86a7bbfe..c8ad7729c 100644 --- a/pkg/get/get_test.go +++ b/pkg/get/get_test.go @@ -8076,3 +8076,164 @@ func Test_Download_rosa(t *testing.T) { } } } +func Test_Download_kubie(t *testing.T) { + tools := MakeTools() + name := "kubie" + const toolVersion = "v0.24.0" + + tool := getTool(name, tools) + + tests := []test{ + { + os: "darwin", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/sbstp/kubie/releases/download/v0.24.0/kubie-darwin-amd64", + }, + { + os: "darwin", + arch: archDarwinARM64, + version: toolVersion, + url: "https://github.com/sbstp/kubie/releases/download/v0.24.0/kubie-darwin-arm64", + }, + { + os: "linux", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/sbstp/kubie/releases/download/v0.24.0/kubie-linux-amd64", + }, + { + os: "linux", + arch: archARM64, + version: toolVersion, + url: "https://github.com/sbstp/kubie/releases/download/v0.24.0/kubie-linux-arm64", + }, + { + os: "linux", + arch: archARM7, + version: toolVersion, + url: "https://github.com/sbstp/kubie/releases/download/v0.24.0/kubie-linux-arm32", + }, + } + for _, tc := range tests { + got, err := tool.GetURL(tc.os, tc.arch, tc.version, false) + if err != nil { + t.Fatal(err) + } + if got != tc.url { + t.Fatalf("\nwant: %s\ngot: %s", tc.url, got) + } + } +} + +func Test_Download_EKSNodeViewer(t *testing.T) { + tools := MakeTools() + name := "eks-node-viewer" + const toolVersion = "v0.7.0" + + tool := getTool(name, tools) + + tests := []test{ + { + os: "darwin", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/awslabs/eks-node-viewer/releases/download/v0.7.0/eks-node-viewer_Darwin_all", + }, + { + os: "darwin", + arch: archDarwinARM64, + version: toolVersion, + url: "https://github.com/awslabs/eks-node-viewer/releases/download/v0.7.0/eks-node-viewer_Darwin_all", + }, + { + os: "linux", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/awslabs/eks-node-viewer/releases/download/v0.7.0/eks-node-viewer_Linux_x86_64", + }, + { + os: "linux", + arch: archARM64, + version: toolVersion, + url: "https://github.com/awslabs/eks-node-viewer/releases/download/v0.7.0/eks-node-viewer_Linux_arm64", + }, + { + os: "mingw64_nt-10.0-18362", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/awslabs/eks-node-viewer/releases/download/v0.7.0/eks-node-viewer_Windows_x86_64.exe", + }, + } + for _, tc := range tests { + got, err := tool.GetURL(tc.os, tc.arch, tc.version, false) + if err != nil { + t.Fatal(err) + } + if got != tc.url { + t.Fatalf("\nwant: %s\ngot: %s", tc.url, got) + } + } +} + +func Test_Download_rclone(t *testing.T) { + tools := MakeTools() + name := "rclone" + const toolVersion = "v1.68.1" + + tool := getTool(name, tools) + + tests := []test{ + { + os: "darwin", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-osx-amd64.zip", + }, + { + os: "darwin", + arch: archDarwinARM64, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-osx-arm64.zip", + }, + { + os: "linux", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-linux-amd64.zip", + }, + { + os: "linux", + arch: archARM64, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-linux-arm64.zip", + }, + { + os: "linux", + arch: archARM7, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-linux-arm-v7.zip", + }, + { + os: "mingw64_nt-10.0-18362", + arch: arch64bit, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-windows-amd64.zip", + }, + { + os: "mingw64_nt-10.0-18362", + arch: archARM64, + version: toolVersion, + url: "https://github.com/rclone/rclone/releases/download/v1.68.1/rclone-v1.68.1-windows-arm64.zip", + }, + } + for _, tc := range tests { + got, err := tool.GetURL(tc.os, tc.arch, tc.version, false) + if err != nil { + t.Fatal(err) + } + if got != tc.url { + t.Fatalf("\nwant: %s\ngot: %s", tc.url, got) + } + } +} diff --git a/pkg/get/tools.go b/pkg/get/tools.go index ce255c10a..b18490ec3 100644 --- a/pkg/get/tools.go +++ b/pkg/get/tools.go @@ -4382,5 +4382,90 @@ https://github.com/{{.Owner}}/{{.Repo}}/releases/download/{{.Version}}/{{.Name}} rosa_{{$os}}_{{$arch}}.{{$ext}} `, }) + + tools = append(tools, + Tool{ + Owner: "sbstp", + Repo: "kubie", + Name: "kubie", + VersionStrategy: GitHubVersionStrategy, + Description: "A more powerful alternative to kubectx and kubens", + BinaryTemplate: ` + {{$os := .OS}} + {{$arch := .Arch}} + + {{- if (or (eq .Arch "aarch64") (eq .Arch "arm64")) -}} + {{$arch = "arm64"}} + {{- else if eq .Arch "x86_64" -}} + {{$arch = "amd64"}} + {{- else if eq .Arch "armv7l" -}} + {{$arch = "arm32"}} + {{- end -}} + + kubie-{{$os}}-{{$arch}} + `, + }) + + tools = append(tools, + Tool{ + Owner: "awslabs", + Repo: "eks-node-viewer", + Name: "eks-node-viewer", + VersionStrategy: GitHubVersionStrategy, + Description: "eks-node-viewer is a tool for visualizing dynamic node usage within an EKS cluster.", + BinaryTemplate: ` + {{$os := .OS}} + {{$arch := .Arch}} + {{$ext := ""}} + + {{- if (or (eq .Arch "aarch64") (eq .Arch "arm64")) -}} + {{$arch = "arm64"}} + {{- end -}} + + {{- if eq .OS "darwin" -}} + {{$os = "Darwin"}} + {{$arch = "all"}} + {{- else if eq .OS "linux" -}} + {{$os = "Linux"}} + {{- else if HasPrefix .OS "ming" -}} + {{$os = "Windows"}} + {{$ext = ".exe"}} + {{- end -}} + + eks-node-viewer_{{$os}}_{{$arch}}{{$ext}} + `, + }) + + tools = append(tools, + Tool{ + Owner: "rclone", + Repo: "rclone", + Name: "rclone", + VersionStrategy: GitHubVersionStrategy, + Description: "'rsync for cloud storage' - Google Drive, S3, Dropbox, Backblaze B2, One Drive, Swift, Hubic, Wasabi, Google Cloud Storage, Azure Blob, Azure Files, Yandex Files", + BinaryTemplate: ` + {{$os := .OS}} + {{$arch := .Arch}} + {{$ext := "zip"}} + + {{- if eq .OS "darwin" -}} + {{$os = "osx"}} + {{- else if eq .OS "linux" -}} + {{$os = "linux"}} + {{- else if HasPrefix .OS "ming" -}} + {{$os = "windows"}} + {{- end -}} + + {{- if (or (eq .Arch "aarch64") (eq .Arch "arm64")) -}} + {{$arch = "arm64"}} + {{- else if eq .Arch "x86_64" -}} + {{$arch = "amd64"}} + {{- else if eq .Arch "armv7l" -}} + {{$arch = "arm-v7"}} + {{- end -}} + + rclone-{{.Version}}-{{$os}}-{{$arch}}.{{$ext}} + `, + }) return tools }