diff options
author | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-04-15 22:03:47 +0200 |
---|---|---|
committer | Giuseppe Scrivano <gscrivan@redhat.com> | 2019-04-26 22:23:45 +0200 |
commit | 525f0b30ac280565a1f98fd4208821a4984a7515 (patch) | |
tree | 795c0e3bac1f9baf11fd6ecfbebf73518f5009f1 /cmd/podman/libpodruntime | |
parent | b6e2cbad0a4581a8fe4954ff4a9202461a526781 (diff) | |
download | podman-525f0b30ac280565a1f98fd4208821a4984a7515.tar.gz podman-525f0b30ac280565a1f98fd4208821a4984a7515.tar.bz2 podman-525f0b30ac280565a1f98fd4208821a4984a7515.zip |
system: add new subcommand "migrate"
it is useful to migrate existing containers to a new version of
podman. Currently, it is needed to migrate rootless containers that
were created with podman <= 1.2 to a newer version which requires all
containers to be running in the same user namespace.
Closes: https://github.com/containers/libpod/issues/2935
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
Diffstat (limited to 'cmd/podman/libpodruntime')
-rw-r--r-- | cmd/podman/libpodruntime/runtime.go | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/cmd/podman/libpodruntime/runtime.go b/cmd/podman/libpodruntime/runtime.go index 78adf1252..595f8267f 100644 --- a/cmd/podman/libpodruntime/runtime.go +++ b/cmd/podman/libpodruntime/runtime.go @@ -9,17 +9,22 @@ import ( "github.com/pkg/errors" ) +// GetRuntimeMigrate gets a libpod runtime that will perform a migration of existing containers +func GetRuntimeMigrate(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) { + return getRuntime(c, false, true) +} + // GetRuntimeRenumber gets a libpod runtime that will perform a lock renumber func GetRuntimeRenumber(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) { - return getRuntime(c, true) + return getRuntime(c, true, false) } // GetRuntime generates a new libpod runtime configured by command line options func GetRuntime(c *cliconfig.PodmanCommand) (*libpod.Runtime, error) { - return getRuntime(c, false) + return getRuntime(c, false, false) } -func getRuntime(c *cliconfig.PodmanCommand, renumber bool) (*libpod.Runtime, error) { +func getRuntime(c *cliconfig.PodmanCommand, renumber bool, migrate bool) (*libpod.Runtime, error) { options := []libpod.RuntimeOption{} storageOpts := storage.StoreOptions{} storageSet := false @@ -63,6 +68,9 @@ func getRuntime(c *cliconfig.PodmanCommand, renumber bool) (*libpod.Runtime, err storageSet = true storageOpts.GraphDriverOptions = c.GlobalFlags.StorageOpts } + if migrate { + options = append(options, libpod.WithMigrate()) + } if renumber { options = append(options, libpod.WithRenumber()) |