Merge pull request #43689 from thaJeztah/fix_incorrect_warnings

daemon.NewDaemon(): fix network feature detection on first start
This commit is contained in:
Sebastiaan van Stijn 2022-06-03 19:30:24 +02:00 committed by GitHub
commit 38633e7971
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 17 additions and 12 deletions

View file

@ -1005,13 +1005,15 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
return nil, err
}
sysInfo := d.RawSysInfo()
for _, w := range sysInfo.Warnings {
logrus.Warn(w)
}
// Check if Devices cgroup is mounted, it is hard requirement for container security,
// on Linux.
if runtime.GOOS == "linux" && !sysInfo.CgroupDevicesEnabled && !userns.RunningInUserNS() {
//
// Important: we call getSysInfo() directly here, without storing the results,
// as networking has not yet been set up, so we only have partial system info
// at this point.
//
// TODO(thaJeztah) add a utility to only collect the CgroupDevicesEnabled information
if runtime.GOOS == "linux" && !userns.RunningInUserNS() && !getSysInfo(d).CgroupDevicesEnabled {
return nil, errors.New("Devices cgroup isn't mounted")
}
@ -1096,6 +1098,9 @@ func NewDaemon(ctx context.Context, config *config.Config, pluginStore *plugin.S
close(d.startupDone)
info := d.SystemInfo()
for _, w := range info.Warnings {
logrus.Warn(w)
}
engineInfo.WithValues(
dockerversion.Version,
@ -1487,7 +1492,7 @@ func (daemon *Daemon) RawSysInfo() *sysinfo.SysInfo {
// We check if sysInfo is not set here, to allow some test to
// override the actual sysInfo.
if daemon.sysInfo == nil {
daemon.loadSysInfo()
daemon.sysInfo = getSysInfo(daemon)
}
})

View file

@ -1726,14 +1726,14 @@ func (daemon *Daemon) setupSeccompProfile() error {
return nil
}
func (daemon *Daemon) loadSysInfo() {
func getSysInfo(daemon *Daemon) *sysinfo.SysInfo {
var siOpts []sysinfo.Opt
if daemon.getCgroupDriver() == cgroupSystemdDriver {
if euid := os.Getenv("ROOTLESSKIT_PARENT_EUID"); euid != "" {
siOpts = append(siOpts, sysinfo.WithCgroup2GroupPath("/user.slice/user-"+euid+".slice"))
}
}
daemon.sysInfo = sysinfo.New(siOpts...)
return sysinfo.New(siOpts...)
}
func (daemon *Daemon) initLibcontainerd(ctx context.Context) error {

View file

@ -13,6 +13,6 @@ const platformSupported = false
func setupResolvConf(config *config.Config) {
}
func (daemon *Daemon) loadSysInfo() {
daemon.sysInfo = sysinfo.New()
func getSysInfo(daemon *Daemon) *sysinfo.SysInfo {
return sysinfo.New()
}

View file

@ -598,8 +598,8 @@ func (daemon *Daemon) loadRuntimes() error {
func setupResolvConf(config *config.Config) {}
func (daemon *Daemon) loadSysInfo() {
daemon.sysInfo = sysinfo.New()
func getSysInfo(daemon *Daemon) *sysinfo.SysInfo {
return sysinfo.New()
}
func (daemon *Daemon) initLibcontainerd(ctx context.Context) error {