Skip to content

Commit

Permalink
Merge pull request #15411 from arixmkii/override_default_username
Browse files Browse the repository at this point in the history
Allow to override default username via command line
  • Loading branch information
openshift-merge-robot authored Aug 31, 2022
2 parents 9b4dac4 + 08a2851 commit 55710d8
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 1 deletion.
5 changes: 4 additions & 1 deletion cmd/podman/machine/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,6 @@ func init() {
})
flags := initCmd.Flags()
cfg := registry.PodmanConfig()
initOpts.Username = cfg.Config.Machine.User

cpusFlagName := "cpus"
flags.Uint64Var(
Expand Down Expand Up @@ -89,6 +88,10 @@ func init() {
)
_ = flags.MarkHidden("reexec")

UsernameFlagName := "username"
flags.StringVar(&initOpts.Username, UsernameFlagName, cfg.Machine.User, "Username used in qcow image")
_ = initCmd.RegisterFlagCompletionFunc(UsernameFlagName, completion.AutocompleteDefault)

ImagePathFlagName := "image-path"
flags.StringVar(&initOpts.ImagePath, ImagePathFlagName, cfg.Machine.Image, "Path to qcow image")
_ = initCmd.RegisterFlagCompletionFunc(ImagePathFlagName, completion.AutocompleteDefault)
Expand Down
6 changes: 6 additions & 0 deletions docs/source/markdown/podman-machine-init.1.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,6 +76,12 @@ Set the timezone for the machine and containers. Valid values are `local` or
a `timezone` such as `America/Chicago`. A value of `local`, which is the default,
means to use the timezone of the machine host.

#### **--username**

Username to use for executing commands in remote VM. Default value is `core`
for FCOS and `user` for Fedora (default on Windows hosts). Should match the one
used inside the resulting VM image.

#### **--volume**, **-v**=*source:target[:options]*

Mounts a volume from source to target.
Expand Down
10 changes: 10 additions & 0 deletions pkg/machine/e2e/config_init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ type initMachine struct {
--cpus uint Number of CPUs (default 1)
--disk-size uint Disk size in GB (default 100)
--ignition-path string Path to ignition file
--username string Username of the remote user (default "core" for FCOS, "user" for Fedora)
--image-path string Path to qcow image (default "testing")
-m, --memory uint Memory in MB (default 2048)
--now Start machine now
Expand All @@ -21,6 +22,7 @@ type initMachine struct {
cpus *uint
diskSize *uint
ignitionPath string
username string
imagePath string
memory *uint
now bool
Expand All @@ -42,6 +44,9 @@ func (i *initMachine) buildCmd(m *machineTestBuilder) []string {
if l := len(i.ignitionPath); l > 0 {
cmd = append(cmd, "--ignition-path", i.ignitionPath)
}
if l := len(i.username); l > 0 {
cmd = append(cmd, "--username", i.username)
}
if l := len(i.imagePath); l > 0 {
cmd = append(cmd, "--image-path", i.imagePath)
}
Expand Down Expand Up @@ -76,6 +81,11 @@ func (i *initMachine) withIgnitionPath(path string) *initMachine { //nolint:unus
return i
}

func (i *initMachine) withUsername(username string) *initMachine {
i.username = username
return i
}

func (i *initMachine) withImagePath(path string) *initMachine {
i.imagePath = path
return i
Expand Down
20 changes: 20 additions & 0 deletions pkg/machine/e2e/init_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -77,6 +77,26 @@ var _ = Describe("podman machine init", func() {
Expect(inspectAfter[0].State).To(Equal(machine.Running))
})

It("simple init with username", func() {
i := new(initMachine)
remoteUsername := "remoteuser"
session, err := mb.setCmd(i.withImagePath(mb.imagePath).withUsername(remoteUsername)).run()
Expect(err).To(BeNil())
Expect(session).To(Exit(0))

inspectBefore, ec, err := mb.toQemuInspectInfo()
Expect(err).To(BeNil())
Expect(ec).To(BeZero())

Expect(len(inspectBefore)).To(BeNumerically(">", 0))
testMachine := inspectBefore[0]
Expect(testMachine.Name).To(Equal(mb.names[0]))
Expect(testMachine.Resources.CPUs).To(Equal(uint64(1)))
Expect(testMachine.Resources.Memory).To(Equal(uint64(2048)))
Expect(testMachine.SSHConfig.RemoteUsername).To((Equal(remoteUsername)))

})

It("machine init with cpus, disk size, memory, timezone", func() {
name := randomString()
i := new(initMachine)
Expand Down

0 comments on commit 55710d8

Please sign in to comment.