Skip to content

Releases: k3d-io/k3d

v3.0.0-beta.0

04 May 16:57
ecea154
Compare
Choose a tag to compare
v3.0.0-beta.0 Pre-release
Pre-release

🎉 First Beta of k3d v3

We've spent quite some days on completely re-writing k3d from scratch. New concepts, new architecture, new setup, new syntax, new everything.

Why v3? Because v2 is too mainstream.. 🙄 The real reason is that v3 is not just the next step in k3d's "evolution", but rather a complete rewrite, including new concepts and structures. At first it was planned to drop a v2.0.0 release in between v1.x and v3.0.0, but due to the changes over time, this is not going to happen anymore.
Also, "k3d v3" just sounds sooo good :feelsgood: 😁

🙏 Testing

Please test this beta version thoroughly, but be aware that it includes some big breaking changes.

💻 Installation

Please checkout the installation instructions here: https://k3d.io/#installation

📄 Documentation & Website

We're now building a website from the docs/ folder using mkdocs.
The final site files will be stored in the gh-pages branch.
Check it out: https://k3d.io/

❗ Breaking Changes

  • By far the largest breaking change for you as a k3d user is the change of the CLI syntax.

    • Old (k3d v1.x): k3d create -n mycluster
    • New: k3d create cluster mycluster
    • Please checkout k3d help or the command tree on the website as a reference
  • Every cluster you create will now spawn at least 2 containers:

    • 1 master node
    • 1 load balancer
      • The load balancer will be the access point to the Kubernetes API, so even for multi-master clusters, you only need to expose a single api port. The load balancer will then take care of proxying your request to the correct master node.
  • By default get kubeconfig will now modify your default kubeconfig, instead of creating a new file for each cluster

🆕 New Features

There are a lot of new features, like

  • creating multi-master clusters (dqlite): k3d create cluster --masters 3
  • updating existing kubeconfigs: k3d get kubeconfig mycluster --output /my/kubeconfig.yaml --update
  • attaching new clusters to existing networks: k3d create cluster --network this-other-network
  • handling nodes independently from clusters: k3d create/start/stop/delete node mynode

... many more ...

🔜 Missing Features

There are some features of v1.x that haven't made it into this release yet.
Probably the most prominent one is the registries feature (--enable-registry) and related options.
Please checkout the feature comparison page on the website to see what's implemented, what's missing, what has been dropped and what is planned to land in v3.x.

v3.0.0-alpha.4

27 Apr 16:37
7744c52
Compare
Choose a tag to compare
v3.0.0-alpha.4 Pre-release
Pre-release

Development release

v3.0.0-alpha.3

27 Apr 15:48
05f2fc1
Compare
Choose a tag to compare
v3.0.0-alpha.3 Pre-release
Pre-release

Development release

v3.0.0-alpha.2

24 Apr 13:10
b32e116
Compare
Choose a tag to compare
v3.0.0-alpha.2 Pre-release
Pre-release

Development release, for testing only.

v1.7.0

19 Mar 13:27
bb7b6e3
Compare
Choose a tag to compare

Features/Enhancements

  • Improve judgement and show an error if non-existent cluster-name was passed to delete/start/stop (#197, @sunny0826)
  • New flag --registry-volume for create to (re-)use an existing volume as storage backend for the managed registry (#199, @inercia)
  • New flag --keep-registry-volume for delete to not delete the volume used by the registry (#199, @inercia)
  • New flag --enable-registry-cache to make the managed registry act as a pull-through cache for DockerHub (#207, @inercia)

v1.6.0

01 Feb 11:56
0ec51e1
Compare
Choose a tag to compare

Features/Enhancement

  • New Flag --registry-file FILE for create to point to a non-default registries.yaml file (#173, @inercia)
  • Do not print the /etc/hosts message if the registry name can be resolved (#177, @inercia)
  • New flag --prune for delete to disconnect all containers from the cluster network before removing it (#178, @inercia)
  • Start existing registry when starting/creating a cluster
  • improved error message when getting the kubeconfig fails

Build/Development

Docs

v3.0.0-alpha.1 -> Second Preview of k3d v3

28 Jan 14:33
70221e0
Compare
Choose a tag to compare

Changes since alpha.0

  • cleaned up the repo and structured some ideas
  • implemented --k3s-server-arg and --k3s-agent-arg flags
  • implemented --wait flag (waits for all masters to be up)
  • CLI: now rolling back if cluster creation fails
  • Fixed/Improved Makefile and ported e2e tests from master

v1.5.1

21 Jan 17:15
ecd86ed
Compare
Choose a tag to compare

Fix

  • only write registries.yaml if --enable-registry was set (Issue: #171 , Fix: #172)

v1.5.0

21 Jan 10:42
4d8876f
Compare
Choose a tag to compare

Features

  • New flag k3d create --label key[=value][@node-specifier] to assign docker labels to node containers (#163, @lionelnicolas)
  • New flags `k3d create --enable-registry [--registry-name NAME] [--registry-port PORT] to automatically create/attach a local insecure registry when creating a cluster (#161 + #169, @inercia)
  • New flag k3d get-kubeconfig --overwrite to force an overwrite of the kubeconfig.yaml (fixes #154)

Development

  • Create first e2e tests (in Docker) and update Makefile + pipeline accordingly (#168, @inercia)

Fixes

  • return error if no image was specified for import-image
  • adapt to new tagging-scheme of k3s (and differences between GitHub releases and DockerHub tags)
  • better default + help text for --wait flag (default is not 0=wait forever)

Docs

  • fix FAQ section related to kubelet-args (#166, @AWKIF)

Thanks to all contributors!

Note: default k3s version in this release is rancher/k3s:v1.17.0-k3s.1

v3.0.0-alpha.0 -> First Preview of k3d v3.0.0

05 Jan 20:22
bc49f19
Compare
Choose a tag to compare

Preview k3d v3.0.0

In the beginning, k3d was a learning project and grew organically without a clear plan in mind.
This and the eagerness to implement all the requested features as fast as possible, resulted in quite a lot of spaghetti code which became a bit more difficult to maintain and extend.

k3d v3 aims to make a few things better:

  • a better project structure with more clearly defined module/package boundaries
  • cleaner/leaner code
  • new CLI syntax to fit better into the Kubernetes ecosystem (syntax similar to e.g. kubectl)
  • usable as a Go module from within other Go projects.

Additionally it offers some new or modified features compared to v1.x, even though not every single feature of v1.x found its way into v3 yet.

This is quite an early release, but I'd like to gather feedback rather earlier than later now.
So please test this release, play around with it, open issues and/or pull-requests and let me know, what you think of it via Slack :)