What is Piper? How does Replicated use it?

What is Piper and how does Replicated use it?

Piper is a container that Replicated uses across all schedulers (Native, Docker Swarm, Kubernetes) to access the host’s filesystem. Operations include read/write/delete files and get file information

For example, Replicated uses Piper as a tool for taking snapshots of a running app

To add more details, this container is used to access file system that is not mounted into replicated and replicated-operator containers at run time when performing the following tasks:

  1. Reading system information during support bundle generation. For instance, files included in the /etc directory: hostname, hosts, os-release. Complete list depends on the version of Replicated used to collect the support bundle.
  2. Creating config files mounted into application containers as described here
  3. Accessing data in volumes included in snapshots as described here
  4. Updating Replicated daemon settings that are written in the Replicated service configuration on the host.