Skip to content

Commit 476237b

Browse files
committed
VERSION: release 1.2.0-rc.1
Signed-off-by: Rodrigo Campos <[email protected]>
1 parent 2a9e768 commit 476237b

File tree

2 files changed

+102
-2
lines changed

2 files changed

+102
-2
lines changed

CHANGELOG.md

Lines changed: 101 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,77 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88

9+
## [1.2.0-rc.1] - 2024-03-20
10+
11+
> How, dear sir, did you cross the flood? By not stopping, friend, and by not
12+
> straining I crossed the flood
13+
14+
This new runc release includes all the changes from the v1.1 patch releases up
15+
to v1.1.12.
16+
17+
### Compatibility
18+
19+
* This release requires Go 1.20.x or Go 1.19.x (#3718)
20+
21+
### Breaking
22+
23+
* Several aspects of how mount options work has been adjusted in a way that
24+
could theoretically break users that have very strange mount option strings.
25+
This was necessary to fix glaring issues in how mount options were being
26+
treated. The key changes are:
27+
28+
- Mount options on bind-mounts that clear a mount flag are now always
29+
applied. Previously, if a user requested a bind-mount with only clearing
30+
options (such as `rw,exec,dev`) the options would be ignored and the
31+
original bind-mount options would be set. Unfortunately this also means
32+
that container configurations which specified only clearing mount options
33+
will now actually get what they asked for, which could break existing
34+
containers (though it seems unlikely that a user who requested a specific
35+
mount option would consider it "broken" to get the mount options they
36+
asked foruser who requested a specific mount option would consider it
37+
"broken" to get the mount options they asked for). (#3967)
38+
39+
- Container configurations using bind-mounts with superblock mount flags
40+
(i.e. filesystem-specific mount flags, referred to as "data" in
41+
`mount(2)`, as opposed to VFS generic mount flags like `MS_NODEV`) will
42+
now return an error. This is because superblock mount flags will also
43+
affect the host mount (as the superblock is shared when bind-mounting),
44+
which is obviously not acceptable. Previously, these flags were silently
45+
ignored so this change simply tells users that runc cannot fulfil their
46+
request rather than just ignoring it. (#3990)
47+
48+
If any of these changes cause problems in real-world workloads, please [open
49+
an issue](https://github.com/opencontainers/runc/issues/new/choose) so we
50+
can adjust the behaviour to avoid compatibility issues.
51+
52+
### Added
53+
54+
* Support id-mapped mounts for bind-mounts. Other mount types are not
55+
currently supported. This feature requires `MOUNT_ATTR_IDMAP` kernel support
56+
(Linux 5.12 or newer) as well as kernel support for the underlying filesystem
57+
used for the bind-mount. See [`mount_setattr(2)`][mount_setattr.2] for a list of
58+
supported filesystems and other restrictions. (#3717, #3985)
59+
* Support for `cgroup.kill` to kill all processes inside a container. (#3135,
60+
#3825)
61+
* Support to set a domainname as specified in the OCI runtime-spec v1.1.0.
62+
(#3600)
63+
* Add support for umask when exec-ing into a container. (#3661)
64+
* libct/cg: support SCHED_IDLE for runc cgroupfs. (#3377)
65+
* checkpoint/restore: implement `--manage-cgroups-mode` ignore. (#3546)
66+
* seccomp: refactor flags support; add flags to features, set SPEC_ALLOW by
67+
default. (#3588)
68+
* libct/cg/sd: use systemd v240+ new `MAJOR:*` syntax. (#3843)
69+
* Use github.com/checkpoint-restore/go-criu v6.3.0, which reduces the compiled
70+
binary file. (#3652)
71+
* Expose MountExtensions (including idmap support) in the features subcommand. (#3993)
72+
* Support CFS bandwidth burst for CPU. (#3749, #3145)
73+
* Support time namespace. (#3876)
74+
* Build tag `runc_nodmz`, see also the `memfd-bind` binary in `contrib/` in case you can't use
75+
`runc-dmz` and still want to reduce memory usage. (#3987)
76+
* New "pidfd-socket" CLI flag. (#4045)
77+
78+
[mount_setattr.2]: https://man7.org/linux/man-pages/man2/mount_setattr.2.html
79+
980
### Deprecated
1081

1182
* `runc` option `--criu` is now ignored (with a warning), and the option will
@@ -16,12 +87,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
1687
to kill a container (with SIGKILL) which does not have its own private PID
1788
namespace (so that runc would send SIGKILL to all processes). Now, this is
1889
done automatically. (#3864, #3825)
90+
* `libcontainer/user` is deprecated, use `github.com/moby/sys/user` instead. It
91+
will be removed in a future release. (#4017)
1992

2093
### Changed
2194

2295
* When Intel RDT feature is not available, its initialization is skipped,
2396
resulting in slightly faster `runc exec` and `runc run`. (#3306)
24-
* Enforce absolute paths for mounts. (#3020, #3717)
97+
* The `runc features` command is no longer experimental. (#3861)
2598
* libcontainer users that create and kill containers from a daemon process
2699
(so that the container init is a child of that process) must now implement
27100
a proper child reaper in case a container does not have its own private PID
@@ -35,6 +108,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
35108
For cgroupv1, `Usage` and `Failcnt` are set by subtracting memory usage
36109
from memory+swap usage. For cgroupv2, `Usage`, `Limit`, and `MaxUsage`
37110
are set. (#4010)
111+
* When running rootless or using a user namespace, a source filesystem mounted
112+
with `nodev`, `nosuid` or `noexec` can now be used as source of a bind mount
113+
without the same options being set for the mount. (#3805, #3967)
114+
* libcontainer users that create and kill containers from a daemon process
115+
(so that the container init is a child of that process) must now implement
116+
a proper child reaper in case a container does not have its own private PID
117+
namespace, as documented in `container.Signal`. (#3825)
118+
* libcontainer: `container.Signal` no longer have the second `all bool`
119+
argument; a need to kill all processes is now determined automatically.
120+
(#3825, #3885)
121+
* libct/cg: Remove function EnterPid with no users. (#3797)
122+
* libct/seccomp: enable seccomp binary tree optimization. (#3405)
123+
* runc run/exec: ignore SIGURG. (#3368)
124+
* Remove tun/tap from the default device rules. (#3468)
125+
* `runc --root non-existent-dir list` now reports an error for non-existent
126+
root directory. (#3374)
127+
* libct: Mount: Remove {Pre,Post}mountCmds, were never used and are obsoleted
128+
by more generic container hooks. (#3350)
129+
* When joining an existing time or user namespace, don't require configuration
130+
entries for them. If they are specified, they need to be consistent with the
131+
user namespace joining. In future minor releases an error will be thrown if
132+
they are specified, though. (#4133)
38133

39134
### Fixed
40135

@@ -46,6 +141,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
46141
code (this was due to how s390x does syscall multiplexing). (#3474)
47142
* Remove tun/tap from the default device rules. (#3468)
48143
* specconv: avoid mapping "acl" to MS_POSIXACL. (#3739)
144+
* libcontainer: fix private PID namespace detection when killing the container.
145+
(#3866, #3825)
146+
* Fix `READY` notification sometimes not accepted by systemd. (#3291, #3293)
147+
* Reduce the number of mount/umount syscalls in the host mount namespace, remove the bindfd logic
148+
and move the memfd logic to go. (#3987, #3599, #2532, #3931)
49149

50150
## [1.1.12] - 2024-01-31
51151

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.1.0+dev
1+
1.2.0-rc.1

0 commit comments

Comments
 (0)