summaryrefslogtreecommitdiff
path: root/cmd/podman/libpodruntime
diff options
context:
space:
mode:
authorGiuseppe Scrivano <gscrivan@redhat.com>2019-04-15 22:03:47 +0200
committerGiuseppe Scrivano <gscrivan@redhat.com>2019-04-26 22:23:45 +0200
commit525f0b30ac280565a1f98fd4208821a4984a7515 (patch)
tree795c0e3bac1f9baf11fd6ecfbebf73518f5009f1 /cmd/podman/libpodruntime
parentb6e2cbad0a4581a8fe4954ff4a9202461a526781 (diff)
downloadpodman-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.go14
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())