Skip to content

Releases: k3d-io/k3d

v4.1.0-alpha.0

03 Feb 10:50
73e1548
Compare
Choose a tag to compare
v4.1.0-alpha.0 Pre-release
Pre-release

v4.0.0

20 Jan 14:35
074e5be
Compare
Choose a tag to compare

🆕 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 now pkg/client

  • ClusterCreate and NodeCreate don't start the entities (containers) anymore

    • ClusterRun and NodeRun orchestrate the new Create and Start functionality
  • NodeDelete/ClusterDelete now take an additional NodeDeleteOpts/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

➡️ 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 cluster
      • k3d 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 the preStart stage of nodes
      • Guides will follow
  • Print container creation time (#431, @inercia)

  • add output formats for cluster ls and node 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 rename E2E_SKIP to E2E_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

19 Jan 18:13
7b8506b
Compare
Choose a tag to compare
v4.0.0-rc.2 Pre-release
Pre-release

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 for k3d node delete and k3d 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

19 Jan 08:01
c809767
Compare
Choose a tag to compare
v4.0.0-rc.1 Pre-release
Pre-release

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)
  • fix: LocalRegistryHosting.v1 config map now uses localhost or docker-machine ip for the host field

v4.0.0-rc.0

14 Jan 12:04
c6df144
Compare
Choose a tag to compare
v4.0.0-rc.0 Pre-release
Pre-release

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

12 Jan 08:22
41aa718
Compare
Choose a tag to compare
v4.0.0-beta.0 Pre-release
Pre-release

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

04 Jan 08:58
eafae00
Compare
Choose a tag to compare
v4.0.0-alpha.2 Pre-release
Pre-release

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 by k3d cluster create --registry-use k3d-myreg
    • for now only tested with registries running in docker

v4.0.0-alpha.1

09 Dec 17:24
46211ae
Compare
Choose a tag to compare
v4.0.0-alpha.1 Pre-release
Pre-release

-> 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

04 Dec 15:16
778f80d
Compare
Choose a tag to compare
v4.0.0-alpha.0 Pre-release
Pre-release

v4.0.0-alpha.0

First preview release of k3d v4

v3.4.0

04 Dec 12:48
6c784d9
Compare
Choose a tag to compare

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)

Infrastructure

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-* and release-* 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️⃣ 🎉