Releases: weaveworks/ignite
v0.5.3
This is the third patch release in the v0.5.X
series, containing one enhancement that helps projects using the ignite binary parse version information without root.
Note: dependent modules were calculated with a newer version of go; see #433
Enhancements
Trying it out / Next Steps!
In short:
export VERSION=v0.5.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
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.6.0
Welcome to the v0.6.0
release, consisting of major underlying improvements, and a more efficient runtime.
This release consists of 25 noteworthy PRs from 4 contributors; although v0.5.0 was released just two weeks ago!
We had 5 contributions from 2 external contributors, thanks 🎉!
The main themes of this release has been:
- containerd is now used as the default container runtime for higher security and speed, and less resource usage
- This means that Ignite doesn't depend on
docker
anymore!
- This means that Ignite doesn't depend on
- CNI is now the default networking plugin; by default the
bridge
andportmap
plugins are used- You can still use your third-party CNI implementation of choice, see the networking doc
- GitOps Toolkit refactor is complete; now everything you need to create your Git-backed application is available at https://github.com/weaveworks/gitops-toolkit
- Ignite is using this toolkit internally to perform its GitOps capabilities, now you can easily use this functionality, too!
- Bugfixes and usability improvements all around the place
Also, our documentation is now available at https://ignite.readthedocs.org.
Check that site out whenever you need some information, or open an issue :)
Deprecations
- As per v0.5.0, the
v1alpha2
API version is the default. Going forward, thev1alpha1
API version is deprecated, and will be removed in a future release.
New Features
- Make containerd the default runtime and CNI the default network plugin (#371, @twelho)
- Implement the containerd runtime for Ignite (#337, @twelho)
- Add a default CNI
bridge
andportmap
network for Ignite (#370, @twelho) - Implement hostPort support with CNI (#375, @luxas)
- Add openSUSE images (#357, @aojea)
Enhancements
- Implement cleanup of CNI networks using the default bridge (#376, @luxas)
- containerd backend improvements (#368, @twelho)
- Implement runtime selection, only load necessary providers (#366, @twelho)
- Split packages so we can extract
gitops-toolkit
(#347, @luxas) - Switch to using
weaveworks/gitops-toolkit
(#359, @luxas) - Switch imports to utilize
gitops-toolkit
(#354, @luxas) - Simplify the CNI code by vendoring
github.com/containerd/go-cni
(#349, @luxas) - FileWatcher: Support internal moves without re-creating and multiple active moves at once (#341, @twelho)
- Fix GOHOSTARCH propagation, tag development image for the host architecture only (#340, @twelho)
- Fix ignite-spawn's formatting when performing cleanup on VM metadata (#336, @twelho)
- Automatically optimize the size of an imported image (#335, @twelho)
- Add shell autocompletion for
ignited
(#363, @silenceshell)
Bug Fixes
- Add
err
as a param forlog.Errorf
(#367, @silenceshell) - Fix an issue in the GitDirectory loop when trying to commit without any actual changes (#369, @silenceshell)
- GitOps: only change the VM state if it differs from the current one (#374, @twelho)
- Move VM network removal to logically correct place (#373, @twelho)
- Fix Docker client port mappings by actually exposing them after binding (#350, @twelho)
Documentation
- Update the docs for v0.6.0 (#378, @luxas)
- Docs: Bump latest Ignite version to v0.5.1 (#362, @silenceshell)
- Change Read the Docs links to point to the stable branch in main README (#338, @twelho)
Trying it out / Next Steps!
NOTE: Stop your VMs before performing the upgrade, as the underlying container runtime has changed!
In short:
export VERSION=v0.6.0
export ARCH=$([ $(uname -m) = "x86_64" ] && echo amd64 || echo arm64)
for binary in ignite ignited; do
echo "Installing ${binary}..."
curl -sfLo ${binary} https://github.com/weaveworks/ignite/releases/download/${VERSION}/${binary}-${ARCH}
chmod +x ${binary}
sudo mv ${binary} /usr/local/bin
done
# Install the CNI plugins if you don't already have them
export CNI_VERSION=v0.8.2
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.5.2
This is the second patch release in the v0.5.X
series, containing one bug fix needed for integrating well with Footloose.
Bug Fixes
Trying it out / Next Steps!
In short:
export VERSION=v0.5.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.1
The first patch release in the v0.5.X
series. Contains some much needed UX improvements, go ahead and try it out!
Enhancements
- Make
ignite daemon
handle file moves without re-creating and support multiple active moves at once (#341, @twelho) - Fix
GOHOSTARCH
propagation in the Makefile, tag development image for the host architecture only (#340, @twelho) - Fix
ignite-spawn
's VM metadata formatting when performing a cleanup (#336, @twelho) - Automatically optimize the size of imported images, support importing large images (#335, @twelho)
Documentation
Trying it out / Next Steps!
In short:
export VERSION=v0.5.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.0
This release consists of 54 noteworthy PRs from 12 contributors.
We had 14 contributions from 8 external contributors, thanks 🎉!
The main themes of this release has been:
- Persistent Storage: Block Device support added as the first external volume type
- Improved API: We're continuously improving the API; this release contains
ignite.weave.works/v1alpha2
(still backwards-compatible withv1alpha1
) - Read-write GitOps: In GitOps mode, Ignite now also pushes the actual state in
.status
back to the repo - Refactoring towards a client-server model: We're now shipping
ignited
that holds the reconciling GitOps and Manifest Directory modes - Multi-platform: We're now shipping ARM 64-bit binaries that you can use on e.g. Packet (and eventually, Raspberry Pi 4!)
Also, our documentation is now available at https://ignite.readthedocs.org.
Check that site out whenever you need some information, or open an issue :)
New Features
- Support external volumes (block devices) in Ignite VMs (#275, @twelho)
- Add ARM64 support (#173, @luxas)
- Add new binary:
ignited
(#264, @luxas) - Add new command:
ignite exec
(#232, @BenTheElder) - Add Manifest Directory support (like kubelet's Static Pods) (#234, @twelho)
- Support directories as well with the
--copy-files
flag (#271, @twelho) - Implement read-write GitOps (#241, @twelho)
API Changes
- Remove
.spec.network.mode
; use a global--network-plugin
flag instead (#319, @luxas) - Rename
.spec.image.ociClaim.ref
to.spec.image.oci
for simplicity (#311, @twelho) - Redesign OCI image status: Display the image's exact repository digest (#307, @twelho)
- Add
.status.runtime.id
the VM container's ID (#294, @twelho) - Support configuring
BindAddress
andProtocol
for aPortMapping
(#299, @twelho) - Add
vm.status.startTime
to track the VM's uptime externally (#296, @twelho) - Replace
vm.status.state
withvm.status.running
(#292, @twelho) - Add the initial v1alpha2 API types (#250, @twelho)
Enhancements
- Refactor: Use the
netlink
library instead of exec'ing out toip
(#279, @alexeldeib) - Improve the CNI implementation, and documentation (#308, @luxas)
- Enable testing in CI, fix the Makefile and tidy (#280, @luxas)
- Automatically generate the release notes (#283, @luxas)
- Structured logging across the application; add logging support to
ignite-spawn
(#247, @twelho) - Extract watcher, batcher and monitor into pkg/util (#245, @luxas)
- Robust recursive FileWatcher support using
notify
(#265, @twelho) - Document developer meetings (#272, @dholbach)
- Create/use a runtime interface instead of direct calls to Docker (#211, @twelho)
- Add structured validation for the API types (#216, @luxas)
- Add Strategic Merge Patch support to the storage (#225, @luxas)
- Improve vulnerability scanning of Docker image (#239, @DieterReuter)
- CNI networking cleanup support, Docker client robustness improvements (#111, @twelho)
- Support checksum-based Cache invalidation, improve cache's object handling (#227, @twelho)
- Rename GitStorage into ManifestStorage (#226, @luxas)
- Client and Storage rework: Recognize multiple API groups (#221, @luxas)
- Create internal API types, and use them (#215, @luxas)
Bug Fixes
- Fix
ignite rm -f
for a running VM without--debug
(#320, @twelho) - Ensure the directory for
godoc2md
(#231, @BenTheElder) - Run
gofmt
first after generating code (#236, @BenTheElder) - Fix image root permissions (#249, @praseodym)
- Separate graph generation from
make tidy
, add make target docs (#233, @twelho)
Documentation
- Documentation updates for v0.5.0 (#324, @twelho)
- docs: packet and azure (#330, @alexeldeib)
- add simple CODEOWNERS file (#331, @dholbach)
- add logo to docs (#326, @dholbach)
- Document cloud provider instances with KVM support (#222, @paavan98pm)
- Add Ignite + Footloose documentation (#313, @robertojrojas)
- Add a Read The Docs website:
ignite.readthedocs.org
(#246, @dholbach) - Documentation updates and clarifications for the New Storage implementation (#242, @twelho)
- Index awesome doc (#276, @dholbach)
- Update docs links (#268, @dholbach)
- Add Google Group to docs for Calendar and permissions (#248, @stealthybox)
- Docs fix: Remove duplicate bracket (#212, @silenceshell)
- Docs fix: Update the command for deleting all VMs (#201, @curx)
- Docs fix: Duplicate bracket (#218, @silenceshell)
- Docs fix: ID is in
.metadata.uid
, not.metadata.name
(#219, @silenceshell) - Add an awesome-ignite list for ignite (#270, @luxas)
- Changed --kernel to --kernel-image for accuracy (#217, @paavan98pm)
Trying it out / Next Steps!
In short:
export VERSION=v0.5.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
A more throughout installation guide is available here: https://ignite.readthedocs.io/en/latest/installation.html
v0.5.0-rc.1
This is the first release candidate for v0.5.0
. We hope to release v0.5.0
very shortly.
New Features
API Changes
- Remove
.spec.network.mode
; use a global--network-plugin
flag instead (#319, @luxas) - Rename
.spec.image.ociClaim.ref
to.spec.image.oci
for simplicity (#311, @twelho) - Redesign OCI image status: Display the image's exact repository digest (#307, @twelho)
- Add
.status.runtime.id
the VM container's ID (#294, @twelho) - Support configuring
BindAddress
andProtocol
for aPortMapping
(#299, @twelho) - Add
vm.status.startTime
to track the VM's uptime externally (#296, @twelho) - Replace
vm.status.state
withvm.status.running
(#292, @twelho)
Enhancements
- Refactor: Use the
netlink
library instead of exec'ing out toip
(#279, @alexeldeib) - Improve the CNI implementation, and documentation (#308, @luxas)
Bug Fixes
Documentation
- Add logo to docs (#326, @dholbach)
- Document cloud provider instances with KVM support (#222, @paavan98pm)
- Add Ignite + Footloose documentation (#313, @robertojrojas)
Trying it out / Next Steps!
In short:
export VERSION=v0.5.0-rc.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.0-alpha.1
This is the first prerelease in the v0.5.x
series. Please try it out, and also note we now have arm64 builds!
New Features
- Add new binary:
ignited
(#264, @luxas) - Add ARM64 support (#173, @luxas)
- Add new command:
ignite exec
(#232, @BenTheElder) - Add Manifest Directory support (like kubelet's Static Pods) (#234, @twelho)
- Support directories as well with the
--copy-files
flag (#271, @twelho) - Implement read-write GitOps (#241, @twelho)
API Changes
Enhancements
- Automatically generate the release notes (#283, @luxas)
- Structured logging across the application; add logging support to
ignite-spawn
(#247, @twelho) - Extract watcher, batcher and monitor into pkg/util (#245, @luxas)
- Robust recursive FileWatcher support using
notify
(#265, @twelho) - Document developer meetings (#272, @dholbach)
- Enable testing in CI, fix the Makefile and tidy (#280, @luxas)
- Create/use a runtime interface instead of direct calls to Docker (#211, @twelho)
- Add structured validation for the API types (#216, @luxas)
- Add Strategic Merge Patch support to the storage (#225, @luxas)
- Improve vulnerability scanning of Docker image (#239, @DieterReuter)
- CNI networking cleanup support, Docker client robustness improvements (#111, @twelho)
- Support checksum-based Cache invalidation, improve cache's object handling (#227, @twelho)
- Rename GitStorage into ManifestStorage (#226, @luxas)
- Client and Storage rework: Recognize multiple API groups (#221, @luxas)
- Create internal API types, and use them (#215, @luxas)
Bug Fixes
- Ensure the directory for
godoc2md
(#231, @BenTheElder) - Run
gofmt
first after generating code (#236, @BenTheElder) - Fix image root permissions (#249, @praseodym)
- Separate graph generation from
make tidy
, add make target docs (#233, @twelho)
Documentation
- Add a Read The Docs website:
ignite.readthedocs.org
(#246, @dholbach) - Documentation updates and clarifications for the New Storage implementation (#242, @twelho)
- Index awesome doc (#276, @dholbach)
- Update docs links (#268, @dholbach)
- Add Google Group to docs for Calendar and permissions (#248, @stealthybox)
- Docs fix: Remove duplicate bracket (#212, @silenceshell)
- Docs fix: Update the command for deleting all VMs (#201, @curx)
- Docs fix: Duplicate bracket (#218, @silenceshell)
- Docs fix: ID is in
.metadata.uid
, not.metadata.name
(#219, @silenceshell) - Add an awesome-ignite list for ignite (#270, @luxas)
- Changed --kernel to --kernel-image for accuracy (#217, @paavan98pm)
Trying it out / Next Steps!
In short:
export VERSION=v0.5.0-alpha.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.4.2
The second patch release for the v0.4.x
release stream.
If you want to have a look, here are changes for versions v0.4.0
and v0.4.1.
In this release, we had 5 PRs from 3 community contributors, thank you for your amazing work 🎉!
We hope to see this trend continue, all help is very welcome to this community-driven project!
New Features / UX Improvements
- Flannel is now usable with the Ignite kernel thanks to adding the VXLAN kernel module (#154, @curx)
- HAProxy checking for Kubernetes API
/healthz
endpoint (#156, @curx) - Allow unmarshaling unquoted UIDs from JSON for convenience (#178, @twelho)
- The VM images based on
Ubuntu
,CentOS
andAmazon Linux
can now be built on top of a specific release (#193, @twelho)
Bugfixes
- Import only
/boot
and/lib
from kernel OCI images, don't overwrite e.g./etc/resolv.conf
(#168, @twelho) - The creation timestamp can now be omitted from specification files, it will be added automatically (#174, @twelho)
- List all VMs instead of just running ones when calling
ignite vm ls/list
(#179, @twelho) - More robust kernel version checking if e.g. the
strings
binary is not available (#189, @twelho)
Docs improvements
- Fix formatting in
README.md
(#166, @sftim) - Fix link to
CentOS
image inREADME.md
(#161, @akshaychhajed) - Added
loop
kernel module dependency todocs/dependencies.md
(#155, @curx) - Clarify usage on
Ubuntu
andCentOS
, embed links to Joe Beda's TGIK recording (#175, @luxas) - Added a brand new
FAQ
! Check it out at FAQ.md! (#197, @luxas)
Trying it out / Next Steps!
In short:
export VERSION=v0.4.2
curl -fLo ignite https://github.com/weaveworks/ignite/releases/download/${VERSION}/ignite
chmod +x ignite
sudo mv ignite /usr/local/bin
A more throughout installation guide is available here: https://github.com/weaveworks/ignite/blob/master/docs/installation.md
v0.4.1
The first patch release for the v0.4.x
release stream.
If you want to go and look at the new and changed stuff in v0.4.0, see here.
This release we had an amazing amount of 9 PRs from 6 community contributors, in 48 hours after launch 🎉!
We hope to see this trend continue, all help is very welcome to this community-driven project!
New Features / UX Improvements
- It is now possible to access and talk to the Firecracker socket, and metrics/logs FIFOs. (#132, @patrobinson)
- Verify that the VM actually did start before
ignite start/run
reports success (#139, @twelho) - Provide better UX and error messages for the
ignite ssh
command (#149, @twelho)
Bugfixes
- Set the
-F
flag tomkfs.ext4
, as it is required on RHEL platforms. (#131, @junaid18183) - Generate RSA keys instead of ED25519 on FIPS machines. (#136, @junaid18183)
- Make the filtering framework respect exact matches (#138, @twelho)
- Don't fail although there are inactive network interfaces in the container (#146, @luxas)
Docs improvements
- Add a next action link for better developer-workflow in
installation.md
(#118, @alexellis) - Error out if the Ignite binary download fails (#120, @alexellis)
- Improve wording in the
README.md
(#125, @seeekr) - Fix link to the
prometheus.md
doc (#126, @webwurst) - Fix typo in
docs/README.md
(#128, @andrelop) - Added demo video to docs/usage.md (#140, @paavan98pm)
- Add docs on how to check for KVM support in the CPU/kernel (#145, @luxas)
Trying it out / Next Steps!
In short:
export VERSION=v0.4.1
curl -fLo ignite https://github.com/weaveworks/ignite/releases/download/${VERSION}/ignite
chmod +x ignite
sudo mv ignite /usr/local/bin
A more throughout installation guide is available here: https://github.com/weaveworks/ignite/blob/master/docs/installation.md
v0.4.0
v0.4.0
Ignite's biggest release yet!
There are many significant changes compared to before:
New Features
- Make base and kernel OCI images composable for a VM. You can now choose what kernel to combine with what base image freely #105
- Add the GitOps mode for Ignite using
ignite gitops
#100- Documentation: https://github.com/weaveworks/ignite/blob/master/gitops
- Make it possible to run
ignite create
andignite run
declaratively 5733364 - Added Prometheus metrics for
ignite-spawn
94abc52 - Implemented CNI support a889753
API Machinery
- Added the
ignite.weave.works/v1alpha1
API group with the Ignite API types ca1edc8- API reference: https://github.com/weaveworks/ignite/blob/master/api/ignite.md
- This API version will not change in a future version. When improvements are made, it will be to
v1alpha2
etc.
- Add a meta API package containing supporting but generic API types for Ignite 09d51ab
- API reference: https://github.com/weaveworks/ignite/blob/master/api/meta.md
- Create composable interfaces for the internal API machinery:
Client
->Cache
->Storage
->RawStorage
->Serializer
#93 #96 #99 - The API Machinery used in Ignite is partly based on the Kubernetes API machinery (
k8s.io/apimachinery
), and hence follows some of the same patterns
New Commands
Documentation
- Add user-facing documentation and guides #113
- Generate OpenAPI specifications f1c5bfd
- Add API type documentation 218c947
- Added architecture diagram da53f9f
- Added graph of module dependencies be7cc08
Updated Images
Base Images
weaveworks/ignite-ubuntu:v0.4.0
: https://github.com/weaveworks/ignite/blob/master/images/ubuntu/Dockerfileweaveworks/ignite-centos:v0.4.0
: https://github.com/weaveworks/ignite/blob/master/images/centos/Dockerfileweaveworks/ignite-amazonlinux:v0.4.0
: https://github.com/weaveworks/ignite/blob/master/images/amazonlinux/Dockerfileweaveworks/ignite-alpine:v0.4.0
: https://github.com/weaveworks/ignite/blob/master/images/alpine/Dockerfile
Kernel Images
weaveworks/ignite-kernel:4.14.123
: https://github.com/weaveworks/ignite/blob/master/images/kernel/Dockerfileweaveworks/ignite-kernel:4.19.47
(default): https://github.com/weaveworks/ignite/blob/master/images/kernel/Dockerfileweaveworks/ignite-amazon-kernel:v0.4.0
(using4.14.55
): https://github.com/weaveworks/ignite/blob/master/images/amazon-kernel/Dockerfile
Internal Improvements
- A significant refactor of the whole application has been made to support the new API machinery
- Add structured logging #110
- Factor out
ignite-spawn
into its own binary running in the container 0a1965e - Upgraded the Firecracker version to v0.17.0 41e3595
- Set Go version to 1.12.6 d00cce7
Trying it out / Next Steps!
In short:
export VERSION=v0.4.0
curl -fLo ignite https://github.com/weaveworks/ignite/releases/download/${VERSION}/ignite
chmod +x ignite
sudo mv ignite /usr/local/bin
A longer installation guide is available here: https://github.com/weaveworks/ignite/blob/master/docs/installation.md