All Versions
30
Latest Version
Avg Release Cycle
-
Latest Release
-

Changelog History
Page 3

  • v4.4.4 Changes

    โœจ Enhancements

    • nodes created via k3d node create now inherit the registry config from existing nodes (if there is any) (#597)
    • ๐Ÿš‘ the cgroupv2 hotfix (custom entrypoint script) is now enabled by default (#603)
      • disable by setting the environment variable K3D_FIX_CGROUPV2=false

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix using networks without IPAM config (e.g. host)

    Misc

    • ๐Ÿ“„ docs: edit links on k3d.io now point to the correct branch (main)
    • ๐Ÿ“„ docs: new FAQ entry on spurious PID entries when using shared mounts (#609, @leelavg)
  • v4.4.3 Changes

    Highlights

    • ๐Ÿšš cgroupv2 support: to properly work on cgroupv2 systems, k3s has to move all the processes from the root cgroup to a new /init cgroup and enable subtree_control
      • this is going to be included in the k3s agent code directly (https://github.com/k3s-io/k3s/pull/3242)
      • for now we're overriding the container entrypoint with a script that does this (#579, compare https://github.com/k3s-io/k3s/pull/3237)
      • thanks a lot for all the input and support @AkihiroSuda
      • Usage: set the environment variable K3D_FIX_CGROUPV2 to a true value before/when creating a cluster with k3d
      • e.g. export K3D_FIX_CGROUPV2=1

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix: docker volume not mountable due to validation failure
      • was not able to mount named volume on windows as we're checking for : meant for drive-letters and k3d separators

    Misc

    • ๐Ÿ›  fix create command's flags typo (#568, @Jason-ZW)
  • v4.4.2 Changes

    ๐Ÿ›  Fixes

    • k3d-proxy: rename udp upstreams to avoid collisions/duplicates (#564)

    ๐Ÿ”‹ Features

    • add hidden command k3d runtime-info used for debugging (#553)
      • this comes with some additions on package/runtime level
    • add experimental --subnet flag to get some k3d IPAM to ensure that server nodes keep static IPs across restarts (#560)

    Misc

    • ๐Ÿ“„ docs: fix typo (#556, @gcalmettes)
    • ๐Ÿ“„ docs: fix typo (#561, @alechartung)
    • ๐Ÿš€ ci/drone: pre-release on -dev.X tags
    • ๐Ÿš€ ci/drone: always build no matter the branch name (just not release)
    • ๐Ÿ“„ docs: add automatic command tree generation via cobra (#562)
    • ๐Ÿ‘‰ makefile: use go env gopath as install target for tools (as per #445)
    • 0๏ธโƒฃ JSONSchema: add some examples and defaults (now also available via https://raw.githubusercontent.com/rancher/k3d/main/pkg/config/v1alpha2/schema.json in your IDE)
  • v4.4.1 Changes

    ๐Ÿ›  Fixes

    • ๐Ÿ‘‰ use viper fork that contains a fix to make cobra's StringArray flags work properly
      • this fixes the issue, that flag values containing commas got split (because we had to use StringSlice type flags)
      • this is to be changed back to upstream viper as soon as https://github.com/spf13/viper/pull/398 (or a similar fix) got merged
  • v4.4.0 Changes

    ๐Ÿ”‹ Features / Enhancements

    • ๐Ÿ‘Œ Support for Memory Limits using e.g. --servers-memory 1g or --agents-memory 1.5g (#494, @konradmalik)
      • enabled by providing fake meminfo files

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix absolute paths in volume mounts on Windows (#510, @markrexwinkel)

    ๐Ÿ“š Documentation

    • ๐Ÿ“„ clarify registry names in docs and help text
    • โž• add usage section about config file (#534)
    • โž• add FAQ entry on certificate error when running behind corporate proxy
    • โž• add MacPorts install instructions (#539, @herbygillot)
    • Heal Shruggie: Replace amputated arm (#540, @claycooper)
  • v4.3.0 Changes

    ๐Ÿ”‹ Features / Enhancements

    • ๐Ÿ‘‰ Use Go 1.16
      • update dependencies, including kubernetes, docker, containerd and more
      • add darwin/arm64 (Apple Silicon, M1) build target (#530)
      • use the new //go:embed feature to directly embed the jsonschema in the binary (#529)
    • โž• Add a status column to k3d registry list output (#496, @ebr)
    • ๐Ÿ‘ Allow non-prefixed (i.e. without k3d- prefix) user input when fetching resources (e.g. k3d node get mycluster-server-0 would return successfully)

    ๐Ÿ›  Fixes

    • ๐Ÿ‘ Allow absolute paths for volumes on Windows (#510, @markrexwinkel)
    • ๐Ÿ›  fix nil-pointer exception in case of non-existent IPAM network config
    • Properly handle combinations of host/hostIP in kubeAPI settings reflected in the kubeconfig (#500, @fabricev)

    Misc

    • ๐Ÿ“„ docs: fix typo in stop command help text (#513, @searsaw)
    • ๐Ÿš€ ci/ghaction: AUR (pre-)release now on Ubuntu 20.04 and latest archlinux image
    • โœ‚ REMOVE incomplete and unused containerd runtime from codebase, as it was causing issues to build for windows and hasn't made any progress in quite some time now
  • v4.2.0 Changes

    ๐Ÿ”‹ Features / Enhancements

    • โž• add processing step for cluster config, to configure it e.g. for hostnetwork mode (#477, @konradmalik)
    • ๐Ÿ‘ allow proxying UDP ports via the load balancer (#488, @k0da)

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix usage of DOCKER_HOST env var for Kubeconfig server ref (trim port)
    • ๐Ÿ›  fix error when trying to attach the same node (e.g. registry) to the same network twice (#486, @kuritka)
    • ๐Ÿ›  fix Kube-API settings in configg file got overwritten (#490, @dtomasi)

    Misc

    • โž• add k3d.version label to created resources
    • โž• add Pull-Request template
    • ๐Ÿ“„ docs: add hint on minimal requirements for multi-server clusters (#481, @Filius-Patris)
  • v4.1.1 Changes

    ๐Ÿ›  Fixes

    • ๐Ÿ›  fix: --k3s-server-arg and --k3s-agent-arg didn't work (Viper StringArray incompatibility) (#482)
  • v4.1.0 Changes

    Highlights

    ๐Ÿ”ง :scroll: Configuration Enhancements

    • ๐Ÿ”ง :snake: use viper for configuration management
      • takes over the job of properly fetching and merging config options from
      • CLI arguments/flags
      • environment variables
      • config file
      • this also fixes some issues with using the config file (like cobra defaults overriding config file values)
    • :heavy_check_mark: add JSON-Schema validation for the Simple config file schema
    • :new: config version k3d.io/v1alpha2 (some naming changes)
      • exposeAPI -> kubeAPI
      • options.k3d.noRollback -> options.k3d.disableRollback
      • options.k3d.prepDisableHostIPInjection -> options.k3d.disableHostIPInjection

    ๐Ÿณ :computer: Docker over SSH

    • ๐Ÿ‘Œ Support Docker over SSH (#324, @ekristen & @inercia)

    ๐Ÿ”‹ Features & Enhancements

    • โž• add root flag --timestamps to enable timestamped logs
    • ๐Ÿ‘Œ improved multi-server cluster support (#467)
      • log a warning, if one tries to create a cluster with only 2 nodes (no majority possible, no fault tolerance)
      • revamped cluster start procedure: init-node, sorted servers, agents, helpers
      • different log messages per role and start-place (that we wait for to consider a node to be ready)
      • module: NodeStartOpts now accept a ReadyLogMessage and NodeState now takes a Started timestamp string

    ๐Ÿ›  Fixes

    • do not ignore --no-hostip flag and don't inject hostip if --network=host (#471, @konradmalik)
    • ๐Ÿ›  fix: --no-lb ignored
    • ๐Ÿ›  fix: print error cause when serverlb fails to start

    Misc

    • โœ… tests/e2e: add config override test
    • โœ… tests/e2e: add multi server start-stop cycle test
    • โœ… tests/e2e: improved logs with stage and test details.
    • ๐Ÿ— builds&tests: use Docker 20.10 and BuildKit everywhere
    • ๐Ÿ“„ :memo: docs: add https://github.com/AbsaOSS/k3d-action (GitHub Action) as a related project (#476, @kuritka)

    โœ… Tested with

    • โœ… E2E Tests ran with k3s versions
      • v1.17.17-k3s1 (see Known Issues below)
      • v1.18.15-k3s1 (see Known Issues below)
      • v1.19.7-k3s1
      • v1.20.2-k3s1

    Known Issues

    • automatic multi-server cluster restarts tend to fail with k3s versions v1.17.x & v1.18.x and probably earlier versions (using dqlite)
    • Using Viper brings us lots of nice features, but also one problem:
      • We had to switch StringArray flags to StringSlice flags, which
      • allow to use multiple flag values comma-separated in a single flag, but also
      • split flag values that contain a comma into separate parts (and we cannot handle issues that arise due to this)
  • v4.0.0 Changes

    ๐Ÿ’ฅ 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/](./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)