// modifyCommonNamespaceOptions apply common namespace options for sandbox and container func modifyCommonNamespaceOptions(nsOpts *runtimeapi.NamespaceOption, hostConfig *dockercontainer.HostConfig) { if nsOpts != nil { if nsOpts.GetHostPid() { hostConfig.PidMode = namespaceModeHost } if nsOpts.GetHostIpc() { hostConfig.IpcMode = namespaceModeHost } } }
// modifyNamespaceOptions applies namespaceoptions to dockercontainer.HostConfig. func modifyNamespaceOptions(nsOpts *runtimeapi.NamespaceOption, sandboxID string, hostConfig *dockercontainer.HostConfig) { hostNetwork := false if nsOpts != nil { if nsOpts.HostNetwork != nil { hostNetwork = nsOpts.GetHostNetwork() } if nsOpts.GetHostPid() { hostConfig.PidMode = namespaceModeHost } if nsOpts.GetHostIpc() { hostConfig.IpcMode = namespaceModeHost } } // Set for sandbox if sandboxID is not provided. if sandboxID == "" { modifyHostNetworkOptionForSandbox(hostNetwork, hostConfig) } else { // Set for container if sandboxID is provided. modifyHostNetworkOptionForContainer(hostNetwork, sandboxID, hostConfig) } }
// modifyContainerNamespaceOptions apply namespace options for container func modifyContainerNamespaceOptions(nsOpts *runtimeapi.NamespaceOption, sandboxID string, hostConfig *dockercontainer.HostConfig) { modifyCommonNamespaceOptions(nsOpts, hostConfig) modifyHostNetworkOptionForContainer(nsOpts.GetHostNetwork(), sandboxID, hostConfig) }
// modifySandboxNamespaceOptions apply namespace options for sandbox func modifySandboxNamespaceOptions(nsOpts *runtimeapi.NamespaceOption, hostConfig *dockercontainer.HostConfig, networkPlugin network.NetworkPlugin) { modifyCommonNamespaceOptions(nsOpts, hostConfig) modifyHostNetworkOptionForSandbox(nsOpts.GetHostNetwork(), networkPlugin, hostConfig) }