mirror of
https://github.com/apple/container.git
synced 2026-09-23 08:05:38 +00:00
Add make target to fetch the default kernel (#33)
Replaces the `--install-dependencies` flag with the `(enable/disable)-kernel-install` flag. If the flag is not passed - the default behavior is prompting the user for a response. Also adds a make target `install-kernel` ``` ➜ bin/container system start Verifying apiserver is running... Installing base container filesystem... No default kernel configured. Install the recommended default kernel from [https://github.com/kata-containers/kata-containers/releases/download/3.17.0/kata-static-3.17.0-arm64.tar.xz]? [Y/n]: n Please use the `container system kernel set --recommended` command to configure the default kernel ➜ bin/container system start --disable-kernel-install Verifying apiserver is running... ➜ bin/container system start --enable-kernel-install Verifying apiserver is running... Installing kernel... ➜ bin/container system start --help USAGE: container system start ... [--enable-kernel-install] [--disable-kernel-install] ... --enable-kernel-install/--disable-kernel-install Specify if the default kernel should be installed or not. ``` --------- Signed-off-by: Aditya Ramani <a_ramani@apple.com>
This commit is contained in:
@@ -34,8 +34,10 @@ extension Application {
|
||||
@Flag(name: .long, help: "Enable debug logging for the runtime daemon.")
|
||||
var debug = false
|
||||
|
||||
@Flag(name: .long, help: "Do not prompt for confirmation before installing runtime dependencies")
|
||||
var installDependencies: Bool = false
|
||||
@Flag(
|
||||
name: .long, inversion: .prefixedEnableDisable,
|
||||
help: "Specify whether the default kernel should be installed or not. The default behavior is to prompt the user for a response.")
|
||||
var kernelInstall: Bool?
|
||||
|
||||
func run() async throws {
|
||||
// Without the true path to the binary in the plist, `container-apiserver` won't launch properly.
|
||||
@@ -110,9 +112,10 @@ extension Application {
|
||||
let defaultKernelURL = kernelDependency.source
|
||||
let defaultKernelBinaryPath = ClientDefaults.get(key: .defaultKernelBinaryPath)
|
||||
|
||||
print("No default kernel configured.")
|
||||
print("Install the recommended default kernel from [\(kernelDependency.source)]? [Y/n]: ", terminator: "")
|
||||
if !installDependencies {
|
||||
var shouldInstallKernel = false
|
||||
if kernelInstall == nil {
|
||||
print("No default kernel configured.")
|
||||
print("Install the recommended default kernel from [\(kernelDependency.source)]? [Y/n]: ", terminator: "")
|
||||
guard let read = readLine(strippingNewline: true) else {
|
||||
throw ContainerizationError(.internalError, message: "Failed to read user input")
|
||||
}
|
||||
@@ -120,6 +123,12 @@ extension Application {
|
||||
print("Please use the `container system kernel set --recommended` command to configure the default kernel")
|
||||
return
|
||||
}
|
||||
shouldInstallKernel = true
|
||||
} else {
|
||||
shouldInstallKernel = kernelInstall ?? false
|
||||
}
|
||||
guard shouldInstallKernel else {
|
||||
return
|
||||
}
|
||||
print("Installing kernel...")
|
||||
try await KernelSet.downloadAndInstallWithProgressBar(tarRemoteURL: defaultKernelURL, kernelFilePath: defaultKernelBinaryPath)
|
||||
|
||||
Reference in New Issue
Block a user