Changelog History
Page 5
-
v0.12.0 Changes
๐ rkt v0.12.0 is an incremental release with UX improvements like fine-grained security controls and implicit generation of empty volumes, performance improvements, bug fixes and testing enhancements.
๐ New features and UX changes
- implement
rkt cat-manifest
for pods (#1744) - generate an empty volume if a required one is not provided (#1753)
- ๐ make disabling security features granular;
--insecure-skip-verify
is now--insecure-options={feature(s)-to-disable}
(#1738). See rkt's Global Options documentation. - ๐ allow skipping the on-disk integrity check using
--insecure-options=ondisk
. This greatly speeds up start time. (#1804) - set empty volumes' permissions following the spec (1803)
- ๐ flannel networking support in kvm flavor (#1563)
๐ Bug fixes
- store used MCS contexts on the filesystem (#1742)
- ๐ fix Docker images with whiteout-ed hard links (#1653)
- ๐ fix Docker images relying on /dev/stdout (#1617)
- ๐ use authentication for discovery and trust (#1801)
- ๐ fix build in Docker (#1798)
- ๐ fix kvm networking (#1530)
๐ Improved testing
- โ add functional tests for rkt api service (#1761)
- ๐ fix TestSocketActivation on systemd-v219 (#1768)
- ๐ fix the ACE validator test (#1802)
Other changes
- โฌ๏ธ Bumped appc spec to 0.7.3 (#1800)
- implement
-
v0.11.0 Changes
๐ rkt v0.11.0 is an incremental release with mostly bug fixes and testing improvements.
๐ New features and UX changes
- ๐ support resuming ACI downloads (#1444)
- ๐
rkt image gc
now also removes images from the store (#1697)
๐ Build
- ๐ handle building multiple flavors (#1683)
- verbosity control (#1685, #1686)
- ๐ fix bugs in
make clean
(#1695)
๐ Improved testing
- โ nicer output in tests (#1698)
- ๐จ refactor test code (#1709)
- ๐ท skip CI tests when the source was not modified (#1619)
- ๐ better output when tests fail (#1728)
- ๐ fix tests in
10.*
IP range (#1736) - โ document how to run functional tests (#1736)
๐ Improved documentation
- โ add some help on how to run rkt as a daemon (#1684)
API service
- do not return manifest in
ListPods()
andListImages()
(#1688)
๐ Bug fixes
- ๐ parameter
--mount
fixed in kvm flavour (#1687) - ๐ fix rkt leaking containers in machinectl on CoreOS (#1694, #1704)
rkt status
now returns the stage1 pid (#1699)- ๐ fix crash in
rkt status
when an image is removed (#1701) - ๐ fix fd leak in store (#1716)
- ๐ fix exec line parsing in ACI manifest (#1652)
- ๐ fix build on 32-bit systems (#1729)
-
v0.10.0 Changes
๐ rkt v0.10.0 is an incremental release with numerous bug fixes and a few small new features and UX improvements.
๐ New features and UX changes
- โ added implementation for basic API service (
rkt api-service
) (#1508) - mount arbitrary volumes with
--mount
(#1582, #1678) --net=none
only exposes the loopback interface (#1635)- ๐ better formatting for rkt help (#1597)
- ๐ metadata service registration (
--mds-register
) disabled by default (#1635)
๐ Improved documentation
- ๐ compare rkt and other projects (#1588)
- ๐ Stage1 systemd Architecture (#1631)
- ๐ packaging rkt in Linux distributions (#1511)
๐ Improved testing
๐ Bug fixes
- suppress unnecessary output when
--debug
is not used (#1557) - ๐ fix permission of rootfs with overlayfs (#1607)
- ๐ allow relative path in parameters (#1615)
- ๐ fix pod garbage collection failure in some cases (#1621)
- ๐ fix
rkt list
when an image was removed (#1655) - ๐ user namespace (
--private-users
) regression with rkt group fixed ([#1654](//github.com/rkt/rkt/pull/1654))
- โ added implementation for basic API service (
-
v0.9.0 Changes
๐ rkt v0.9.0 is a significant milestone release with a number of internal and user-facing changes.
๐ There are several notable breaking changes from the previous release:
- โช The on-disk format for pod trees has changed slightly, meaning that
rkt gc
andrkt run-prepared
may not work for pods created by previous versions of rkt. To work around this, we recommend removing the pods with an older version of rkt. - ๐ The
--private-net
flag has been renamed to--net
and its semantic has changed (in particular, it is now enabled by default) - see below for details. - Several changes to CLI output (e.g. column names) from the
rkt list
andrkt image list
subcommands. - ๐ The image fetching behaviour has changed, with the introduction of new flags to
rkt run
andrkt fetch
and the removal of--local
- see below for details.
๐ New features and UX changes
0๏ธโฃ ######
--private-net
-->--net
, and networking is now private by default 0๏ธโฃ The--private-net
flag has been changed to--net
, and has been now made the default behaviour. (#1532, #1418) 0๏ธโฃ That is, arkt run
command will now by default set up a private network for the pod. 0๏ธโฃ To achieve the previous default behaviour of the pod sharing the networking namespace of the host, use--net=host
. ๐ง The flag still allows the specification of multiple networks via CNI plugins, and overriding plugin configuration on a per-network basis. ๐ For more details, see the [networking documentation](Documentation/networking.md).New image fetching behaviour ๐ณ When fetching images during
rkt fetch
orrkt run
, rkt would previously behave inconsistently for different formats (e.g when performing discovery or when retrieving a Docker image) when deciding whether to use a cached version or not.rkt run
featured a--local
flag to adjust this behaviour but it provided an unintuitive semantic and was not available to therkt fetch
command. Instead, rkt now features two new flags,--store-only
and--no-store
, on both therkt fetch
andrkt run
commands, to provide more consistent, controllable, and predictable behaviour regarding when images should be retrieved. ๐ For full details of the new behaviour see the [image fetching documentation](Documentation/image-fetching-behavior.md).Unprivileged users A number of changes were made to the permissions of rkt's internal store to facilitate unprivileged users to access information about images and pods on the system (#1542, #1569). In particular, the set-group-ID bit is applied to the directories touched by
rkt install
so that therkt
group (if it exists on the system) can retain read-access to information about pods and images. ๐ This will be used by the rkt API service (targeted for the next release) so that it can run as an unprivileged user on the system. ๐ This support is still considered partially experimental. Some tasks likerkt image gc
remain a root-only operation.๐ ###### /etc/hosts support 0๏ธโฃ If no
/etc/hosts
exists in an application filesystem at the time it starts running, rkt will now provide a basic default version of this file. If rkt detects one already in the app's filesystem (whether through being included in an image, or a volume mounted in), it will make no changes. (#1541)Other new features
- ๐ rkt now supports setting supplementary group IDs on processes (#1514).
- rkt's use of cgroups has been reworked to facilitate rkt running on a variety of operating systems like Void and older non-systemd distributions (#1437, #1320, #1076, #1042)
- If
rkt run
is used with an image that does not have an app section, rkt will now create one if the user provides an--exec
flag (#1427) - ๐ A new
rkt image gc
command adds initial support for garbage collecting images from the store (#1487). This removes treeStores not referenced by any non-GCed rkt pod. rkt list
now provides more information including image version and hash (#1559)- 0๏ธโฃ
rkt image list
output now shows shortened hash identifiers by default, and human readable date formats. To use the previous output format, use the--full
flag. (#1455) - โช
rkt prepare
gained the--exec
flag, which restores flag-parity withrkt run
(#1410) - ๐ lkvm stage1 backend has experimental support for
rkt enter
(#1303) - ๐ rkt now supports empty volume types (#1502)
- An early, experimental read-only API definition has been added (#1359, #1518).
๐ Bug fixes
- ๐ Fixed bug in
--stage1-image
option which prevented it from using URLs (#1524) - ๐ Fixed bug in
rkt trust
's handling of--root
(#1494) - ๐ Fixed bug when decompressing xz-compressed images (#1462, #1224)
- ๐ In earlier versions of rkt, hooks had an implicit timeout of 30 seconds, causing some pre-start jobs which took a long time to be killed. This implicit timeout has been removed. (#1547)
- When running with the lkvm stage1, rkt now sets
$HOME
if it is not already set, working around a bug in the lkvm tool (#1447, #1393) - ๐ Fixed bug preventing
run-prepared
from working if the metadata service was not available (#1436)
Other changes
- โฌ๏ธ Bumped appc spec to 0.7.1 (#1543)
- โฌ๏ธ Bumped CNI and netlink dependencies (#1476)
- โฌ๏ธ Bumped ioprogress to a version which prevents the download bar from being drawn when rkt is not drawing to a terminal (#1423, #1282)
- Significantly reworked rkt's internal use of systemd to orchestrate apps, which should facilitate more granular control over pod lifecycles (#1407)
- Reworked rkt's handling of images with non-deterministically dependencies (#1240, #1198).
- โ rkt functional tests now run appc's ACE validator, which should ensure that rkt is always compliant with the specification. (#1473)
- ๐ท A swathe of improvements to the build system
- โ Various internal improvements to the functional test suite to improve coverage and consolidate code
- The "ACI" field header in
rkt image
output has been changed to "IMAGE NAME" rkt image rm
now exits with status 1 on any failure (#1486)- ๐ Fixed permissions in the default stage1 image (#1503)
- โ Added documentation for
prepare
andrun-prepared
subcommands (#1526) - rkt should now report more helpful errors when encountering manifests it does not understand (#1471)
- โช The on-disk format for pod trees has changed slightly, meaning that
-
v0.8.1 Changes
๐ rkt v0.8.1 is an incremental release with numerous bug fixes and clean-up to the build system. It also introduces a few small new features and UX improvements.
- ๐ New features and UX changes:
rkt rm
is now variadic: it can now remove multiple pods in one command, by UUID- The
APPNAME
column inrkt image list
output has been changed to the more accurateNAME
. This involves a schema change in rkt's on-disk datastore, but this should be upgraded transparently. - Headers are now sent when following HTTP redirects while trying to retrieve an image
- The default metadata service port number was changed from a registered/reserved IANA port to an arbitrary port in the non-dynamic range
- Added the ability to override arguments for network plugins
- rkt will now error out if someone attempts to use
--private-users
with the lkvm backend
- ๐ Bug fixes:
- Fixed creation of /tmp in apps' root filesystems with correct permissions
- Fixed garbage collection after umounts (for example, if a system reboots before a pod is cleanly destroyed)
- Fixed a race in interactive mode when using the lkvm backend that could cause a deadlock or segfault
- Fixed bad parameter being passed to the metadata service ("uid" -> "uuid")
- Fixed setting of file permissions during stage1 set up
- Fixed a potential race condition during simultaneous
iptables
invocation - Fixed ACI download progress being sent to stderr instead of stdout, now consistent with the output during retrieval of Docker images
rkt help prepare
will now show the correct default stage1 image- rkt will refuse to add isolators with nil Limits, preventing a panic caused by an ambiguity in upstream appc schema
- Other changes:
- Reworked the SELinux implementation to use
systemd-nspawn
's native context-switching feature - Added a workaround for a bug in Docker <1.8 when it is run on the same system as rkt (see https://github.com/rkt/rkt/issues/1210#issuecomment-132793300)
- Added a
rkt-xxxx-tapN
name to tap devices that rkt creates - Functional tests now clean intermediate images between tests
- Countless improvements and cleanup to the build system
- Numerous documentation improvements, including splitting out all top-level
rkt
subcommands into their own documents
- Reworked the SELinux implementation to use
- ๐ New features and UX changes:
-
v0.8.0 Changes
๐ rkt 0.8.0 includes support for running containers under an LKVM hypervisor ๐ and experimental user namespace support.
Full changelog:
- ๐ Documentation improvements
- ๐ Better integration with systemd:
- journalctl -M
- machinectl {reboot,poweroff}
- โก๏ธ Update stage1's systemd to v222
- โ Add more functional tests
- ๐ท Build system improvements
- ๐ Fix bugs with garbage-collection
- ๐ LKVM stage1 support with network and volumes
- ๐ Smarter image discovery: ETag and Cache-Control support
- โ Add CNI DHCP plugin
- ๐ Support systemd socket activation
- Backup CAS database when migrating
- ๐ Improve error messages
- โ Add the ability to override ACI exec
- โก๏ธ Optimize rkt startup times when a stage1 is present in the store
- 0๏ธโฃ Trust keys fetched via TLS by default
- โ Add the ability to garbage-collect a specific pod
- โ Add experimental user namespace support
- ๐ Bugfixes
-
v0.7.0 Changes
rkt 0.7.0 includes new subcommands for
rkt image
to manipulate images from the local store.๐ง It also has a new build system based on autotools and integration with SELinux.
Full changelog:
- ๐ New subcommands for
rkt image
: extract, render and export - ๐ Metadata service:
- Auth now based on tokens
- Registration done by default, unless --mds-register=false is passed
- ๐ Build:
- Remove support for Go 1.3
- Replace build system with autoconf and make
- ๐ Network: fixes for plugins related to mnt namespace
- Signature: clearer error messages
- ๐ Security:
- Support for SELinux
- Check signature before downloading
- ๐ Commands: fix error messages and parameter parsing
- Output: reduce output verbosity
- Systemd integration: fix stop bug
- โ Tests: Improve tests output
- ๐ New subcommands for
-
v0.6.1 Changes
๐ The highlight of this release is the support of per-app memory and CPU isolators. This means that, in addition to restricting a pod's CPU and memory usage, individual apps inside a pod can also be restricted now.
โ rkt 0.6.1 also includes a new CLI/subcommand framework, more functional testing 0๏ธโฃ and journalctl integration by default.
Full changelog:
- โก๏ธ Updated to v0.6.1 of the appc spec
- ๐ support per-app memory and CPU isolators
- ๐ allow network selection to the --private-net flag which can be useful for grouping certain pods together while separating others
- ๐ move to the Cobra CLI/subcommand framework
- 0๏ธโฃ per-app logging via journalctl now supported by default
- stage1 runs an unpatched systemd v220
- ๐ฆ to help packagers, rkt can generate stage1 from the binaries on the host at runtime
- โ more functional tests
- ๐ bugfixes
-
v0.5.6 Changes
๐ rkt 0.5.6 includes better integration with systemd on the host, some minor bug ๐ fixes and a new ipvlan network plugin.
- โก๏ธ Updated to v0.5.2 of the appc spec
- ๐ support running from systemd unit files for top-level isolation
- ๐ support per-app logging via journalctl. This is only supported if stage1 has systemd v219 or v220
- โ add ipvlan network plugin
- ๐ new rkt subcommand: cat-manifest
- extract ACI in a chroot to avoid malformed links modifying the host filesystem
- ๐ improve rkt error message if the user doesn't provide required volumes
- ๐ fix rkt status when using overlayfs
- ๐ support for some arm architectures
- ๐ documentation improvements
-
v0.5.5 Changes
๐ rkt 0.5.5 includes a move to cni network ๐ plugins, a number of minor bug fixes and two new experimental commands for handling images:
rkt images
andrkt rmimage
.Full changelog:
- ๐ switched to using cni based network plugins
- fetch images dependencies recursively when ACIs have dependent images
- ๐ fix the progress bar used when downloading images with no content-length
- ๐ building the initial stage1 can now be done on various versions of systemd
- ๐ support retrying signature downloads in the case of a 202
- โ remove race in doing a rkt enter
- ๐ various documentation fixes to getting started and other guides
- ๐ improvements to the functional testing using a new gexpect, testing for non-root apps, run context, port test, and more