Merge pull request #21230 from jakecorrenti/applehv-set-rootful

Fix `podman machine set --rootful` for applehv
This commit is contained in:
openshift-merge-bot[bot] 2024-01-11 21:19:35 +00:00 committed by GitHub
commit a193eaf16e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 28 additions and 0 deletions

View File

@ -405,6 +405,15 @@ func (m *MacMachine) writeConfig() error {
return os.WriteFile(m.ConfigPath.Path, b, 0644)
}
func (m *MacMachine) setRootful(rootful bool) error {
if err := machine.SetRootful(rootful, m.Name, m.Name+"-root"); err != nil {
return err
}
m.HostUser.Modified = true
return nil
}
func (m *MacMachine) Set(name string, opts machine.SetOptions) ([]error, error) {
var setErrors []error
@ -438,6 +447,14 @@ func (m *MacMachine) Set(name string, opts machine.SetOptions) ([]error, error)
setErrors = append(setErrors, errors.New("changing USBs not supported for applehv machines"))
}
if opts.Rootful != nil && m.Rootful != *opts.Rootful {
if err := m.setRootful(*opts.Rootful); err != nil {
setErrors = append(setErrors, fmt.Errorf("failed to set rootful option: %w", err))
} else {
m.Rootful = *opts.Rootful
}
}
// Write the machine config to the filesystem
err = m.writeConfig()
setErrors = append(setErrors, err)
@ -697,6 +714,17 @@ func (m *MacMachine) Start(name string, opts machine.StartOptions) error {
m.isIncompatible(),
m.Rootful,
)
// update the podman/docker socket service if the host user has been modified at all (UID or Rootful)
if m.HostUser.Modified {
if machine.UpdatePodmanDockerSockService(m, name, m.UID, m.Rootful) == nil {
// Reset modification state if there are no errors, otherwise ignore errors
// which are already logged
m.HostUser.Modified = false
_ = m.writeConfig()
}
}
return nil
}