diff --git a/docs/containers.conf.5.md b/docs/containers.conf.5.md index ac21c7ed4..ded62c534 100644 --- a/docs/containers.conf.5.md +++ b/docs/containers.conf.5.md @@ -621,14 +621,22 @@ Number of CPU's a machine is created with. The size of the disk in GB created when init-ing a podman-machine VM -**image**="testing" +**memory**=2048 + +Memory in MB a machine is created with. + +**image**="" Default image used when creating a new VM using `podman machine init`. -Options: `testing`, `stable`, `next`, or a custom path or download URL to an image +Options: On Linux/Mac, `testing`, `stable`, `next`. On Windows, the major +version of the OS (e.g `35`). For all platforms you can alternatively specify +a custom path or download URL to an image. The default is `testing` on +Linux/Mac, and `35` on Windows. -**memory**=2048 +**user**="" -Memory in MB a machine is created with. +Username to use and create on the podman machine OS for rootless container +access. The default value is `user`. On Linux/Mac the default is`core`. # FILES diff --git a/pkg/config/config.go b/pkg/config/config.go index 29c505e9c..f419601e9 100644 --- a/pkg/config/config.go +++ b/pkg/config/config.go @@ -512,6 +512,8 @@ type MachineConfig struct { Image string `toml:"image,omitempty"` // Memory in MB a machine is created with. Memory uint64 `toml:"memory,omitempty,omitzero"` + // Username to use for rootless podman when init-ing a podman machine VM + User string `toml:"user,omitempty"` } // Destination represents destination for remote service diff --git a/pkg/config/containers.conf b/pkg/config/containers.conf index 84b49b7e4..05f6a66da 100644 --- a/pkg/config/containers.conf +++ b/pkg/config/containers.conf @@ -579,13 +579,18 @@ default_sysctls = [ # #disk_size=10 +# Memory in MB a machine is created with. +# +#memory=2048 + # The image used when creating a podman-machine VM. # #image = "testing" -# Memory in MB a machine is created with. +# The username to use and create on the podman machine OS for rootless +# container access. # -#memory=2048 +#user = "core" # The [machine] table MUST be the last entry in this file. # (Unless another table is added) diff --git a/pkg/config/default.go b/pkg/config/default.go index 8821aa91e..c36d5a0c4 100644 --- a/pkg/config/default.go +++ b/pkg/config/default.go @@ -227,8 +227,9 @@ func defaultMachineConfig() MachineConfig { return MachineConfig{ CPUs: 1, DiskSize: 100, - Image: "testing", Memory: 2048, + Image: getDefaultMachineImage(), + User: getDefaultMachineUser(), } } diff --git a/pkg/config/default_linux.go b/pkg/config/default_linux.go index c68c0b130..9446d3ff9 100644 --- a/pkg/config/default_linux.go +++ b/pkg/config/default_linux.go @@ -13,6 +13,17 @@ const ( oldMaxSize = uint64(1048576) ) +// getDefaultMachineImage returns the default machine image stream +// On Linux/Mac, this returns the FCOS stream +func getDefaultMachineImage() string { + return "testing" +} + +// getDefaultMachineUser returns the user to use for rootless podman +func getDefaultMachineUser() string { + return "core" +} + // getDefaultRootlessNetwork returns the default rootless network configuration. // It is "slirp4netns" for Linux. func getDefaultRootlessNetwork() string { diff --git a/pkg/config/default_unsupported.go b/pkg/config/default_unsupported.go index e38fb810d..da0eb77f3 100644 --- a/pkg/config/default_unsupported.go +++ b/pkg/config/default_unsupported.go @@ -1,7 +1,19 @@ -// +build !linux +//go:build !linux && !windows +// +build !linux,!windows package config +// getDefaultMachineImage returns the default machine image stream +// On Linux/Mac, this returns the FCOS stream +func getDefaultMachineImage() string { + return "testing" +} + +// getDefaultMachineUser returns the user to use for rootless podman +func getDefaultMachineUser() string { + return "core" +} + // getDefaultRootlessNetwork returns the default rootless network configuration. // It is "cni" for non-Linux OSes (to better support `podman-machine` usecases). func getDefaultRootlessNetwork() string { diff --git a/pkg/config/default_windows.go b/pkg/config/default_windows.go new file mode 100644 index 000000000..5f8dd1a28 --- /dev/null +++ b/pkg/config/default_windows.go @@ -0,0 +1,28 @@ +package config + +// getDefaultImage returns the default machine image stream +// On Windows this refers to the Fedora major release number +func getDefaultMachineImage() string { + return "35" +} + +// getDefaultMachineUser returns the user to use for rootless podman +func getDefaultMachineUser() string { + return "user" +} + +// getDefaultRootlessNetwork returns the default rootless network configuration. +// It is "cni" for non-Linux OSes (to better support `podman-machine` usecases). +func getDefaultRootlessNetwork() string { + return "cni" +} + +// isCgroup2UnifiedMode returns whether we are running in cgroup2 mode. +func isCgroup2UnifiedMode() (isUnified bool, isUnifiedErr error) { + return false, nil +} + +// getDefaultProcessLimits returns the nofile and nproc for the current process in ulimits format +func getDefaultProcessLimits() []string { + return []string{} +}