Releases: k3d-io/k3d
v3.0.0-rc.6
- arm support for k3d-proxy
v3.0.0-rc.5
π Sixth (and hopefully last) Release Candidate of v3.0.0
π π Changes since v3.0.0-rc.3 (skipped test release rc.4)
Features
- β
--wait
fork3d 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
andrancher/k3d-proxy
docker imageslinux/amd64
,linux/arm
,linux/arm64
- now have the same tag as the corresponding CLI release
- automated (pre-)releases
- β Multiarch builds for
[Test] v3.0.0-rc.4
This is a test release created by Drone CI.
v3.0.0-rc.3
π 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
π 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
π Second Release Candidate of v3.0.0
π π Changes since v3.0.0-rc.0
Features
- new flag
--token
fork3d 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 withdocker 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 incluster-secret
totoken
(#257, thanks @RouxAntoine)- e.g. the container label
k3d.cluster.secret
is nowk3d.cluster.token
- all related functions and variables have been renamed in the code
- e.g. the container label
v3.0.0-rc.0
π 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 thecurrent-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 commandk3d create node
(#259)
Fixes
- do not copy
--cluster-init
flag when creating a second master node k3d get clusters
andk3d 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
- add back section on registries: https://k3d.io/usage/guides/registries/
Miscellaneous
...
v3.0.0-beta.2
π Third Beta of k3d v3
π π Changes since v3.0.0-beta.1
Features
- rootCmd: add back
--version
flag (same behavior ask3d 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 tok3d 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
get
ting 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
v3.0.0-beta.1
π 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 π
π 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
- Old (k3d v1.x):
-
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
- This will result in
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
fork3d 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
- Example:
- Docs:
- Updated admonitions and syntax highlighting
- New v1 vs v3 feature comparison: https://k3d.io/faq/v1vsv3-comparison/
- More info at the frontpage: https://k3d.io
- New section about multi-master setups: https://k3d.io/usage/multimaster/
- Updated section about exposing services with the new
loadbalancer
option: https://k3d.io/usage/guides/exposing_services/#1-via-ingress
v3.0.0-beta.0
π 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 π
π 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
- Old (k3d v1.x):
-
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.