mirror of
https://github.com/moby/moby.git
synced 2026-01-11 18:51:37 +00:00
fix: load the CDI driver before the dockerd daemon starts
Signed-off-by: Rafael Fernández López <ereslibre@ereslibre.es>
This commit is contained in:
@@ -244,6 +244,17 @@ func (cli *daemonCLI) start(ctx context.Context) (err error) {
|
|||||||
|
|
||||||
pluginStore := plugin.NewStore()
|
pluginStore := plugin.NewStore()
|
||||||
|
|
||||||
|
// Register the CDI driver before the daemon starts, as it might try to restore containers that depend on the CDI driver.
|
||||||
|
// Note that CDI is not inherently linux-specific, there are some linux-specific assumptions / implementations in the code that
|
||||||
|
// queries the properties of device on the host as well as performs the injection of device nodes and their access permissions into the OCI spec.
|
||||||
|
//
|
||||||
|
// In order to lift this restriction the following would have to be addressed:
|
||||||
|
// - Support needs to be added to the cdi package for injecting Windows devices: https://tags.cncf.io/container-device-interface/issues/28
|
||||||
|
// - The DeviceRequests API must be extended to non-linux platforms.
|
||||||
|
if runtime.GOOS == "linux" && cli.Config.Features["cdi"] {
|
||||||
|
daemon.RegisterCDIDriver(cli.Config.CDISpecDirs...)
|
||||||
|
}
|
||||||
|
|
||||||
var apiServer apiserver.Server
|
var apiServer apiserver.Server
|
||||||
cli.authzMiddleware, err = initMiddlewares(ctx, &apiServer, cli.Config, pluginStore)
|
cli.authzMiddleware, err = initMiddlewares(ctx, &apiServer, cli.Config, pluginStore)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
@@ -262,16 +273,6 @@ func (cli *daemonCLI) start(ctx context.Context) (err error) {
|
|||||||
return errors.Wrap(err, "failed to validate authorization plugin")
|
return errors.Wrap(err, "failed to validate authorization plugin")
|
||||||
}
|
}
|
||||||
|
|
||||||
// Note that CDI is not inherently linux-specific, there are some linux-specific assumptions / implementations in the code that
|
|
||||||
// queries the properties of device on the host as well as performs the injection of device nodes and their access permissions into the OCI spec.
|
|
||||||
//
|
|
||||||
// In order to lift this restriction the following would have to be addressed:
|
|
||||||
// - Support needs to be added to the cdi package for injecting Windows devices: https://tags.cncf.io/container-device-interface/issues/28
|
|
||||||
// - The DeviceRequests API must be extended to non-linux platforms.
|
|
||||||
if runtime.GOOS == "linux" && cli.Config.Features["cdi"] {
|
|
||||||
daemon.RegisterCDIDriver(cli.Config.CDISpecDirs...)
|
|
||||||
}
|
|
||||||
|
|
||||||
cli.d = d
|
cli.d = d
|
||||||
|
|
||||||
if err := startMetricsServer(cli.Config.MetricsAddress); err != nil {
|
if err := startMetricsServer(cli.Config.MetricsAddress); err != nil {
|
||||||
|
|||||||
Reference in New Issue
Block a user