{"repo":"alexellis/k3sup","free":true,"listed":false,"github":"https://github.com/alexellis/k3sup","clone":"git clone https://github.com/alexellis/k3sup.git","description":"bootstrap K3s over SSH in < 60s 🚀","language":"Go","stars":7415,"topics":["cloud","cloud-native","devops","devtools","edge","go","k3s","k8s","kubernetes","raspberry-pi","vm"],"license":null,"category":"devops_tool","readme_excerpt":"# k3sup 🚀 (said 'ketchup')\n\n<img src=\"docs/assets/k3sup.png\" width=\"20%\" alt=\"k3sup logo\">\n\nk3sup is a light-weight utility to get from zero to KUBECONFIG with [k3s](https://k3s.io/) on any local or remote VM. All you need is `ssh` access and the `k3sup` binary to get `kubectl` access immediately.\n\nThe tool is written in Go and is cross-compiled for Linux, Windows, MacOS and even on Raspberry Pi.\n\nHow do you say it? Ketchup, as in tomato.\n\n**Introducing K3sup Pro 🎉**\n\nWhilst the CE edition is ideal for experimentation, [`k3sup-pro`](#k3sup-pro) was built to satisfy long standing requests for an IaaC/GitOps experience.\n\n`k3sup-pro` adds a `plan` and `apply` command to automate installations both small and large - running in parallel. The plan file can be customised and retained in Git for maintenance and updates.\n\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![build](https://github.com/alexellis/k3sup/actions/workflows/build.yaml/badge.svg)](https://github.com/alexellis/k3sup/actions/workflows/build.yaml)\n[![Github All Releases](https://img.shields.io/github/downloads/alexellis/k3sup/total.svg)]()\n\n## Contents:\n\n- [k3sup 🚀 (said 'ketchup')](#k3sup--said-ketchup)\n  - [Contents:](#contents)\n  - [What's this for? 💻](#whats-this-for-)\n    - [Use-cases](#use-cases)\n    - [Bootstrapping Kubernetes](#bootstrapping-kubernetes)\n    - [Download `k3sup` CE (tl;dr)](#download-k3sup-ce-tldr)\n  - [Demo of K3sup CE📼](#demo-of-k3sup-ce)\n  - [Usage ✅](#usage-)\n    - [Pre-requisites for k3sup servers and agents](#pre-requisites-for-k3sup-servers-and-agents)\n  - [K3sup Pro](#k3sup-pro)\n    - [Getting `k3sup-pro`](#getting-k3sup-pro)\n    - [Activating K3sup Pro](#activating-k3sup-pro)\n    - [K3sup `plan` / `apply` for automation and large installations](#k3sup-plan--apply-for-automation-and-large-installations)\n    - [Rapid uninstallation / reset with `k3sup-pro uninstall`](#rapid-uninstallation--reset-with-k3sup-pro-uninstall)\n    - [K3sup `pro exec` - run a command everywhere](#k3sup-pro-exec---run-a-command-everywhere)\n    - [K3sup `pro get-config` - work with an existing cluster](#k3sup-pro-get-config---work-with-an-existing-cluster)\n  - [K3sup Community Edition (CE)](#k3sup-community-edition-ce)\n    - [👑 Setup a Kubernetes *server* with `k3sup`](#-setup-a-kubernetes-server-with-k3sup)\n    - [Checking if a cluster is ready](#checking-if-a-cluster-is-ready)\n    - [Merging clusters into your KUBECONFIG](#merging-clusters-into-your-kubeconfig)\n    - [😸 Join some agents to your Kubernetes server](#-join-some-agents-to-your-kubernetes-server)\n    - [Use your hardware authentication / 2FA or SSH Agent](#use-your-hardware-authentication--2fa-or-ssh-agent)\n    - [Create a multi-master (HA) setup with external SQL](#create-a-multi-master-ha-setup-with-external-sql)\n    - [Create a multi-master (HA) setup with embedded etcd](#create-a-multi-master-ha-setup-with-embedded-etcd)\n    - [👨‍💻 Micro-tutorial for Raspberry Pi (2, 3, or 4) 🥧](#-micro-tutorial-for-raspberry-pi-2-3-or-4-)\n  - [Caveats on security](#caveats-on-security)\n  - [Contributing](#contributing)\n    - [Blog posts & tweets](#blog-posts--tweets)\n    - [Contributing via GitHub](#contributing-via-github)\n    - [License](#license)\n  - [📢 What are people saying about `k3sup`?](#-what-are-people-saying-about-k3sup)\n  - [Similar tools & glossary](#similar-tools--glossary)\n  - [Troubleshooting and support](#troubleshooting-and-support)\n    - [Maybe the problem is with K3s?](#maybe-the-problem-is-with-k3s)\n    - [Common issues](#common-issues)\n    - [Getting access to your KUBECONFIG](#getting-access-to-your-kubeconfig)\n    - [Smart cards and 2FA](#smart-cards-and-2fa)\n    - [Misc note on `iptables`](#misc-note-on-iptables)\n\n## What's this for? 💻\n\nThis tool uses `ssh` to install `k3s` to a remote Linux host. You can also use it to join existing Linux hosts into a k3s cluster as `agents`. First, `k3s` is installed using the utility script from Rancher, along with a flag for your host's public IP so that TLS works properly. The `kubeconfig` file on the server is then fetched and updated so that you can connect from your laptop using `kubectl`.\n\nYou may wonder why a tool like this needs to exist when you can do this sort of thing with bash.\n\nk3sup was developed to automate what can be a very manual and confusing process for many developers, who are already short on time. Once you've provisioned a VM with your favourite tooling, `k3sup` means you are only 60 seconds away from running `kubectl get pods` on your own computer. If you are a local computer, you can bypass SSH with `k3sup install --local`\n\n**How does k3sup work?**\n\n```\n                          k3sup install\n +---------------------+                  +-----------------------------+\n |                      |    1. SSH       |                             |\n |   Your Laptop /      +---------------->|   Remote Server (VM/RPi)    |\n |   Workstation        |                 |                             |\n |                      |    2. Install   |   +---------------------+   |\n |  +----------------+  |    k3s -------->|   |  k3s (server/agent) |   |\n |  | kubectl        |  |                 |   +---------------------+   |\n |  +----------------+  |    3. Fetch     |                             |\n |  | kubeconfig     |<-+    kubeconfig   |                             |\n |  +----------------+  |                 +-----------------------------+\n |                      |\n +---------------------+        k3sup join\n                          +-------------------->+-----------+\n                          |                     | Agent 1   |\n                          +-------------------->+-----------+\n                          |                     | Agent 2   |\n                          +-------------------->+-----------+\n                                                | Agent n   |\n                                                +-----------+\n```\n\n * Step 1: k3sup install  → SSH into server, install k3s\n * Step 2: kubeconfig     → Fetched to your laptop automatically\n * Step 3: k3sup join     → Add agents to the cluster via SSH\n * Step 4: kubectl        → Ready to use from your laptop 🚀\n \n> **Tip:** Create clusters on Mac, Linux + WSL2 with K3sup and [SlicerVM](https://slicervm.com)\n\n### Use-cases\n\nK3sup runs from your local machine, without ever having to log into a remote server.\n\n* Bootstrap Kubernetes with k3s onto any VM with `k3sup install` - either manually, during CI or through `cloud-init`\n* Get from zero to `kubectl` with `k3s` on bare-metal, Raspberry Pi (RPi), VMs, AWS EC2, Google Cloud, DigitalOcean, Civo, Linode, Scaleway, and others\n* Build a Highly-Available (HA), multi-master (server) cluster\n* Fetch the KUBECONFIG from an existing cluster with `k3sup-pro get-config`\n* Join nodes into an existing `k3s` cluster with `k3sup join`\n* Build a massive cluster for automation and scale-out testing using `k3sup plan` and a JSON file with IP addresses\n\n### Bootstrapping Kubernetes\n\n![Conceptual architecture](./docs/k3sup-cloud.png)\n*Conceptual architecture, showing `k3sup` running locally against any VM such as AWS EC2 or a VPS such as DigitalOcean.*\n\n### Download `k3sup` CE (tl;dr)\n\n`k3sup` is distributed as a static Go binary. You can use the installer on MacOS and Linux, or visit the [Releases page](https://github.com/alexellis/k3sup/releases) to download the executable for Windows.\n\n```sh\ncurl -sLS https://get.k3sup.dev | sh\nsudo install k3sup /usr/local/bin/\n\nk3sup --help\n```\n\n> A note for Windows users. Windows users can use `k3sup install` and `k3sup join` with a normal \"Windows command prompt\".\n\n## Demo of K3sup CE📼\n\nIn the demo I install Kubernetes (`k3s`) onto two separate machines and get my `kubeconfig` downloaded to my laptop each time in around one minute.\n\n1) Ubuntu 18.04 VM created on DigitalOcean with ssh key copied automatically\n2) Raspberry Pi 4 with my ssh key copied over via `ssh-copy-id`\n\nWatch the demo:\n\n[![asciicast](https://asciinema.org/a/262630.svg)](https://asciinema.org/a/262630)\n\n## Usage ✅\n\nThe `k3sup` tool is a client application which you can run on your own computer. It uses SSH to connect to remote servers and creates a local KUBECONFIG file on your disk. Binaries are provided for MacOS, Windows, and Linux (including ARM).\n\n### Pre-requisites for k3sup servers and agents\n\nSome Linux hosts are configured to allow `sudo` to run without having to repeat your password. For those which are not already configured that way, you'll need to make the following changes if you wish to use `k3sup`:\n\n```bash\n# sudo visudo\n\n# Then add to the bottom of the file\n# replace \"alex\" with your username i.e. \"ubuntu\"\nalex ALL=(ALL) NOPASSWD: ALL\n```\n\nIn most circumstances, cloud images for Ubuntu and other distributions will not require this step.\n\nAs an alternative, if you only need a single server you can log in interactively and run `k3sup install --local` instead of using SSH.\n\n## K3sup Pro\n\nK3sup Pro is available for individuals via a [GitHub Sponsorship of 25+ USD / mo](https://github.com/sponsors/alexellis) and separately for commercial use. Review the [EULA](/EULA.md) before downloading or using the software.\n\n> K3sup Pro is free with your [SlicerVM](https://slicervm.com) subscription. Slicer makes it quick and easy to spin up single or multi-node K3s clusters directly on your own computer, cloud, or homelab environments.\n\nSupport for all K3sup Pro users is provided by the Issue Tracker for the [K3sup CE repository](https://github.com/alexellis/k3sup-pro/).\n\n* `activate` - obtain/refresh a license key. Commercial users just place your key at `~/.k3sup/LICENSE`\n* `plan` - take one or more JSON files and generate a YAML plan for a HA installation of K3s\n* `apply` - run the installation in parallel, optionally pre-downloading the K3s binary and copying it via SSH beforehand\n* `exec` - run a command on all nodes in the cluster\n* `get-config` - get a kubeco","default_branch":"master","files":948,"tree":[".DEREK.yml",".github/CODEOWNERS",".github/FUNDING.yml",".github/ISSUE_TEMPLATE.md",".github/ISSUE_TEMPLATE/report-an-issue.md",".github/ISSUE_TEMPLATE/request-a-feature.md",".github/PULL_REQUEST_TEMPLATE.md",".github/workflows/build.yaml",".github/workflows/publish.yaml",".gitignore","EULA.md","LICENSE","Makefile","README.md","cmd/get-config.go","cmd/get.go","cmd/get_pro.go","cmd/install.go","cmd/install_test.go","cmd/join.go","cmd/join_test.go","cmd/node-token.go","cmd/plan.go","cmd/pro.go","cmd/ready.go","cmd/update.go","cmd/version.go","docs/assets/README.md","docs/assets/k3sup.pdf","docs/assets/k3sup.png","docs/k3sup-app-install.png","docs/k3sup-cloud.png","docs/k3sup-rpi.png","get.sh","go.mod","go.sum","hack/hashgen.sh","hack/platform-tag.sh","main.go","pkg/operator/exec_operator.go","pkg/operator/operator.go","pkg/operator/ssh_operator.go","pkg/thanks.go","vendor/github.com/alexellis/arkade/LICENSE","vendor/github.com/alexellis/arkade/pkg/archive/untar.go","vendor/github.com/alexellis/arkade/pkg/archive/untar_nested.go","vendor/github.com/alexellis/arkade/pkg/archive/unzip.go","vendor/github.com/alexellis/arkade/pkg/env/env.go","vendor/github.com/alexellis/go-execute/v2/.DEREK.yml","vendor/github.com/alexellis/go-execute/v2/.gitignore","vendor/github.com/alexellis/go-execute/v2/LICENSE","vendor/github.com/alexellis/go-execute/v2/Makefile","vendor/github.com/alexellis/go-execute/v2/README.md","vendor/github.com/alexellis/go-execute/v2/exec.go","vendor/github.com/containerd/stargz-snapshotter/estargz/LICENSE","vendor/github.com/containerd/stargz-snapshotter/estargz/build.go","vendor/github.com/containerd/stargz-snapshotter/estargz/errorutil/errors.go","vendor/github.com/containerd/stargz-snapshotter/estargz/estargz.go","vendor/github.com/containerd/stargz-snapshotter/estargz/gzip.go","vendor/github.com/containerd/stargz-snapshotter/estargz/testutil.go","vendor/github.com/containerd/stargz-snapshotter/estargz/types.go","vendor/github.com/docker/cli/AUTHORS","vendor/github.com/docker/cli/LICENSE","vendor/github.com/docker/cli/NOTICE","vendor/github.com/docker/cli/cli/config/config.go","vendor/github.com/docker/cli/cli/config/configfile/file.go","vendor/github.com/docker/cli/cli/config/configfile/file_unix.go","vendor/github.com/docker/cli/cli/config/configfile/file_windows.go","vendor/github.com/docker/cli/cli/config/credentials/credentials.go","vendor/github.com/docker/cli/cli/config/credentials/default_store.go","vendor/github.com/docker/cli/cli/config/credentials/default_store_darwin.go","vendor/github.com/docker/cli/cli/config/credentials/default_store_linux.go","vendor/github.com/docker/cli/cli/config/credentials/default_store_unsupported.go","vendor/github.com/docker/cli/cli/config/credentials/default_store_windows.go","vendor/github.com/docker/cli/cli/config/credentials/file_store.go","vendor/github.com/docker/cli/cli/config/credentials/native_store.go","vendor/github.com/docker/cli/cli/config/memorystore/store.go","vendor/github.com/docker/cli/cli/config/types/authconfig.go","vendor/github.com/docker/distribution/LICENSE","vendor/github.com/docker/distribution/registry/client/auth/challenge/addr.go","vendor/github.com/docker/distribution/registry/client/auth/challenge/authchallenge.go","vendor/github.com/docker/docker-credential-helpers/LICENSE","vendor/github.com/docker/docker-credential-helpers/client/client.go","vendor/github.com/docker/docker-credential-helpers/client/command.go","vendor/github.com/docker/docker-credential-helpers/credentials/credentials.go","vendor/github.com/docker/docker-credential-helpers/credentials/error.go","vendor/github.com/docker/docker-credential-helpers/credentials/helper.go","vendor/github.com/docker/docker-credential-helpers/credentials/version.go","vendor/github.com/google/go-containerregistry/LICENSE","vendor/github.com/google/go-containerregistry/internal/and/and_closer.go","vendor/github.com/google/go-containerregistry/internal/compression/compression.go","vendor/github.com/google/go-containerregistry/internal/estargz/estargz.go","vendor/github.com/google/go-containerregistry/internal/gzip/zip.go","vendor/github.com/google/go-containerregistry/internal/redact/redact.go","vendor/github.com/google/go-containerregistry/internal/retry/retry.go","vendor/github.com/google/go-containerregistry/internal/retry/wait/kubernetes_apimachinery_wait.go","vendor/github.com/google/go-containerregistry/internal/verify/verify.go","vendor/github.com/google/go-containerregistry/internal/windows/windows.go","vendor/github.com/google/go-containerregistry/internal/zstd/zstd.go","vendor/github.com/google/go-containerregistry/pkg/authn/README.md","vendor/github.com/google/go-containerregistry/pkg/authn/anon.go","vendor/github.com/google/go-containerregistry/pkg/authn/auth.go","vendor/github.com/google/go-containerregistry/pkg/authn/authn.go","vendor/github.com/google/go-containerregistry/pkg/authn/basic.go","vendor/github.com/google/go-containerregistry/pkg/authn/bearer.go","vendor/github.com/google/go-containerregistry/pkg/authn/doc.go","vendor/github.com/google/go-containerregistry/pkg/authn/keychain.go","vendor/github.com/google/go-containerregistry/pkg/authn/multikeychain.go","vendor/github.com/google/go-containerregistry/pkg/compression/compression.go","vendor/github.com/google/go-containerregistry/pkg/crane/append.go","vendor/github.com/google/go-containerregistry/pkg/crane/catalog.go","vendor/github.com/google/go-containerregistry/pkg/crane/config.go","vendor/github.com/google/go-containerregistry/pkg/crane/copy.go","vendor/github.com/google/go-containerregistry/pkg/crane/delete.go","vendor/github.com/google/go-containerregistry/pkg/crane/digest.go","vendor/github.com/google/go-containerregistry/pkg/crane/doc.go","vendor/github.com/google/go-containerregistry/pkg/crane/export.go","vendor/github.com/google/go-containerregistry/pkg/crane/filemap.go","vendor/github.com/google/go-containerregistry/pkg/crane/get.go","vendor/github.com/google/go-containerregistry/pkg/crane/list.go","vendor/github.com/google/go-containerregistry/pkg/crane/manifest.go","vendor/github.com/google/go-containerregistry/pkg/crane/options.go","vendor/github.com/google/go-containerregistry/pkg/crane/pull.go","vendor/github.com/google/go-containerregistry/pkg/crane/push.go","vendor/github.com/google/go-containerregistry/pkg/crane/tag.go","vendor/github.com/google/go-containerregistry/pkg/legacy/config.go","vendor/github.com/google/go-containerregistry/pkg/legacy/doc.go","vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/README.md","vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/doc.go","vendor/github.com/google/go-containerregistry/pkg/legacy/tarball/write.go","vendor/github.com/google/go-containerregistry/pkg/logs/logs.go","vendor/github.com/google/go-containerregistry/pkg/name/README.md","vendor/github.com/google/go-containerregistry/pkg/name/check.go","vendor/github.com/google/go-containerregistry/pkg/name/digest.go","vendor/github.com/google/go-containerregistry/pkg/name/doc.go","vendor/github.com/google/go-containerregistry/pkg/name/errors.go","vendor/github.com/google/go-containerregistry/pkg/name/options.go","vendor/github.com/google/go-containerregistry/pkg/name/ref.go","vendor/github.com/google/go-containerregistry/pkg/name/registry.go","vendor/github.com/google/go-containerregistry/pkg/name/repository.go","vendor/github.com/google/go-containerregistry/pkg/name/tag.go","vendor/github.com/google/go-containerregistry/pkg/v1/config.go","vendor/github.com/google/go-containerregistry/pkg/v1/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/empty/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/empty/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/empty/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/empty/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/hash.go","vendor/github.com/google/go-containerregistry/pkg/v1/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/layer.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/layout/blob.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/gc.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/layoutpath.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/options.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/read.go","vendor/github.com/google/go-containerregistry/pkg/v1/layout/write.go","vendor/github.com/google/go-containerregistry/pkg/v1/manifest.go","vendor/github.com/google/go-containerregistry/pkg/v1/match/match.go","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/mutate.go","vendor/github.com/google/go-containerregistry/pkg/v1/mutate/rebase.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/partial/compressed.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/uncompressed.go","vendor/github.com/google/go-containerregistry/pkg/v1/partial/with.go","vendor/github.com/google/go-containerregistry/pkg/v1/platform.go","vendor/github.com/google/go-containerregistry/pkg/v1/progress.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/remote/catalog.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/check.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/delete.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/descriptor.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/fetcher.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/index.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/layer.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/list.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/mount.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/multi_write.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/options.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/progress.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/puller.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/pusher.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/referrers.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/schema1.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/basic.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/bearer.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/error.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/logger.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/ping.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/retry.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/schemer.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/scope.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/transport.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/transport/useragent.go","vendor/github.com/google/go-containerregistry/pkg/v1/remote/write.go","vendor/github.com/google/go-containerregistry/pkg/v1/stream/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/stream/layer.go","vendor/github.com/google/go-containerregistry/pkg/v1/tarball/README.md","vendor/github.com/google/go-containerregistry/pkg/v1/tarball/doc.go","vendor/github.com/google/go-containerregistry/pkg/v1/tarball/image.go","vendor/github.com/google/go-containerregistry/pkg/v1/tarball/layer.go","vendor/github.com/google/go-containerregistry/pkg/v1/tarball/write.go","vendor/github.com/google/go-containerregistry/pkg/v1/types/types.go","vendor/github.com/google/go-containerregistry/pkg/v1/zz_deepcopy_generated.go","vendor/github.com/inconshreveable/mousetrap/LICENSE","vendor/github.com/inconshreveable/mousetrap/README.md","vendor/github.com/inconshreveable/mousetrap/trap_others.go","vendor/github.com/inconshreveable/mousetrap/trap_windows.go","vendor/github.com/klauspost/compress/.gitattributes","vendor/github.com/klauspost/compress/.gitignore","vendor/github.com/klauspost/compress/.goreleaser.yml","vendor/github.com/klauspost/compress/LICENSE","vendor/github.com/klauspost/compress/README.md","vendor/github.com/klauspost/compress/SECURITY.md","vendor/github.com/klauspost/compress/compressible.go","vendor/github.com/klauspost/compress/fse/README.md","vendor/github.com/klauspost/compress/fse/bitreader.go","vendor/github.com/klauspost/compress/fse/bitwriter.go","vendor/github.com/klauspost/compress/fse/bytereader.go","vendor/github.com/klauspost/compress/fse/compress.go","vendor/github.com/klauspost/compress/fse/decompress.go","vendor/github.com/klauspost/compress/fse/fse.go","vendor/github.com/klauspost/compress/gen.sh","vendor/github.com/klauspost/compress/huff0/.gitignore","vendor/github.com/klauspost/compress/huff0/README.md","vendor/github.com/klauspost/compress/huff0/bitreader.go","vendor/github.com/klauspost/compress/huff0/bitwriter.go","vendor/github.com/klauspost/compress/huff0/compress.go","vendor/github.com/klauspost/compress/huff0/decompress.go","vendor/github.com/klauspost/compress/huff0/decompress_amd64.go","vendor/github.com/klauspost/compress/huff0/decompress_amd64.s","vendor/github.com/klauspost/compress/huff0/decompress_generic.go","vendor/github.com/klauspost/compress/huff0/huff0.go","vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo.go","vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.go","vendor/github.com/klauspost/compress/internal/cpuinfo/cpuinfo_amd64.s","vendor/github.com/klauspost/compress/internal/le/le.go","vendor/github.com/klauspost/compress/internal/le/unsafe_disabled.go","vendor/github.com/klauspost/compress/internal/le/unsafe_enabled.go","vendor/github.com/klauspost/compress/internal/snapref/LICENSE","vendor/github.com/klauspost/compress/internal/snapref/decode.go","vendor/github.com/klauspost/compress/internal/snapref/decode_other.go","vendor/github.com/klauspost/compress/internal/snapref/encode.go","vendor/github.com/klauspost/compress/internal/snapref/encode_other.go","vendor/github.com/klauspost/compress/internal/snapref/snappy.go","vendor/github.com/klauspost/compress/s2sx.mod","vendor/github.com/klauspost/compress/s2sx.sum","vendor/github.com/klauspost/compress/zstd/README.md","vendor/github.com/klauspost/compress/zstd/bitreader.go","vendor/github.com/klauspost/compress/zstd/bitwriter.go","vendor/github.com/klauspost/compress/zstd/blockdec.go","vendor/github.com/klauspost/compress/zstd/blockenc.go","vendor/github.com/klauspost/compress/zstd/blocktype_string.go","vendor/github.com/klauspost/compress/zstd/bytebuf.go","vendor/github.com/klauspost/compress/zstd/bytereader.go","vendor/github.com/klauspost/compress/zstd/decodeheader.go","vendor/github.com/klauspost/compress/zstd/decoder.go","vendor/github.com/klauspost/compress/zstd/decoder_options.go","vendor/github.com/klauspost/compress/zstd/dict.go","vendor/github.com/klauspost/compress/zstd/enc_base.go","vendor/github.com/klauspost/compress/zstd/enc_best.go","vendor/github.com/klauspost/compress/zstd/enc_better.go","vendor/github.com/klauspost/compress/zstd/enc_dfast.go","vendor/github.com/klauspost/compress/zstd/enc_fast.go","vendor/github.com/klauspost/compress/zstd/encoder.go","vendor/github.com/klauspost/compress/zstd/encoder_options.go","vendor/github.com/klauspost/compress/zstd/framedec.go","vendor/github.com/klauspost/compress/zstd/frameenc.go","vendor/github.com/klauspost/compress/zstd/fse_decoder.go","vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.go","vendor/github.com/klauspost/compress/zstd/fse_decoder_amd64.s","vendor/github.com/klauspost/compress/zstd/fse_decoder_generic.go","vendor/github.com/klauspost/compress/zstd/fse_encoder.go","vendor/github.com/klauspost/compress/zstd/fse_predefined.go","vendor/github.com/klauspost/compress/zstd/hash.go","vendor/github.com/klauspost/compress/zstd/history.go","vendor/github.com/klauspost/compress/zstd/internal/xxhash/README.md","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash.go","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_amd64.s","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_arm64.s","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_asm.go","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_other.go","vendor/github.com/klauspost/compress/zstd/internal/xxhash/xxhash_safe.go","vendor/github.com/klauspost/compress/zstd/matchlen_amd64.go","vendor/github.com/klauspost/compress/zstd/matchlen_amd64.s","vendor/github.com/klauspost/compress/zstd/matchlen_generic.go","vendor/github.com/klauspost/compress/zstd/seqdec.go","vendor/github.com/klauspost/compress/zstd/seqdec_amd64.go","vendor/github.com/klauspost/compress/zstd/seqdec_amd64.s","vendor/github.com/klauspost/compress/zstd/seqdec_generic.go","vendor/github.com/klauspost/compress/zstd/seqenc.go","vendor/github.com/klauspost/compress/zstd/simple_go124.go","vendor/github.com/klauspost/compress/zstd/snappy.go","vendor/github.com/klauspost/compress/zstd/zip.go","vendor/github.com/klauspost/compress/zstd/zstd.go","vendor/github.com/mitchellh/go-homedir/LICENSE","vendor/github.com/mitchellh/go-homedir/README.md","vendor/github.com/mitchellh/go-homedir/homedir.go","vendor/github.com/morikuni/aec/LICENSE","vendor/github.com/morikuni/aec/README.md","vendor/github.com/morikuni/aec/aec.go","vendor/github.com/morikuni/aec/ansi.go","vendor/github.com/morikuni/aec/builder.go","vendor/github.com/morikuni/aec/sample.gif","vendor/github.com/morikuni/aec/sgr.go","vendor/github.com/opencontainers/go-digest/.mailmap","vendor/github.com/opencontainers/go-digest/.pullapprove.yml","vendor/github.com/opencontainers/go-digest/.travis.yml","vendor/github.com/opencontainers/go-digest/CONTRIBUTING.md","vendor/github.com/opencontainers/go-digest/LICENSE","vendor/github.com/opencontainers/go-digest/LICENSE.docs","vendor/github.com/opencontainers/go-digest/MAINTAINERS","vendor/github.com/opencontainers/go-digest/README.md","vendor/github.com/opencontainers/go-digest/algorithm.go","vendor/github.com/opencontainers/go-digest/digest.go","vendor/github.com/opencontainers/go-digest/digester.go","vendor/github.com/opencontainers/go-digest/doc.go","vendor/github.com/opencontainers/go-digest/verifiers.go","vendor/github.com/opencontainers/image-spec/LICENSE","vendor/github.com/opencontainers/image-spec/specs-go/v1/annotations.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/config.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/descriptor.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/index.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/layout.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/manifest.go","vendor/github.com/opencontainers/image-spec/specs-go/v1/mediatype.go","vendor/github.com/opencontainers/image-spec/specs-go/version.go","vendor/github.com/opencontainers/image-spec/specs-go/versioned.go","vendor/github.com/sirupsen/logrus/.gitignore","vendor/github.com/sirupsen/logrus/.golangci.yml","vendor/github.com/sirupsen/logrus/.travis.yml","vendor/github.com/sirupsen/logrus/CHANGELOG.md","vendor/github.com/sirupsen/logrus/LICENSE","vendor/github.com/sirupsen/logrus/README.md","vendor/github.com/sirupsen/logrus/alt_exit.go","vendor/github.com/sirupsen/logrus/appveyor.yml","vendor/github.com/sirupsen/logrus/buffer_pool.go","vendor/github.com/sirupsen/logrus/doc.go","vendor/github.com/sirupsen/logrus/entry.go","vendor/github.com/sirupsen/logrus/exported.go","vendor/github.com/sirupsen/logrus/formatter.go","vendor/github.com/sirupsen/logrus/hooks.go","vendor/github.com/sirupsen/logrus/json_formatter.go","vendor/github.com/sirupsen/logrus/logger.go","vendor/github.com/sirupsen/logrus/logrus.go","vendor/github.com/sirupsen/logrus/terminal_check_appengine.go","vendor/github.com/sirupsen/logrus/terminal_check_bsd.go","vendor/github.com/sirupsen/logrus/terminal_check_js.go","vendor/github.com/sirupsen/logrus/terminal_check_no_terminal.go","vendor/github.com/sirupsen/logrus/terminal_check_notappengine.go","vendor/github.com/sirupsen/logrus/terminal_check_solaris.go","vendor/github.com/sirupsen/logrus/terminal_check_unix.go","vendor/github.com/sirupsen/logrus/terminal_check_wasi.go","vendor/github.com/sirupsen/logrus/terminal_check_wasip1.go","vendor/github.com/sirupsen/logrus/terminal_check_windows.go","vendor/github.com/sirupsen/logrus/text_formatter.go","vendor/github.com/sirupsen/logrus/writer.go","vendor/github.com/spf13/cobra/.gitignore","vendor/github.com/spf13/cobra/.golangci.yml","vendor/github.com/spf13/cobra/.mailmap","vendor/github.com/spf13/cobra/CONDUCT.md","vendor/github.com/spf13/cobra/CONTRIBUTING.md","vendor/github.com/spf13/cobra/LICENSE.txt","vendor/github.com/spf13/cobra/MAINTAINERS","vendor/github.com/spf13/cobra/Makefile","vendor/github.com/spf13/cobra/README.md","vendor/github.com/spf13/cobra/SECURITY.md","vendor/github.com/spf13/cobra/active_help.go","vendor/github.com/spf13/cobra/args.go","vendor/github.com/spf13/cobra/bash_completions.go","vendor/github.com/spf13/cobra/bash_completionsV2.go","vendor/github.com/spf13/cobra/cobra.go","vendor/github.com/spf13/cobra/command.go","vendor/github.com/spf13/cobra/command_notwin.go","vendor/github.com/spf13/cobra/command_win.go","vendor/github.com/spf13/cobra/completions.go","vendor/github.com/spf13/cobra/fish_completions.go","vendor/github.com/spf13/cobra/flag_groups.go","vendor/github.com/spf13/cobra/powershell_completions.go","vendor/github.com/spf13/cobra/shell_completions.go","vendor/github.com/spf13/cobra/zsh_completions.go","vendor/github.com/spf13/pflag/.editorconfig","vendor/github.com/spf13/pflag/.gitignore","vendor/github.com/spf13/pflag/.golangci.yaml","vendor/github.com/spf13/pflag/.travis.yml"],"storefront":"/r/alexellis","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/alexellis/k3sup/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}