summaryrefslogtreecommitdiff
path: root/libpod
Commit message (Collapse)AuthorAge
* Add --ignore-rootfs option for checkpoint/restoreAdrian Reber2019-07-11
| | | | | | | | | | | | | | | | | The newly added functionality to include the container's root file-system changes into the checkpoint archive can now be explicitly disabled. Either during checkpoint or during restore. If a container changes a lot of files during its runtime it might be more effective to migrated the root file-system changes in some other way and to not needlessly increase the size of the checkpoint archive. If a checkpoint archive does not contain the root file-system changes information it will automatically be skipped. If the root file-system changes are part of the checkpoint archive it is also possible to tell Podman to ignore these changes. Signed-off-by: Adrian Reber <areber@redhat.com>
* Fix typo in checkpoint/restore related textsAdrian Reber2019-07-11
| | | | Signed-off-by: Adrian Reber <areber@redhat.com>
* Include root file-system changes in container migrationAdrian Reber2019-07-11
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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>
* Add function to get a filtered tarstream diffAdrian Reber2019-07-11
| | | | | | | | | | | | | | | The newly added function GetDiffTarStream() mirrors the GetDiff() function. It tries to get the correct layer ID from getLayerID() and it filters out containerMounts from the tarstream. Thus the behavior is the same as GetDiff(), but it returns a tarstream. This also adds the function ApplyDiffTarStream() to apply the tarstream generated by GetDiffTarStream(). These functions are targeted to support container migration with root file-system changes. Signed-off-by: Adrian Reber <areber@redhat.com>
* Merge pull request #3527 from adrianreber/finishOpenShift Merge Robot2019-07-11
|\ | | | | Correctly set FinishedTime for checkpointed container
| * Correctly set FinishedTime for checkpointed containerAdrian Reber2019-07-11
| | | | | | | | | | | | | | | | | | | | | | During 'podman container checkpoint' the finished time was not set. This resulted in a strange container status after checkpointing: Exited (0) 292 years ago During checkpointing FinishedTime is now set to time.now(). Signed-off-by: Adrian Reber <areber@redhat.com>
* | Merge pull request #3521 from baude/golangcilint1OpenShift Merge Robot2019-07-11
|\ \ | | | | | | first pass of corrections for golangci-lint
| * | first pass of corrections for golangci-lintbaude2019-07-10
| |/ | | | | | | Signed-off-by: baude <bbaude@redhat.com>
* / runtime: drop spurious message logGiuseppe Scrivano2019-07-10
|/ | | | | | fix a regression introduced by 1d36501f961889f554daf3c696fe95443ef211b6 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* Merge pull request #3529 from giuseppe/healthcheck-rootlessOpenShift Merge Robot2019-07-09
|\ | | | | healthcheck: support rootless mode
| * healthcheck: support rootless modeGiuseppe Scrivano2019-07-09
| | | | | | | | | | | | | | | | | | | | | | | | | | now that dbus authentication works fine from a user namespace (systemd 241 works fine), we can enable rootless healthchecks. It uses "systemd-run --user" for creating the healthcheck timer and communicates with the user instance of systemd listening at $XDG_RUNTIME_DIR/systemd/private. Closes: https://github.com/containers/libpod/issues/3523 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | Merge pull request #3497 from QazerLab/bugfix/systemd-generate-pidfileOpenShift Merge Robot2019-07-08
|\ \ | | | | | | Use conmon pidfile in generated systemd unit as PIDFile.
| * | Use default conmon pidfile location for root containers.Danila Kiver2019-07-04
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The conmon pidfile is crucial for podman-generated systemd units, because these units rely on it for determining service's main process ID. With this change, every container has ConmonPidFile set (at least to default value). Signed-off-by: Danila Kiver <danila.kiver@mail.ru>
* | | Merge pull request #3425 from adrianreber/restore-mount-labelOpenShift Merge Robot2019-07-08
|\ \ \ | | | | | | | | Set correct SELinux label on restored containers
| * | | Provide correct SELinux mount-label for restored containerAdrian Reber2019-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Restoring a container from a checkpoint archive creates a complete new root file-system. This file-system needs to have the correct SELinux label or most things in that restored container will fail. Running processes are not as problematic as newly exec()'d process (internally or via 'podman exec'). This patch tells the storage setup which label should be used to mount the container's root file-system. Signed-off-by: Adrian Reber <areber@redhat.com>
| * | | Track if a container is restored from an exported checkpointAdrian Reber2019-06-25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of only tracking that a container is restored from a checkpoint locally in runtime_ctr.go this adds a flag to the Container structure. Upcoming patches to correctly label the root file-system mount-point need also to know if a container is restored from a checkpoint. Instead of passing a parameter around a lot of functions, this adds that information to the Container structure. Signed-off-by: Adrian Reber <areber@redhat.com>
* | | | Merge pull request #3496 from baude/golandcodeinspectOpenShift Merge Robot2019-07-08
|\ \ \ \ | | | | | | | | | | code cleanup
| * | | | code cleanupbaude2019-07-08
| | |_|/ | |/| | | | | | | | | | | | | | | | | | clean up code identified as problematic by golands inspection Signed-off-by: baude <bbaude@redhat.com>
* / | | get last container eventbaude2019-07-07
|/ / / | | | | | | | | | | | | | | | | | | | | | an internal change in libpod will soon required the ability to lookup the last container event using the continer name or id and the type of event. this pr is in preperation for that need. Signed-off-by: baude <bbaude@redhat.com>
* | | Merge pull request #3472 from haircommander/generate-volumesOpenShift Merge Robot2019-07-04
|\ \ \ | | | | | | | | generate kube with volumes
| * | | Improve parsing of mountsPeter Hunt2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | Specifically, we were needlessly doing a double lookup to find which config mounts were user volumes. Improve this by refactoring a bit of code from inspect Signed-off-by: Peter Hunt <pehunt@redhat.com>
| * | | Deduplicate volumesPeter Hunt2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | for containers that share volumes, so the pod section doesn't list copies Signed-off-by: Peter Hunt <pehunt@redhat.com>
| * | | Pass along volumes to pod yamlPeter Hunt2019-07-01
| | | | | | | | | | | | | | | | Signed-off-by: Peter Hunt <pehunt@redhat.com>
| * | | Configure container volumes for generate kubePeter Hunt2019-07-01
| | | | | | | | | | | | | | | | Signed-off-by: Peter Hunt <pehunt@redhat.com>
* | | | trivial cleanups from golangbaude2019-07-03
| |_|/ |/| | | | | | | | | | | | | | the results of a code cleanup performed by the goland IDE. Signed-off-by: baude <bbaude@redhat.com>
* | | Merge pull request #3488 from marcov/ctr-or-pod-idOpenShift Merge Robot2019-07-03
|\ \ \ | | | | | | | | libpod: discerne partial IDs between containers and pods
| * | | libpod: discerne partial IDs between containers and podsMarco Vedovati2019-07-03
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When specifying a podman command with a partial ID, container and pod commands matches respectively only containers or pods IDs in the BoltDB. Fixes: #3487 Signed-off-by: Marco Vedovati <mvedovati@suse.com>
* | | | Merge pull request #3486 from openSUSE/ocicni-bumpOpenShift Merge Robot2019-07-03
|\ \ \ \ | | | | | | | | | | Vendor latest OCICNI version
| * | | | Vendor latest OCICNI versionSascha Grunert2019-07-03
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is needed for dual stack IPv6 support within CRI-O. Because the API changed within OCICNI, we have to adapt the internal linux networking as well. Signed-off-by: Sascha Grunert <sgrunert@suse.com>
* | | | Merge pull request #3437 from giuseppe/fix-nocgoOpenShift Merge Robot2019-07-03
|\ \ \ \ | | | | | | | | | | build: allow to build without cgo on RISC-V
| * | | | lock: new lock type "file"Giuseppe Scrivano2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | it is a wrapper around containers/storage file locking. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
| * | | | runtime: allow to specify the lock mechanismGiuseppe Scrivano2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | preparation for the next patch. It currently supports only "shm". Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
| * | | | lock: disable without cgoGiuseppe Scrivano2019-07-02
| | | | | | | | | | | | | | | | | | | | Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
| * | | | attach: move cgo bits to a different fileGiuseppe Scrivano2019-07-02
| | |/ / | |/| | | | | | | | | | | | | | | | | | move the cgo bits to a separate file to allow building without cgo. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | | Merge pull request #3483 from mheon/get_conmon_pidOpenShift Merge Robot2019-07-03
|\ \ \ \ | |_|/ / |/| | | Store and print PID of conmon
| * | | Wipe PID and ConmonPID in state after container stopsMatthew Heon2019-07-02
| | | | | | | | | | | | | | | | | | | | | | | | Matches the behavior of Docker. Signed-off-by: Matthew Heon <matthew.heon@pm.me>
| * | | Store Conmon's PID in our state and display in inspectMatthew Heon2019-07-02
| | | | | | | | | | | | | | | | Signed-off-by: Matthew Heon <matthew.heon@pm.me>
* | | | Merge pull request #3465 from baude/nostoreOpenShift Merge Robot2019-07-03
|\ \ \ \ | |/ / / |/| | | configure runtime without store
| * | | configure runtime without storebaude2019-07-01
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | some podman commands do not require the use of a container/image store. in those cases, it is more effecient to not open the store, because that results in having to also close the store which can be costly when the system is under heavy write I/O loads. Signed-off-by: baude <bbaude@redhat.com>
* | | Merge pull request #3461 from mheon/free_locks_on_failOpenShift Merge Robot2019-07-02
|\ \ \ | | | | | | | | Ensure locks are freed when ctr/pod creation fails
| * | | Ensure locks are freed when ctr/pod creation failsMatthew Heon2019-07-02
| |/ / | | | | | | | | | | | | | | | | | | | | | If we don't do this, we can leak locks on every failure, and that is very, very bad - can render Podman unusable without a 'system renumber' being run. Signed-off-by: Matthew Heon <mheon@redhat.com>
* / / stats: use runtime.NumCPU when percpu counters are not availableGiuseppe Scrivano2019-07-02
|/ / | | | | | | | | | | in the cgroup v2 implementation we don't have yet percpu times. Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | Merge pull request #3324 from marcov/detach-keys-configurableOpenShift Merge Robot2019-07-01
|\ \ | | | | | | libpod: specify a detach keys sequence in libpod.conf
| * | libpod: fix hang on container start and attachMarco Vedovati2019-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When a container is attached upon start, the WaitGroup counter may never be decremented if an error is raised before start, causing the caller to hang. Synchronize with the start & attach goroutine using a channel, to be able to detect failures before start. Signed-off-by: Marco Vedovati <mvedovati@suse.com>
| * | libpod: specify a detach keys sequence in libpod.confMarco Vedovati2019-06-26
| | | | | | | | | | | | | | | | | | Add the ability of specifying a detach keys sequence in libpod.conf Signed-off-by: Marco Vedovati <mvedovati@suse.com>
* | | Merge pull request #3422 from nalind/no-layer-imagesOpenShift Merge Robot2019-06-28
|\ \ \ | | | | | | | | Handle images which contain no layers
| * | | Handle images which contain no layersNalin Dahyabhai2019-06-26
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes some of our handling of images which have no layers, i.e., those whose TopLayer is set to an empty value. Signed-off-by: Nalin Dahyabhai <nalin@redhat.com>
* | | | rootless: enable linger if /run/user/UID not existsGiuseppe Scrivano2019-06-27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | at least on Fedora 30 it creates the /run/user/UID directory for the user logged in via ssh. This needs to be done very early so that every other check when we create the default configuration file will point to the correct location. Closes: https://github.com/containers/libpod/issues/3410 Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
* | | | Merge pull request #3442 from baude/removelibpodfrommainphase2OpenShift Merge Robot2019-06-27
|\ \ \ \ | | | | | | | | | | libpod removal from main (phase 2)
| * | | | libpod removal from main (phase 2)baude2019-06-27
| |/ / / | | | | | | | | | | | | | | | | | | | | this is phase 2 for the removal of libpod from main. Signed-off-by: baude <bbaude@redhat.com>