Little helper to run CNCF's k3s in Docker
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
iwilltry42 4e477d3262 rename to k3d 6 years ago
cli better errors 6 years ago
vendor add vendor 6 years ago
version Added version tags, separated command implementaitons, added wait and timeout 6 years ago
.gitignore exclude binary folders 6 years ago
.travis.yml rename to k3d 6 years ago
LICENSE update README 6 years ago
Makefile rename to k3d 6 years ago
README.md rename to k3d 6 years ago
go.mod rename to k3d 6 years ago
go.sum enhanced list 6 years ago
install.sh rename to k3d 6 years ago
main.go rename to k3d 6 years ago

README.md

k3d

Build Status Go Report Card

k3s in docker

k3s is the lightweight Kubernetes distribution by Rancher: rancher/k3s

This repository is basically zeerorg/k3s-in-docker reimplemented in Golang with some different/new functionality... just because I didn't have time to learn Rust.

Thanks to @zeerorg for the original work!

Requirements

  • docker

Install

You have several options there:

  • use the install script to grab the latest release:
    • wget: wget -q -O - https://raw.githubusercontent.com/iwilltry42/k3d/master/install.sh | bash
    • curl: curl -s https://raw.githubusercontent.com/iwilltry42/k3d/master/install.sh | bash
  • Grab a release from the release tab and install it yourself.
  • Via go: go install github.com/iwilltry42/k3d

or...

Build

  1. Clone this repo, e.g. via go get -u github.com/iwilltry42/k3d/releases
  2. Inside the repo run
    • make to build for your current system
    • go install to install it to your GOPATH
    • make build-cross to build for all systems

Usage

Check out what you can do via k3d help

Example Workflow: Create a new cluster and use it with kubectl

  1. k3d create to create a new single-node cluster (docker container)
  2. export KUBECONFIG=$(k3d get-kubeconfig) to make kubectl to use the kubeconfig for that cluster
  3. execute some commands like kubectl get pods --all-namespaces
  4. k3d delete to delete the default cluster

TODO

  • Use the docker client library instead of commands
  • Test the docker version
  • Improve cluster state management
  • Use sirupsen/logrus for prettier logs
  • Add install script