spiegel_podman/libpod
Adrian Reber 217f2e77f8
Include root file-system changes in container migration
One of the last limitations when migrating a container using Podman's
'podman container checkpoint --export=/path/to/archive.tar.gz' was
that it was necessary to manually handle changes to the container's root
file-system. The recommendation was to mount everything as --tmpfs where
the root file-system was changed.

This extends the checkpoint export functionality to also include all
changes to the root file-system in the checkpoint archive. The
checkpoint archive now includes a tarstream of the result from 'podman
diff'. This tarstream will be applied to the restored container before
restoring the container.

With this any container can now be migrated, even it there are changes
to the root file-system.

There was some discussion before implementing this to base the root
file-system migration on 'podman commit', but it seemed wrong to do
a 'podman commit' before the migration as that would change the parent
layer the restored container is referencing. Probably not really a
problem, but it would have meant that a migrated container will always
reference another storage top layer than it used to reference during
initial creation.

Signed-off-by: Adrian Reber <areber@redhat.com>
2019-07-11 14:43:34 +02:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
define libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
driver Begin to break up pkg/inspect 2019-06-03 15:54:53 -04:00
events get last container event 2019-07-07 08:54:20 -05:00
image first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
lock trivial cleanups from golang 2019-07-03 15:41:33 -05:00
logs libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
boltdb_state.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
boltdb_state_internal.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
boltdb_state_linux.go podman-remote inspect 2019-01-18 15:43:11 -06:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go code cleanup 2019-07-08 09:18:11 -05:00
container.go Merge pull request #3425 from adrianreber/restore-mount-label 2019-07-08 20:31:59 +02:00
container.log.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_api.go Merge pull request #3324 from marcov/detach-keys-configurable 2019-07-01 15:54:27 +02:00
container_attach_linux.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
container_attach_linux_cgo.go attach: move cgo bits to a different file 2019-07-02 16:41:02 +02:00
container_attach_linux_nocgo.go attach: move cgo bits to a different file 2019-07-02 16:41:02 +02:00
container_attach_unsupported.go libpod: fix hang on container start and attach 2019-06-26 10:17:29 +02:00
container_commit.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_graph.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_graph_test.go Update unit tests to use in-memory lock manager 2019-01-04 09:51:09 -05:00
container_inspect.go code cleanup 2019-07-08 09:18:11 -05:00
container_internal.go Merge pull request #3425 from adrianreber/restore-mount-label 2019-07-08 20:31:59 +02:00
container_internal_linux.go Include root file-system changes in container migration 2019-07-11 14:43:34 +02:00
container_internal_test.go Potentially breaking: Make hooks sort order locale-independent 2019-04-09 21:08:44 +02:00
container_internal_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_log_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_top_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_top_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
diff.go Add function to get a filtered tarstream diff 2019-07-11 14:43:34 +02:00
events.go get last container event 2019-07-07 08:54:20 -05:00
healthcheck.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
healthcheck_linux.go healthcheck: support rootless mode 2019-07-09 14:20:20 +02:00
healthcheck_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
in_memory_state.go remove libpod from main 2019-06-25 13:51:24 -05:00
info.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
kube.go code cleanup 2019-07-08 09:18:11 -05:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
networking_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
oci.go code cleanup 2019-07-08 09:18:11 -05:00
oci_linux.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
oci_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
options.go code cleanup 2019-07-08 09:18:11 -05:00
pod.go remove libpod from main 2019-06-25 13:51:24 -05:00
pod_api.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
pod_internal.go remove libpod from main 2019-06-25 13:51:24 -05:00
pod_top_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
pod_top_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime.go first pass of corrections for golangci-lint 2019-07-10 15:52:17 -05:00
runtime_cstorage.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_ctr.go runtime: drop spurious message log 2019-07-10 15:47:38 +02:00
runtime_img.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_img_test.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
runtime_migrate.go code cleanup 2019-07-08 09:18:11 -05:00
runtime_migrate_unsupported.go system: migrate stops the pause process 2019-05-17 20:48:25 +02:00
runtime_pod.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_pod_infra_linux.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_pod_linux.go Ensure locks are freed when ctr/pod creation fails 2019-07-02 12:51:39 -04:00
runtime_pod_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_renumber.go Add System event type and renumber, refresh events 2019-04-25 16:23:09 -04:00
runtime_volume.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_volume_linux.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_volume_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
state.go Switch Libpod over to new explicit named volumes 2019-04-04 12:26:29 -04:00
state_test.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
stats.go code cleanup 2019-07-08 09:18:11 -05:00
stats_config.go changes to allow for darwin compilation 2018-06-29 20:44:09 +00:00
stats_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
storage.go remove libpod from main 2019-06-25 13:51:24 -05:00
util.go code cleanup 2019-07-08 09:18:11 -05:00
util_linux.go stats: fix cgroup path for rootless containers 2019-06-26 13:17:06 +02:00
util_test.go Stage3 Image Library 2018-03-14 20:21:31 +00:00
util_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
volume.go Purge all use of easyjson and ffjson in libpod 2019-06-13 11:03:20 -04:00
volume_internal.go Remove locks from volumes 2019-02-21 10:51:42 -05:00