Skip to content

Releases: k3d-io/k3d

v3.0.0-rc.6

18 Jun 14:08
4ca19db
Compare
Choose a tag to compare
v3.0.0-rc.6 Pre-release
Pre-release
  • arm support for k3d-proxy

v3.0.0-rc.5

18 Jun 08:35
4ca19db
Compare
Choose a tag to compare
v3.0.0-rc.5 Pre-release
Pre-release

πŸŽ‰ Sixth (and hopefully last) Release Candidate of v3.0.0

πŸ†• πŸ†™ Changes since v3.0.0-rc.3 (skipped test release rc.4)

Features

  • ❗ --wait for k3d create cluster is now enabled by default

Maintenance

  • ❗ Fixed go module to be v3: go get github.com/rancher/k3d/v3@master
  • Fixed kubeconfig API Port for hostNetwork mode cluster (fixes #284)
  • Tests now also build new helper images (proxy and tools) to ensure that releases work with respective fresh versions

Misc

  • CI: Switched from Travis to Drone (#278 , thanks for the support @luthermonson)
    • ❗ Multiarch builds for rancher/k3d-tools and rancher/k3d-proxy docker images
      • linux/amd64, linux/arm, linux/arm64
      • now have the same tag as the corresponding CLI release
    • automated (pre-)releases

[Test] v3.0.0-rc.4

17 Jun 17:51
724b774
Compare
Choose a tag to compare
[Test] v3.0.0-rc.4 Pre-release
Pre-release

This is a test release created by Drone CI.

v3.0.0-rc.3

12 Jun 11:53
178fe6d
Compare
Choose a tag to compare
v3.0.0-rc.3 Pre-release
Pre-release

πŸŽ‰ Fourth Release Candidate of v3.0.0

πŸ†• πŸ†™ Changes since v3.0.0-rc.2

Features

  • ❗ Automatically choosing a random free port used for the API (#279)
    • k3d create cluster one && k3d create cluster two will not result in a port collision on 6443 anymore, but rather each cluster will use a random host port for access to its Kubernetes API
    • --api-port is still an option!

Maintenance

  • fix: actually consider contexts when checking for existing contexts in a kubeconfig
  • fix: nil pointer dereference when creating a new node but the target cluster does not exist (#277)
  • increase proxy_timeout to 10 minutes for the masterlb so e.g. kubectl get logs -f doesn't break after 30s (#276)

README/Docs

Misc

  • integrated k3d-tools repository as a submodule in main repo (#275)

v3.0.0-rc.2

05 Jun 13:37
a6976d3
Compare
Choose a tag to compare
v3.0.0-rc.2 Pre-release
Pre-release

πŸŽ‰ Third Release Candidate of v3.0.0

πŸ†• πŸ†™ Changes since v3.0.0-rc.1

Features

  • shell completion via k3d completion [zsh | bash | psh] (#270)

Maintenance

  • ❗ Getting rid of the root flag --runtime, as this will probably never happen and was interfering with other things

README/Docs

v3.0.0-rc.1

04 Jun 14:07
85132c1
Compare
Choose a tag to compare
v3.0.0-rc.1 Pre-release
Pre-release

πŸŽ‰ Second Release Candidate of v3.0.0

πŸ†• πŸ†™ Changes since v3.0.0-rc.0

Features

  • new flag --token for k3d get clusters: show the cluster token (#257, thanks @RouxAntoine)
  • k3d load images can take more than one argument, which can be either image name (e.g. nginx:local) or filename (e.g. nginx_local.tar) to load images from the container runtime or from the local filesystem (e.g. tarballs created with docker save) (#266

Fixes

  • ...

Maintenance

  • ❗ Update docker dependencies

README/Docs

  • add missing pieces on new features
  • add section about dqlite known issues to FAQ

Miscellaneous

  • Breaking Change: renamed all occurrences of secret as in cluster-secret to token (#257, thanks @RouxAntoine)
    • e.g. the container label k3d.cluster.secret is now k3d.cluster.token
    • all related functions and variables have been renamed in the code

v3.0.0-rc.0

03 Jun 14:34
c19cb27
Compare
Choose a tag to compare
v3.0.0-rc.0 Pre-release
Pre-release

πŸŽ‰ First Release Candidate of v3.0.0

πŸ†• πŸ†™ Changes since v3.0.0-beta.2

Features

  • New flag: k3d create cluster --switch: update the kubeconfig and directly switch the current-context (#261)
  • Now using context.Context in all top-level exported functions (#244)
  • update loadbalancer every time when creating/deleting master nodes (#258)
  • New flags: --wait and --timeout for command k3d create node (#259)

Fixes

  • do not copy --cluster-init flag when creating a second master node
  • k3d get clusters and k3d get nodes now allow... (#260)
    • specifying one name: get only one node/cluster
    • specifying multiple names: get multiple nodes/clusters
    • specifying no name: get all nodes/clusters

Maintenance

  • move more stuff to constants

README/Docs

Miscellaneous

...

v3.0.0-beta.2

02 Jun 07:07
ae9be06
Compare
Choose a tag to compare
v3.0.0-beta.2 Pre-release
Pre-release

πŸŽ‰ Third Beta of k3d v3

πŸ†• πŸ†™ Changes since v3.0.0-beta.1

Features

  • rootCmd: add back --version flag (same behavior as k3d version)
  • fetch latest k3s version at build time from k3s' channel server (#249)
  • re-add support for named volumes with the --volume flag (#251)
  • re-add support to specify mount options with the --volume flag`
  • add --wait and --timeout DURATION flags to k3d start cluster to let it wait for the cluster to be up before returning (#252)
  • k3d create cluster --wait now also waits for the loadbalancer to be ready before returning

Fixes

  • take loadbalancer into consideration when mapping ports
  • do not consider loadbalancer in node list if it wasn't created
  • fix nil pointer exception when getting a non-existent node
  • use default role label and command when creating a new node in a cluster where no node with the target role exists

Maintenance

  • cleanup debug logging

README/Docs

  • links to demo repo and meetup video
  • new release overview
  • asciicast video demo
  • new Logo (thanks to @lvuch :))
  • fixed typo (#243, @curx)

Miscellaneous

  • switched v3 to master branch
  • remove unneeded echo in install script (#246, @vandot)
  • fix duplicate curl command in install script #250, @lionelnicolas)
  • use version command instead of --version in install script (#256, @izzatzr)

v3.0.0-beta.1

11 May 10:40
e98f96b
Compare
Choose a tag to compare
v3.0.0-beta.1 Pre-release
Pre-release

πŸŽ‰ Second 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.

πŸ†• πŸ†™ Changes since v3.0.0-beta.0

  • k3d create cluster --no-lb: new --no-lb flag to disable the automatic deployment of the loadbalancer in front of the cluster's master nodes
    • This will result in --api-port SOMEPORT to be exposed on the first master node (i.e. master-0) instead
  • iwilltry42/k3d-proxy:v0.0.2: new version of the used nginx proxy, with improved health checks and new variables to update the loadbalancing configuration
  • masterlb: now hot-reloads configuration when a new master node is being added to the cluster
  • k3d create node: now inherits more details from existing nodes in the cluster and does not fail anymore if no node with the target role exists in cluster
  • New nodefilter loadbalancer for k3d create cluster --port (see example in docs)
    • Example: k3d create cluster mycluster --port 8080:80@loadbalancer will add a mapping of host port 8080 to loadbalancer port 80, which will proxy requests to port 80 on all master nodes
  • Docs:

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.