Documentation for version v0.7.0 is no longer actively maintained. The version you are currently viewing is a static snapshot. For up-to-date documentation, see the latest version.
Heptio Ark has a plugin architecture that allows users to add their own custom functionality to Ark backups & restores without having to modify/recompile the core Ark binary. To add custom functionality, users simply create their own binary containing an implementation of one of Ark’s plugin kinds (described below), plus a small amount of boilerplate code to expose the plugin implementation to Ark. This binary is added to a container image that serves as an init container for the Ark server pod and copies the binary into a shared emptyDir volume for the Ark server to access.
A fully-functional sample plugin repository is provided to serve as a convenient starting point for plugin authors.
Ark currently supports the following kinds of plugins:
Ark relies on a naming convention to identify plugins. Each plugin binary should be named ark-<plugin-kind>-<name>
,
where plugin-kind
is one of objectstore
, blockstore
, backupitemaction
, or restoreitemaction
, and name
is
unique within the plugin kind.
Ark provides a logger that can be used by plugins to log structured information to the main Ark server log or per-backup/restore logs. See the sample repository for an example of how to instantiate and use the logger within your plugin.
To help you get started, see the documentation.