Releases: weaveworks/ignite
v0.10.0
Released: 7/19/2021
This release adds two major features and a new API version.
VM annotations can be used to tell ignite another system will inject interfaces into the sandbox container's net-namespace.
These annotations will also tell ignite to plumb those sandbox interfaces to the firecracker MicroVM using tc_redirect. (code example)
kind: VM
apiVersion: ignite.weave.works/v1alpha4
metadata:
annotations:
ignite.weave.works/interface/eth0: 'dhcp-bridge'
ignite.weave.works/interface/eth2: 'tc-redirect'
ignite.weave.works/interface/eth3: 'tc-redirect'
ignite.weave.works/interface/macvtap-uvnrt: 'macvtap'
ignite.weave.works/interface/macvtap-hgfeq: 'macvtap'
ignite.weave.works/sandbox-env/FIRECRACKER_GO_SDK_REQUEST_TIMEOUT_MILLISECONDS: "1000"
ignite.weave.works/sandbox-env/FIRECRACKER_GO_SDK_INIT_TIMEOUT_SECONDS: "1"
It's now possible to use OS and kernel images from an authenticated private registry.
Interface bonding is also enabled in the newest ignite kernels.
New base OS images and kernels have been released with the GitHub Actions release tools.
The default kernel has been updated from 5.4.108
to 5.10.51
.
This release consists of 12 noteworthy PR's from 4 contributors. 4 of these patches were sent by 2 external contributors.
Thanks so much for using and contributing back to the project.
Cheers to everyone who was part of shipping this release:
Installing
Check out the guide here: https://ignite.rtfd.io/en/stable/installation/
OCI Images for this release
ignite ( sandbox )
ignite-kernel:4.14.239 [multi-arch]
ignite-kernel:4.19.197 [multi-arch]
ignite-kernel:5.4.133 [multi-arch]
ignite-kernel:5.10.51 [multi-arch] ( default )
ignite-kernel:5.12.18 [multi-arch]
ignite-kernel:5.13.3 [multi-arch]
ignite-amazon-kernel
ignite-amazonlinux 2
ignite-alpine
ignite-centos 7, 8
ignite-opensuse tumbleweed, leap (
ignite-ubuntu [multi-arch] 16.04, 18.04, 20.04
ignite-kubeadm [multi-arch] v1.18.3
ignite-k3s v1.20.4
Features
- Add v1alpha4 API (#821, darkowlzz)
- Enable multiple non-IP interface to be connected via tc redirect (#836, networkop)
- Aligning spawn timeouts between different functions (#850, networkop)
- Add client config option + registry auth e2e tests (#844, darkowlzz)
- Add loading credentials from docker cli config (#833, darkowlzz)
Bug Fixes
- Ignore not found error while deactivating snapshot (#823, darkowlzz)
- SIGSEGV with metadata from older version of ignite (#854, juozasg)
Kernel
- kernel config updates (#849, networkop)
- Add 5.12 and 5.13 kernels + bump kernel patch versions (#857, stealthybox)
- Update default kernel to 5.10.51 (#858, stealthybox)
Docs
Dependencies
Automated
- Update go versions in github workflows (#834, darkowlzz)
- [automated] Update go dependencies (#824, github-actions[bot])
- [automated] Update go dependencies (#846, github-actions[bot])
- [automated] Update go dependencies (#847, github-actions[bot])
- [automated] Update go dependencies (#856, github-actions[bot])
- Bump actions/setup-python from 2.2.1 to 2.2.2 (#837, dependabot[bot])
- Bump docker/login-action from 1 to 1.9.0 (#841, dependabot[bot])
- Bump docker/login-action from 1.9.0 to 1.10.0 (#848, dependabot[bot])
- Bump peter-evans/create-pull-request from 3.9.1 to 3.10.0 (#845, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.8.2 to v3.9.1 (#835, dependabot[bot])
v0.9.0
Released: 4/12/2021
This release allows changing the internal id prefixes of VM components. This overcomes limitations /w CNI's like Weave net.
A U/X improvement has been made to the VM list command to show when the container runtime state of the VM does not match what
ignite has stored in the API objet.
New base OS images and kernels have been released with the GitHub Actions release tools.
A k3s
OS image is now pushed for amd64.
The default kernel has been updated to 5.4.108
.
This release consists of 37 noteworthy PR's from 6 contributors. 11 of these patches were sent by 3 external contributors.
11 patches were sent by 3 people new to the project; welcome! :)
Thanks so much for using and contributing back to the project.
Cheers to everyone who was part of shipping this release:
Installing
Check out the guide here: https://ignite.rtfd.io/en/stable/installation/
OCI Images for this release
ignite ( sandbox )
ignite-kernel:4.14.227 [multi-arch]
ignite-kernel:4.19.183 [multi-arch]
ignite-kernel:5.4.108 [multi-arch] ( default )
ignite-kernel:5.10.25 [multi-arch]
ignite-amazon-kernel
ignite-amazonlinux 2
ignite-alpine
ignite-centos 7, 8
ignite-opensuse tumbleweed, leap
ignite-ubuntu [multi-arch] 16.04, 18.04, 20.04
ignite-kubeadm [multi-arch] v1.18.3
ignite-k3s v1.20.4
Enhancements
- Add option to change ID prefix (#757, bboreham, stealthybox)
- ps: Mark VM with * when the state can't be confirmed (#808, darkowlzz)
- ps: Add out-of-date VM manifest status indicator (#787, darkowlzz)
Runtime
- Change the log level in RemoveContainer to debug (#812, darkowlzz)
- runtime: Get containerd container task status (#779, darkowlzz)
- Fix containerd cont delete when task load or delete fails (#791, stealthybox)
- Avoid race between stop/kill and wait (#773, bboreham)
Bug Fixes
- runtime: Handle error when container not found (#809, darkowlzz)
- Handle error when the backend storage is uninitialized (#807, darkowlzz)
- ps: Handle error when the backend storage is uninitialized (#778, darkowlzz)
- Use declarative port mappings and copy files values when CLI flags are empty (#796, onatm)
- Fix vm stop-start with default providers (#735, darkowlzz)
- Avoid crash when network has no gateway (#749, bboreham)
- Refactor: extract TarExtract function (#762, bboreham)
Docs
- Fix MASTER_IP definition in kubeadm README (#741, EmeraldShift)
OS Images
- Bump k3s to v1.20.4+k3s1 (#800, gaby)
- Bump ignite-spawn base image to Alpine to 3.13 (#799, gaby)
- Add a k3s sample image (#739, EmeraldShift)
Kernels
- Support for Linux LTS kernel 5.10.x (#804, gaby)
- Upgrade kernel versions (#798, gaby)
- Bump default kernel to 5.4.102 (#806, gaby)
- Bump Kernel versions. Bump default kernel version to 5.4.108 (#811, gaby)
- Bump Kernel Versions for #811 (#815, stealthybox)
Dependencies
- Upgrade to Firecracker v0.22.0 (#692, stealthybox)
- Upgrade firecracker to v0.22.4 (#797, gaby)
- Bump CNI to v0.8.7 (#731, stealthybox)
- Bump CNI Plugins to 0.9.1 (#805, gaby)
Build
- Cache versioned shallow clones for kernel config patching (#814, stealthybox)
- Fix #! to use /usr/bin/env for certain scripts (#789, stealthybox)
Testing
- Small test improvements (#760, bboreham)
- Show output in test to aid debugging (#759, bboreham)
- Move from Travis to Semaphore CI (#770, bboreham)
Releasing
- workflow/release-os-images: Disable fail-fast (#730, darkowlzz)
- Allow clean builds from tarballs (#766, stealthybox)
- Add k3s to the release-os-image gh workflow (#802, darkowlzz)
- is_git_repo: Return without echo (#801, darkowlzz)
- Fix small bug in hack/gen-release-notes.sh (#817, stealthybox)
Automated
- Bump peter-evans/create-pull-request from v3.8.1 to v3.8.2 (#781, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.7.0 to v3.8.1 (#780, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.6.0 to v3.7.0 (#774, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.5.2 to v3.6.0 (#758, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.5.1 to v3.5.2 (#743, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.5.0 to v3.5.1 (#738, dependabot[bot])
- Bump peter-evans/create-pull-request from v3.4.1 to v3.5.0 (#732, dependabot[bot])
- Bump golangci/golangci-lint-action from v2.5.1 to v2.5.2 (#816, dependabot[bot])
- Bump golangci/golangci-lint-action from v2.3.0 to v2.5.1 (#786, dependabot[bot])
- Bump actions/setup-python from v2.2.0 to v2.2.1 (#753, dependabot[bot])
- Bump actions/setup-python from v2.1.4 to v2.2.0 (#752, dependabot[bot])
- [automated] Update go dependencies ([#767](...
v0.8.0
v0.8.0
Released: 11/9/2020
We're happy to share that ignite can now be generally configured with a central config file.
Check out the docs for how to configure ignite here.
Using this new config, it's no longer necessary to remember to pass --runtime
and --network-plugin
with every command.
You can choose your own default behavior.
Working with individual VM's is now also much less error-prone.
This release includes a new API version, v1alpha3
, which allows VM's to remember their runtime and network config.
There's no current tooling for migrating to the new VM API for live workloads.
However, older API objects are forwards compatible, and restarting the workload should upgrade the API on disk.
As always, taking any necessary backups and re-creating workloads is the safest upgrade path :)
As is tradition, we have fixed bugs: networking bugs, lifecycle bugs, little UX things -- check the list.
It's now possible to run ignite within nested container environements such as containerd-within-docker and WSL2.
Detailed documentation for containerized setups will graduate from issue comments to the latest docs site soon.
It's really notable that our e2e test suite is getting more complete!
It's great to work with a project where confidence improves with every new patch, haha!
Alongside this release, we've updated all of the base OS images with new release tools powered by GitHub Actions.
We're not shipping any new kernels, so the default is the same as before -- new kernels will be pushed in an upcoming release.
This release consists of 52 noteworthy PR's from 10 contributors. 37 of these patches were sent by 6 external contributors.
7 patches were sent by 5 people new to the project; welcome! :)
Thanks so much for using and contributing back to the project.
Cheers to everyone who was part of shipping this release:
- @darkowlzz
- @dholbach
- @gabeio
- @innobead
- @Khalian
- @leakingtapan
- @luxas
- @networkop
- @stealthybox
- @twelho
Installing
Check out the guide here: https://ignite.rtfd.io/en/stable/installation/
OCI Images for this release
ignite ( sandbox )
ignite-amazon-kernel
ignite-amazonlinux 2
ignite-alpine
ignite-centos 7, 8
ignite-opensuse tumbleweed, leap
ignite-ubuntu [multi-arch] 16.04, 18.04, 20.04
ignite-kubeadm [multi-arch] v1.18.3
Features
- Add support for ignite configuration file (#601, darkowlzz)
- Add ignite configuration file support to ignited (#655, darkowlzz)
Enhancements
- Update ignite help, image and kernel to no longer require root (#676, Khalian)
- Build kernel from a specific git tag (#725, darkowlzz)
- Shadow the bogus /etc/resolv.conf of centos:8 to fix
wksctl
(#611, twelho) - Make runtime and network-plugin VM create flags (#669, darkowlzz)
- Fix in-container device nodes for containerd runtime (#653, stealthybox)
- Exec blkid to getUUID() instead of relying on udevd symlinks (#652, stealthybox)
- Configure dmsetup to fallback to managing device nodes without udevd (#654, stealthybox)
Documentation
- Check links using GH Action (#573, dholbach)
- Add api-docs gen in CI (#641, darkowlzz)
- Update installation instructions for Amazon Linux (#671, Khalian)
- Fixes command in docs (#678, gabeio)
- docs/installation: set VM status.running to true (#667, darkowlzz)
- Update API conversion docs (#684, darkowlzz)
- Pin v1alpha1 API Docs to v0.7.0 GH links (#625, stealthybox)
- Remove runtime info from version (#677, darkowlzz)
- Fix multi-node networking by using Flannel (#645, twelho)
- Add kubefire in awesome doc (#663, innobead)
Bug Fixes
- Fix CNI portmapping cleanup (#691, networkop)
- Support removing networking from stopped VM (#661, innobead)
- Configuring proper gateway for ignite-spawn DHCP (#665, stealthybox)
- Fix image platform for arm image (#636, leakingtapan)
- Fix concurrent VM creation due to busy device error (#712, darkowlzz)
- Fix VM name generation when not specified (#698, darkowlzz)
- Fix CNI networking issues (MAC duplication + bridge ageing) (#638, twelho)
API Changes
- Remove ignite v1alpha1 API (#620, darkowlzz)
- Add VM name validation (#688, darkowlzz)
- Add runtime and network info in VM object (#651, darkowlzz)
- Add ignite/v1alpha3 API (#624, darkowlzz)
- Add VM Status defaulter (#662, darkowlzz)
- Initialize nil status network during conversion (#681, darkowlzz)
- Fix starting VM with non-default providers (#687, darkowlzz)
- Allow provider override when using config file (#647, darkowlzz)
Cleanup
- Export command option types (#686, darkowlzz)
- Error check and return - cleanup 2 (#648, darkowlzz)
- Add Golangci-lint and fix errors (#640, darkowlzz)
Testing
- Add ignited gitops mode e2e test (#689, darkowlzz)
- Add e2e test helpers (#666, darkowlzz)
- e2e: Add test for concurrent VM creation (#715, darkowlzz)
Release Infra
v0.7.1
The first patch release in the v0.7.X
series pulls in an important fix for the long-standing networking issues in Ignite, with #638 merged you should be able to seamlessly integrate with different CNI providers and implement multi-node networking with Ignite VMs.
v0.7.1
also brings improvements to the GitOps functionality courtesy of @luxas
and link checking improvements by @dholbach. Thanks!
Next Steps / Installation
In short:
export VERSION=v0.7.1
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
export CNI_VERSION=v0.8.5
export ARCH=$([ $(uname -m) = "x86_64" ] && echo amd64 || echo arm64)
sudo mkdir -p /opt/cni/bin
curl -sSL https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz | sudo tar -xz -C /opt/cni/bin
A more thorough installation guide is available here: https://ignite.readthedocs.io/en/latest/installation
OCI Images for this release
ignite (sandbox)
Enhancements
- Shadow the bogus /etc/resolv.conf of centos:8 to fix
wksctl
(#611, @twelho) - Rename the
gitops-toolkit
dependency tolibgitops
(#612, @twelho) - Use the new knownhosts package in fluxcd/toolkit (#617, @luxas)
- Use the new libgitops GitDirectory implementation (#615, @luxas)
Bug Fixes
Documentation
v0.7.0
v0.7.0
Released: 02/06/2020
We're excited to cut a large release.
This release consists of 57 noteworthy PR's from 13 contributors. 27 of these patches were sent by 8 external contributors -- thanks so much for using and contributing back to the project!
Among some of the many patches, VM's can now be started in parallel. (Images should be pulled beforehand)
The ignite ssh
and ignite exec
commands now share a native go implementation.
We've added the ignite cp
command along with improved CLI UX through filtering, templating, and examples.
You can now also create and run VM's imperatively using YAML files with the --config
flags.
Performance and stability improvements in VM and network lifecycle should make using ignite more pleasant,
and the various bugfixes allow newer versions of Ubuntu to start functioning.
Lastly, we're announcing initial support for ARM devices.
Our docker images for ignite-kernels as well os our OS images for Ubuntu and kubeadm now ship with a manifest
list and {}-arm64
tag.
We've pushed a fresh set of kernel and OS images to dockerhub to support this.
Check out our new guide for ARM -- try it out on your ARM server or RaspberryPi and let us know how it works for you.
It was difficult to condense all of that!
As a special note, Sunny(@darkowlzz) from the @StorageOS team has joined ignite as a maintainer. Thanks for all of your help, Sunny!
Cheers to everyone who was part of shipping this release:
- @bbros-dev
- @chanwit
- @croomes
- @darkowlzz
- @dholbach
- @gpauloski
- @kobayashi
- @luxas
- @michaelbeaumont
- @najeal
- @palemtnrider
- @PaulGrandperrin
- @stealthybox
Next Steps / Installation
In short:
export VERSION=v0.7.0
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
export CNI_VERSION=v0.8.5
export ARCH=$([ $(uname -m) = "x86_64" ] && echo amd64 || echo arm64)
sudo mkdir -p /opt/cni/bin
curl -sSL https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz | sudo tar -xz -C /opt/cni/bin
A more thorough installation guide is available here: https://ignite.readthedocs.io/en/latest/installation
OCI Images for this release
ignite ( sandbox )
ignite-kernel:4.14.182 [multi-arch]
ignite-kernel:4.19.125 [multi-arch] ( default )
ignite-kernel:5.4.43 [multi-arch]
ignite-amazon-kernel
ignite-amazonlinux 2
ignite-alpine
ignite-centos 7, 8
ignite-opensuse tumbleweed, leap
ignite-ubuntu [multi-arch] 16.04, 18.04, 20.04
ignite-kubeadm [multi-arch] v1.18.3
Enhancements
- rm: Add --config flag (#525, @darkowlzz)
- Add --require-name to create and run commands (#560, @darkowlzz)
- Add labels to VMs (#516, @darkowlzz)
- Added: vm filtering (#458, @najeal)
- Template formatted output for ps & inspect (#518, @darkowlzz)
- Add examples of inspect cmd (#590, @kobayashi)
- Unify ssh and exec commands (#580, @darkowlzz)
- Add interactive vm exec support (#572, @darkowlzz)
- Add command ignite cp (#550, @darkowlzz & @gpauloski)
- Unify some things around SSH handling (#607, @luxas)
- Write /etc/hostname. Needed get the right hostname for e.g. Ubuntu 20 (#608, @luxas)
- Update kubeadm image and guide (#606, @luxas)
- Implement kubeadm multi-arch + Fix image builds (#605, @stealthybox)
- Add sandbox-image VM flag (#598, @darkowlzz)
- Initial set of metrics for gitops processing (#494, @palemtnrider)
Kernel Improvements
- Update OS and kernel versions (#602, @luxas)
- Completely restructure & document the kernel image build (#506, @luxas)
- Add ARM64 kernels and images (#511, @luxas)
- Add loadable module for TCMU-based storage devices (#497, @croomes)
- Bump kernel configurations (#604, @luxas)
- Bump default kernel to 4.19.125 (#610, @stealthybox)
Bug Fixes
- Filter loopback IPs from VM metadata to prevent SSH related test flakes (#581, @stealthybox)
- Parallel VM creation fix (#524, @darkowlzz)
- Check runtime specific binary (#479, @chanwit)
- Don't fail preflight when only
docker-containerd
is available (#512, @luxas) - Fix preflight checker tests (#591, @darkowlzz)
- ignited: catch signals and cleanup socket file (#486, @chanwit)
- Cleanup container networking on vm rm (#515, @michaelbeaumont)
- Fix image import with runtime docker (#564, @darkowlzz)
- Tiny image import fix (#553, @darkowlzz)
- Fix boot on recent distribution like Ubuntu >=19.10 (#526, @PaulGrandperrin)
- Followup to #526 Ubuntu 19+ tar symlink fix (#577, @stealthybox)
- Fix false positive object already exists error (#517, @darkowlzz)
- Ignore docker source cleanup err when resource not found (#588, @darkowlzz)
- Fix OCIString parsing of local docker images (#556, @darkowlzz)
Documentation
- Use mkdocs instead of sphinx (#565, @dholbach)
- Document ARM and RaspberryPi installation and usage (#595, @stealthybox)
- A bit more details on the ARM 64-bit documentation (#609, @luxas)
- Address #534 (#541, @bbros-dev)
- Address #533 (#540, @bbros-dev)
- Address #522 (#537, @bbros-dev)
- Add FAQ entry about passing namespace to ctr ([#492](https://github....
v0.6.3
v0.6.3
Released: 10/12/2019
This is the third patch release in the v0.6.x
series, containing 1 security bug fix.
See #500 for ignite-specific details regarding this CVE.
Security Bug Fixes
- Patch CVE-2019-18960 -- Use Firecracker v0.18.1 for ignite 0.6.x (#499, @stealthybox)
Trying it out / Next Steps!
In short:
export VERSION=v0.6.3
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
export CNI_VERSION=v0.8.2
export ARCH=$([ $(uname -m) = "x86_64" ] && echo amd64 || echo arm64)
mkdir -p /opt/cni/bin
curl -sSL https://github.com/containernetworking/plugins/releases/download/${CNI_VERSION}/cni-plugins-linux-${ARCH}-${CNI_VERSION}.tgz | tar -xz -C /opt/cni/bin
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.6.2
This is the second patch release in the v0.6.X
series, containing bugfixes:
It moves the blocking SSH wait for vm's run with --ssh
to using the actual protocol.
It also fixes a locale bug with resize2fs
parsing that used to occur when using zh_CN.utf8
.
Bug Fixes
- Breakout and test
resize2fs
parsing with localized strings + fix forzh_CN.utf8
(#473, @stealthybox) - Refactor SSH wait (#474, @stealthybox)
- Use SSH Dial to check if SSH service is really running (#469, @chanwit)
Documentation
- Ensure CNI bin dir exists before installing (#471, @stealthybox)
- Bump docs install version to v0.6.2 (#475, @stealthybox)
Trying it out / Next Steps!
In short:
export VERSION=v0.6.2
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.5.5
This is the fifth patch release in the v0.5.X
series, containing bugfixes:
It moves the blocking SSH wait for vm's run with --ssh
to using the actual protocol.
It also fixes a locale bug with resize2fs
parsing that used to occur when using zh_CN.utf8
.
Bug Fixes
- Breakout and test resize2fs parsing with localized strings + fix for zh_CN.utf8 (#473, @stealthybox)
- Refactor SSH wait (#474, @stealthybox)
- Use SSH Dial to check if SSH service is really running (#469, @chanwit)
Documentation
- Ensure CNI bin dir exists before installing (#471, @stealthybox)
- Bump docs install version to v0.5.5 (@stealthybox)
Trying it out / Next Steps!
In short:
export VERSION=v0.5.5
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.6.1
We're excited to release v0.6.1
with usability improvements and lots of bug fixes :)
This release consists of 32 noteworthy PRs from 6 contributors over the past month.
We had 7 contributions from 4 external contributors. Thanks so much!
Ignite should now work with most installations of containerd -- even those that are installed underneath upstream docker.
Care has been taken with our installation instructions to ensure we are not breaking users docker installations.
We've also implemented a graceful fallback to older containerd-shim versions and now support containerd-shim-runc-v2.
This release also contains numerous fixes that make the CNI network plugin work much more reliably.
Connections to the internet from vm's using CNI should now work on most machines by default.
Please see the following user-facing change.
Default CNI Network Change
The default cni0
bridge has changed to a new ignite0
bridge introduced by the #460 bugfix. This comes with a new subnet as well.
We did this because the default CNI config shipped in v0.6.0
was a non-working configuration for most users.
You may continue to use the default CNI configuration. Nothing will change automatically.
If you are using your own CNI configuration, this does not affect you.
To migrate your running CNI networked vm's to the new default subnet, you can:
- install this new ignite version
- stop the relevant vm's
- delete the CNI network
- restart them
Example:
# first, upgrade to ignite v0.6.1
# list all vm's on the default 172.18.0.0/16 CNI network
sudo bin/ignite vm ls | grep '\b172.18.[0-9][0-9]*.[0-9][0-9]*\b'
# stop the listed vm's with the appropriate runtime
sudo bin/ignite stop my-containerd-vm
sudo bin/ignite stop my-docker-vm --runtime docker
# remove the old CNI network config
sudo rm -rf rm /etc/cni/net.d/
# optional: remove the old bridge
sudo ifconfig cni0 down
sudo ip link delete cni0
# restart your vm's
sudo bin/ignite start my-containerd-vm
sudo bin/ignite start my-docker-vm --runtime docker
# Your vm's will now have addresses configured in the 10.61.0.0/16 subnet.
# If they did not have internet connectivity before, they now should.
Enhancements
- wait for SSH when starting a VM (#429, @chanwit)
- skip root requirement for ignite version (#409, @chanwit)
- show runtime name when ignite version (#405, @chanwit)
- improve preflight check and add a containerd test case for ignite run (#416, @chanwit)
- Detect available containerd-shim versions defaulting to legacy linux runtime (#411, @stealthybox)
- log runtime during ignite run (#388, @silenceshell)
- preflight before start operation (#360, @najeal)
Bug Fixes
- Change default CNI network name, bridge name, and subnet #460, @stealthybox
- Chain firewall plugin to fix routing for default CNI bridge #442, @stealthybox
- Teardown IPMasq rules for all actual configured bridges instead of using the hardcoded default string (#461, @stealthybox)
- Fix containerd resolv.conf + DHCP behavior (#441, @stealthybox)
- Make getIPChains more precise and less failure-prone (#426, @stealthybox)
- quick fix typo umount as unmount in preflight check (#415, @chanwit)
- fix possible dm snapshot leaks (#381, @chanwit)
- make rm command more robust with addition check (#413, @chanwit)
Documentation
- Make documented install safer for docker-ce users (#454, @stealthybox)
- improve rm docs (#444, @chanwit)
- add installation notes about docker (#397, @kobayashi)
- use image weaveworks/ubuntu instead of centos:7 in command examples (#387, @silenceshell)
- default cni network does not support multi-node (#385, @silenceshell)
Dependencies
- update containerd to 1.3.0 and golang to 1.12.10 (#464, @chanwit)
- update firecracker to v0.18.0 (#414, @chanwit)
- Bump indirect dependency on klog #453, @stealthybox
- On release, use tidy-in-docker to prevent module differences from differing versions of go (#433, @stealthybox)
Development
- Add an e2e for ignite run #412, @chanwit
- Store e2e command output /w errors + remove variable sleep #425, @stealthybox
- e2e docker+cni and curl google.com #422, @stealthybox
- Load all images into containerd (#435, @stealthybox)
- specify the minimum version of make (#389, @silenceshell)
- Update Makefile for containerd with overridable commands (#417, @stealthybox)
Governance
- Update CODEOWNERS (#420, @stealthybox)
- Switch maintainers (#398, @luxas)
Trying it out / Next Steps!
In short:
export VERSION=v0.6.1
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.5.4
This is the fourth patch release in the v0.5.X
series, containing one enhancement that implements the blocking SSH wait for vm's run with --ssh
.
Enhancements
Release Machinery
- 0.5.x -- On release, use tidy-in-docker to prevent module differences from differing versions of go (#434, @stealthybox)
Trying it out / Next Steps!
In short:
export VERSION=v0.5.4
export GOARCH=$(go env GOARCH 2>/dev/null || echo "amd64")
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${GOARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html