Releases: k3d-io/k3d
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.
v3.0.0-alpha.4
Development release
v3.0.0-alpha.3
Development release
v3.0.0-alpha.2
Development release, for testing only.
v1.7.0
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
forcreate
to (re-)use an existing volume as storage backend for the managed registry (#199, @inercia) - New flag
--keep-registry-volume
fordelete
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
Features/Enhancement
- New Flag
--registry-file FILE
forcreate
to point to a non-defaultregistries.yaml
file (#173, @inercia) - Do not print the /etc/hosts message if the registry name can be resolved (#177, @inercia)
- New flag
--prune
fordelete
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
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