Releases: k3d-io/k3d
v5.4.0
v5.4.0 - 26.03.2022
Note: This is the first independent release of k3d
- k3d moved from rancher/k3d to k3d-io/k3d
- k3d is fully community-owned
- k3d does not depend on any company's toolchain or accounts
Note 2: You can now fund the work on k3d using GitHub Sponsors (@iwilltry42) or IssueHunt (k3d-io/k3d)
Added
- GitHub Actions Release Workflow (#977 & #1024)
- Replaces DroneCI
- Now uses
buildx
&buildx bake
for multiplatform builds (instead of VMs with the according architectures) - Now pushes to GHCR instead of DockerHub
- docs: added FAQ entry on using Longhorn in k3d
- docs: added config file tip that k3d expands environment variables
- docs: added section about using k3d with Podman (#987)
- docs: add connect section on homepage (#988)
- added
k3d node create --k3s-arg
flag (#1032)
Changed
- references to rancher/k3d updated to k3d-io/k3d (#976)
- reference to rancher/k3s updated to k3s-io/k3s (#985)
- explicitly set
bridge
mode for k3d-created networks for Podman compatibility (#986) - use secure defaults for curl in install script (#999)
- chore: update docs requirements and re-run docgen for commands (#1033)
- change: no default image for node creation in local cluster where image should be copied from existing nodes (#1034)
Fixed
- fixed volume shortcuts not working because clusterconfig was not being processed
- fixed AUR Release pipeline with more relaxed version selection (#966)
- fixed ZSH completion output (#1014)
- Do not defer goroutine to delete tools node, as this leads to errors
- Hotfix: switch default for image import to original tools-node mode, as the new direct mode fails fairly often
- GetGatewayIP for host.k3d.internal should error out if there's no gateway defined (#1027)
- Store hostAliases in label to persist them across cluster stop/start (#1029)
Deprecated
- DockerHub Images: k3d's images will now be pushed to GHCR under https://github.com/orgs/k3d-io/packages?repo_name=k3d
Removed
- DroneCI Test & Release Pipeline
Compatibility
This release was automatically tested with the following setups:
Docker
- 20.10.5
- 20.10.12
Expected to Fail with the following versions:
- <= 20.10.4 (due to runc, see #807)
K3s
We test a full cluster lifecycle with different K3s channels, meaning that the following list refers to the current latest version released under the given channel:
- Channel v1.23
- Channel v1.22
Expected to Fail with the following versions:
- <= v1.18 (due to not included, but expected CoreDNS in K3s)
New Contributors
- @dereknola made their first contribution in #985
- @gbonnefille made their first contribution in #988
- @olix0r made their first contribution in #999
Full Changelog: v5.3.0...v5.4.0
v5.4.0-dev.3
Full Changelog: v5.4.0-dev.2...v5.4.0-dev.3
v5.4.0-dev.2
fix: create release only on tag
v5.3.0 - 03.02.2022
v5.3.0 - 03.02.2022
Note: Now trying to follow a standard scheme defined by https://keepachangelog.com/en/1.0.0/
Added
- new config options to configure extra hosts by @iwilltry42 in #938
- host pid mode support for k3s-server and k3s-agent by @hlts2 in #929
- SimpleConfig v1alpha4 by @iwilltry42 in #944
- add env var LOG_COLORS=[1|true|0|false] to toggle colored log output (enabled by default) by @iwilltry42 in #951
- Compatibility Tests by @iwilltry42 in #956
- Volume Shortcuts and k3d-managed volumes by @iwilltry42 in #916
- Use some destination shortcuts with the
--volume/-v
flag that k3d automatically expandsk3s-storage
->/var/lib/rancher/k3s/storage
k3s-manifests
->/var/lib/rancher/k3s/server/manifests
k3s-manifests-custom
->/var/lib/rancher/k3s/server/manifests/custom
(not K3s default: this is just some sub-directory inside the auto-deploy manifests directory which will also be parsed)k3s-containerd
->/var/lib/rancher/k3s/agent/etc/containerd/config.toml
(use with caution, K3s generates this file!)k3s-containerd-tmpl
->/var/lib/rancher/k3s/agent/etc/containerd/config.toml.tmpl
(used by K3s to generate the real config above)k3s-registry-config
->/etc/rancher/k3s/registries.yaml
(or just use--registry-config
)
- k3d-managed volumes
- non-existing named volumes starting with a
k3d-
prefix will now be created and managed byk3d
- non-existing named volumes starting with a
- Use some destination shortcuts with the
- JSON schema versions in-repo to link to from schemastore.org by @iwilltry42 in #942
Changed
- Config file compatible with Kustomize by @erikgb in #945
- chore: update direct dependencies by @iwilltry42 in #935
Fixed
- serverlb should be created before using and restarted unless stopped by @wymli in #948
- fix typo in node.go by @eltociear in #949
- mutex on ensureToolsNode to avoid duplicate container name causing error by @iwilltry42 in #952
- detect '--disable=coredns' and conditionally disable injection by @iwilltry42 in #955
- invert logic for LOG_LEVEL parsing by @myitcv in #958
Deprecated
- SimpleConfig API version
k3d.io/v1alpha3
is now deprecated in favor ofk3d.io/v1alpha4
Removed
- unused volume validation functionality in
cmd/util
, does not affect the CLI (#916)
Compatibility
This release was automatically tested with the following setups:
Docker
- 20.10.5
- 20.10.12
Expected to Fail with the following versions:
- <= 20.10.4 (due to runc, see #807)
K3s
We test a full cluster lifecycle with different K3s channels, meaning that the following list refers to the current latest version released under the given channel:
- Channel v1.23
- Channel v1.22
Expected to Fail with the following versions:
- <= v1.18 (due to not included, but expected CoreDNS in K3s)
New Contributors
- @hlts2 made their first contribution in #929
- @erikgb made their first contribution in #945
- @wymli made their first contribution in #948
- @eltociear made their first contribution in #949
- @myitcv made their first contribution in #958
Full Changelog: v5.2.2...v5.3.0
v5.3.0-rc.1
fix: invert logic for LOG_LEVEL parsing (#958)
v5.2.2
v5.2.1
v5.2.1
Features & Enhancements
- improved Podman compatibility (#868, @serverwentdown)
- last missing piece: release of containers/podman#12328
- improved error handling and logs when waiting for container logs (ca47fac)
Fixes
- fix: only replace default api host with docker host (#879)
- fix: use available hardcoded K3s version in version.go (0bbb5b9)
New Contributors
- @serverwentdown made their first contribution in #868
Full Changelog: v5.2.0...v5.2.1
v5.2.1-rc.0
v5.2.0
v5.2.0
Features & Enhancements
- Improve image import performance (#826, @sbaier1)
- New flag:
k3d image import --mode [auto | direct | tools]
tools
is the old default, which spawns ak3d-tools
container for importingauto
is the new default to automatically detect which mode should work bestdirect
directly streams the images into the node containers without thek3d-tools
container
- New flag:
- Enhanced usability of nodefilters & error messages for wrong usage (#871)
- New command:
k3d version list [k3s | k3d | k3d-proxy | k3d-tools]
to get image tags that can be used with k3d (#870)- e.g. use
k3d version list k3s --format repo
to get the latest image available for K3s and use it viak3d cluster create --image <image>
- Docs: docs/usage/commands/k3d_version_list.md
- e.g. use
Fixes
- cluster network: reserve IP extra IP for k3d-tools container in k3d-managed IPAM to avoid conflicts
- process the SimpleConfig before validating it to avoid early exit in hostnetwork mode (#860)
- error out if
K3D_FIX_DNS=1
is set and user tries to mount a file to/etc/resolv.conf
(conflict) - clusterStart: only run actions which are necessary given the start reason (e.g.
cluster start
vs.cluster create
) - fix injection of
host.k3d.internal
based on resolvinghost.docker.internal
(#872)- also now uses
host.docker.internal
in kubeconfig based on certain conditions (see PR)
- also now uses
New Contributors
Full Changelog: v5.1.0...v5.2.0
v5.1.0
v5.1.0
Features
- clusterCreate:
--image
option (also in config file) magic words to follow K3s channels (#841)latest
/stable
to follow latest/stable channels of K3s+<channel>
(prefix+
) where<channel>
can as well belatest
orstable
, but also e.g.v1.21
- k3d will then check the K3s channel server to get the latest image for that channel
Enhancements
- nodeHooks: add descriptions and log them for more verbosity (#843)
node create
: injecthost.k3d.internal
into/etc/hosts
similar to thecluster create
command (#843)
Fix
--network host
: do not do any network magic (likehost.k3d.internal
injection, etc.) whenhost
network is used (#844)
Misc
- CI/Makefile: build with
-mod vendor
- docs: document using some K3s features in k3d, including
servicelb
,traefik
,local-storage-provisioner
andcoredns
(#845)
Full Changelog: v5.0.3...v5.1.0