Releases: k3d-io/k3d
v4.1.0-alpha.0
v4.0.0
🆕 v4️⃣.0️⃣.0️⃣
🚀 Breaking Changes
📄 Module
If you're using k3d as a Go module, please have a look into the code to see all the changes!
-
We're open for chats via Slack or GitHub discussions
-
Module is now on
github.com/rancher/k3d/v4
due to lots of breaking changes -
pkg/cluster
is nowpkg/client
-
ClusterCreate
andNodeCreate
don't start the entities (containers) anymoreClusterRun
andNodeRun
orchestrate the new Create and Start functionality
-
NodeDelete
/ClusterDelete
now take an additionalNodeDeleteOpts
/ClusterDeleteOpts
struct to toggle specific steps -
NodeSpec now features a list of networks (required for registries)
-
New config flow: CLIConfig (SimpleConfig) -> ClusterConfig -> Cluster + Opts
💻 CLI
- Some flags changed to also use
noun-action
syntax- e.g.
--switch-context --update-default-kubeconfig
->--kubeconfig-switch-context --kubeconfig-update-default
- this eases grouping and visibility
- e.g.
➡️ Changes
🆕 Features
-
Registry Support
- k3d-managed registry like we had it in k3d v1.x
- Option 1: default settings, paired with cluster creation
k3d cluster create --registry-create
-> New registry for that clusterk3d cluster create --registry-use
-> Re-use existing registry
- Option 2: customized, managed stand-alone
k3d registry [create/start/stop/delete]
- Check the documentation, help text and tutorials for more details
- Communicate managed registry using the LocalRegistryHostingV1 spec from KEP-1755
- interesting especially for tools that reload images, like Tilt or Skaffold
-
Config File Support
-
Put all your CLI-Arguments/Flags into a more readable config file and re-use it everywhere (keep it in your repo)
- Note: this is not always a 1:1 matching in naming/syntax/semantics
-
k3d cluster create --config myconfig.yaml
apiVersion: k3d.io/v1alpha1 kind: Simple name: mycluster servers: 3 agents: 2 ports: - port: 8080:80 nodeFilters: - loadbalancer
-
Check out our test cases in pkg/config/test_assets/ for more config file examples
-
Note: The config file format (& feature) might still be a little rough around the edges and it's prone to change quickly until we hit a stable release of the config
-
-
[WIP] Support for Lifecycle Hooks
- Run any executable at specific stages during the cluster and node lifecycles
- e.g. we modify the
registries.yaml
in thepreStart
stage of nodes - Guides will follow
- e.g. we modify the
- Run any executable at specific stages during the cluster and node lifecycles
-
add output formats for
cluster ls
andnode ls
(#439, @inercia)
🛠️ Fixes
- import image: avoid nil pointer exception in specific cases
- cluster delete: properly handle node and network (#437)
- --port: fix bnil-pointer exception when exposing port on non-existent loadbalancer
- completion/zsh: source completion file
🧰 Misc
- Now building with Go 1.15
- same for the k3d-tools code
- updated dependencies (including Docker v20.10)
- tests/e2e: add
E2E_INCLUDE
and renameE2E_SKIP
toE2E_EXCLUDE
- tests/e2e: allow overriding the Helper Image Tag via
E2E_HELPER_IMAGE_TAG
- docs: spell checking (#434, @jsoref)
- docs: add Chocolatey install option (#443, @erwinkersten)
More
There's probably much more that went into this release, which we forgot to mention here or just overlooked.
Just give it a try and let us know, what you think 😉
Get in touch via
v4.0.0-rc.2
v4.0.0-rc.2
Preliminary Changelog: main-v4/CHANGELOG.md#v400
- Note, that the lifecycle hooks are not yet accessible via the CLI
Changes since last release (v4.0.0-rc.1)
- NEW (module):
NodeDeleteOpts
&ClusterDeleteOpts
- fix: make
--all
work properly fork3d node delete
andk3d registry delete
- NEW (flag):
k3d node delete --all --registries
to also consider registries when deleting nodes (they're a special node type) - change (module): nodes now have a list of networks instead of a single reference (to improve registry handling)
- fix: properly handle registries and networks when deleting clusters
v4.0.0-rc.1
v4.0.0-rc.1
Preliminary Changelog: main-v4/CHANGELOG.md#v400
- Note, that the lifecycle hooks are not yet accessible via the CLI
Changes since last release (v4.0.0-rc.0)
- fix: auto-restart registry (like clusters)
- NEW:
k3d cluster create --registry-config /my/registries.yaml
- will be merged with the auto-generated registries config when you also use
--registry-create
or--registry-use
- config file allows embedding the registries.yaml in the
Simple
config (see docs)
- will be merged with the auto-generated registries config when you also use
- fix: LocalRegistryHosting.v1 config map now uses
localhost
or docker-machine ip for thehost
field
v4.0.0-rc.0
v4.0.0-rc.0
Preliminary Changelog: main-v4/CHANGELOG.md#v400
- Note, that the lifecycle hooks are not yet accessible via the CLI
Changes since last release (v4.0.0-beta.0)
- [DOCS] Add Chocolatey install option (#443, @erwinkersten)
- tests/e2e: add E2E_INCLUDE and rename E2E_SKIP to E2E_EXCLUDE
- registry: only warn, if configmap couldn't be created in any node, as one is enough.
- [Enhancement] Improved listings for nodes & registries (#439, @inercia)
v4.0.0-beta.0
v4.0.0-beta.0
Preliminary Changelog: main-v4/CHANGELOG.md#v400
- Note, that the lifecycle hooks are not yet accessible via the CLI
Changes since last Alpha (v4.0.0-alpha.2)
- flag syntax:
noun-action
everywhere:--kubeconfig-merge-default
- updated documentation/readme -> https://k3d.io
- spell checking (#434, @jsoref)
- fix: some nil-pointers, e.g. when exposing a port on the loadbalancer when it was disabled via flag
- new default k3s version (as fallback in edge cases)
- fix: proper handling of networks upon cluster deletion in the light of having registries around that connect to cluster networks
- LocalRegistryHostingV1 from KEP-1755
v4.0.0-alpha.2
v4.0.0-alpha.2
Preliminary Changelog: main-v4/CHANGELOG.md#v400
- Note, that the lifecycle hooks are not yet accessible via the CLI
Changes since last Alpha
k3d cluster create --registry-use REGNAME
works now- e.g.
k3d registry create myreg
followed byk3d cluster create --registry-use k3d-myreg
- for now only tested with registries running in docker
- e.g.
v4.0.0-alpha.1
-> Preliminary Changelog: https://github.com/rancher/k3d/blob/main-v4/CHANGELOG.md#v400
Note, that the lifecycle hooks are not yet accessible via the CLI and the k3d cluster create --registry-use flag is still hidden as not fully implemented yet.
v4.0.0-alpha.0
v4.0.0-alpha.0
First preview release of k3d v4
v3.4.0
v3.4.0
Features & Enhancements
- Enable the restart policy
unless-stopped
which should have been enabled since the very beginning (#413, @fabricev) - add new
k3d cluster list --output yaml|json
flag to format the list output in YAML or JSON format (#416, @inercia)- teaser: this is the preparation for something super cool 😎
Fixes
- Allow escaping literal
@
in flags that use node filters via\@
- "literal" meaning, that this is not the
@
sign indicating that a node filter is following (#412)
- "literal" meaning, that this is not the
Infrastructure
- fix install script error with wget (#414, @bashofmann)
Misc
- code: pin hardcoded fallback k3s version to v1.19.4-k3s1
- docs: use Python 3.9 for building mkdocs page (#415, @cclaus)
- ci: allow building artifacts from
main-*
andrelease-*
branches
Announcement
With some larger changes coming in soon (config file and registry support), we've done some refactoring in k3d code leading to the need of increasing the major version. So watch out for k3d v4 dropping soon 4️⃣ 🎉