Documentation

Ark Config definition

Overview

Heptio Ark defines its own Config object (a custom resource) for specifying Ark backup and cloud provider settings. When the Ark server is first deployed, it waits until you create a Config–specifically one named default–in the heptio-ark namespace.

NOTE: There is an underlying assumption that you’re running the Ark server as a Kubernetes deployment. If the default Config is modified, the server shuts down gracefully. Once the kubelet restarts the Ark server pod, the server then uses the updated Config values.

Example

A sample YAML Config looks like the following:

apiVersion: ark.heptio.com/v1
kind: Config
metadata:
  namespace: heptio-ark
  name: default
persistentVolumeProvider:
  aws:
    region: us-west-2
    availabilityZone: us-west-2a
backupStorageProvider:
  bucket: ark
  aws:
    region: us-west-2
backupSyncPeriod: 60m
gcSyncPeriod: 60m
scheduleSyncPeriod: 1m
restoreOnlyMode: false

Parameter Reference

The configurable parameters are as follows:

Main config parameters

Key Type Default Meaning
persistentVolumeProvider CloudProviderConfig(Supported key values are aws, gcp, and azure, but only one can be present. See the corresponding AWS, GCP, and Azure-specific configs.) None (Optional) The specification for whichever cloud provider the cluster is using for persistent volumes (to be snapshotted), if any.If not specified, Backups and Restores requesting PV snapshots & restores, respectively, are considered invalid. NOTE: For Azure, your Kubernetes cluster needs to be version 1.7.2+ in order to support PV snapshotting of its managed disks.
backupStorageProvider/(inline) CloudProviderConfig(Supported key values are aws, gcp, and azure, but only one can be present. See the corresponding AWS, GCP, and Azure-specific configs.) Required Field The specification for whichever cloud provider will be used to actually store the backups.
backupStorageProvider/bucket String Required Field The storage bucket where backups are to be uploaded.
backupSyncPeriod metav1.Duration 60m0s How frequently Ark queries the object storage to make sure that the appropriate Backup resources have been created for existing backup files.
gcSyncPeriod metav1.Duration 60m0s How frequently Ark queries the object storage to delete backup files that have passed their TTL.
scheduleSyncPeriod metav1.Duration 1m0s How frequently Ark checks its Schedule resource objects to see if a backup needs to be initiated.
resourcePriorities []string [namespaces, persistentvolumes, persistentvolumeclaims, secrets, configmaps] An ordered list that describes the order in which Kubernetes resource objects should be restored (also specified with the <RESOURCE>.<GROUP> format.If a resource is not in this list, it is restored after all other prioritized resources.
restoreOnlyMode bool false When RestoreOnly mode is on, functionality for backups, schedules, and expired backup deletion is turned off. Restores are made from existing backup files in object storage.

AWS

(Or other S3-compatible storage)

backupStorageProvider

Key Type Default Meaning
region string Required Field Example: “us-east-1”See AWS documentation for the full list.
disableSSL bool false Set this to true if you are using Minio (or another local, S3-compatible storage service) and your deployment is not secured.
s3ForcePathStyle bool false Set this to true if you are using a local storage service like Minio.
s3Url string Required field for non-AWS-hosted storage Example: http://minio:9000You can specify the AWS S3 URL here for explicitness, but Ark can already generate it from region, availabilityZone, and bucket. This field is primarily for local storage services like Minio.
kmsKeyID string Empty Example: “502b409c-4da1-419f-a16e-eif453b3i49f”Specify an AWS KMS key id to enable encryption of the backups stored in S3. Only works with AWS S3 and may require explicitly granting key usage rights.

persistentVolumeProvider (AWS Only)

Key Type Default Meaning
region string Required Field Example: “us-east-1”See AWS documentation for the full list.
availabilityZone string Required Field Example: “us-east-1a”See AWS documentation for details.

GCP

backupStorageProvider

No parameters required; specify an empty object per example file.

persistentVolumeProvider

Key Type Default Meaning
project string Required Field Example: “project-example-3jsn23” See the Project ID documentation for details.
zone string Required Field Example: “us-central1-a”See GCP documentation for the full list.

Azure

backupStorageProvider

No parameters required; specify an empty object per example file.

persistentVolumeProvider

Key Type Default Meaning
location string Required Field Example: “Canada East”See the list of available locations (note that this particular page refers to them as “Regions”).
apiTimeout metav1.Duration 2m0s How long to wait for an Azure API request to complete before timeout.
Getting Started

To help you get started, see the documentation.