diff --git a/docs/aws-config.md b/docs/aws-config.md index b4b98a438..d52e200cc 100644 --- a/docs/aws-config.md +++ b/docs/aws-config.md @@ -147,6 +147,9 @@ Specify the following values in the example files: * Replace ``. See the [VolumeSnapshotLocation definition][6] for details. +* (Optional, use only to specify multiple volume snapshot locations) In `examples/aws/10-deployment.yaml` (or `examples/aws/10-deployment-kube2iam.yaml`, as appropriate): + + * Uncomment the `--default-volume-snapshot-locations` and replace provider locations with the values for your environment. * (Optional) If you run the nginx example, in file `examples/nginx-app/with-pv.yaml`: diff --git a/docs/azure-config.md b/docs/azure-config.md index f5bf54fac..5b020bc4b 100644 --- a/docs/azure-config.md +++ b/docs/azure-config.md @@ -133,6 +133,9 @@ Now that you have your Azure credentials stored in a Secret, you need to replace * Replace ``. See the [VolumeSnapshotLocation definition][8] for details. +* (Optional, use only if you need to specify multiple volume snapshot locations) In `examples/azure/00-ark-deployment.yaml`: + + * Uncomment the `--default-volume-snapshot-locations` and replace provider locations with the values for your environment. ## Start the server diff --git a/docs/build-from-scratch.md b/docs/build-from-scratch.md index 42ebf7352..b6fcab650 100644 --- a/docs/build-from-scratch.md +++ b/docs/build-from-scratch.md @@ -93,11 +93,12 @@ When running Heptio Ark, you will need to account for the following (all of whic * Cloud provider credentials * Read/write access to volumes * Read/write access to object storage for backup data -* A [Config object][8] definition for the Ark server +* A [BackupStorageLocation][20] object definition for the Ark server +* (Optional) A [VolumeSnapshotLocation][21] object definition for the Ark server, to take PV snapshots ### Create a cluster -To provision a cluster on `aws` using Amazon’s official CloudFormation templates, here are two options: +To provision a cluster on AWS using Amazon’s official CloudFormation templates, here are two options: * EC2 [Quick Start for Kubernetes][17] @@ -138,7 +139,11 @@ You may create resources on a cluster using our [example configurations][19]. ##### Example -Here is how to setup using an existing cluster in AWS: At the root of the Ark repo, edit `examples/aws/00-ark-config.yaml` to point to your AWS S3 bucket and region. Note: you can run `aws s3api list-buckets` to get the name of all your buckets. +Here is how to setup using an existing cluster in AWS: At the root of the Ark repo: + +- Edit `examples/aws/05-ark-backupstoragelocation.yaml` to point to your AWS S3 bucket and region. Note: you can run `aws s3api list-buckets` to get the name of all your buckets. + +- (Optional) Edit `examples/aws/06-ark-volumesnapshotlocation.yaml` to point to your AWS region. Then run the commands below. @@ -148,12 +153,23 @@ Then run the commands below. kubectl apply -f examples/common/00-prereqs.yaml ``` -`00-ark-config.yaml` is a sample Ark config resource for AWS: +`10-deployment.yaml` is a sample Ark config resource for AWS: ```bash -kubectl apply -f examples/aws/00-ark-config.yaml +kubectl apply -f examples/aws/10-deployment.yaml ``` +And `05-ark-backupstoragelocation.yaml` specifies the location of your backup storage, together with the optional `06-ark-volumesnapshotlocation.yaml`: + +```bash +kubectl apply -f examples/aws/05-ark-backupstoragelocation.yaml +``` + +or + +```bash +kubectl apply -f examples/aws/05-ark-backupstoragelocation.yaml examples/aws/06-ark-volumesnapshotlocation.yaml +``` ### 3. Start the Ark server @@ -205,3 +221,5 @@ If you need to add or update the vendored dependencies, see [Vendoring dependenc [17]: https://aws.amazon.com/quickstart/architecture/heptio-kubernetes/ [18]: https://eksctl.io/ [19]: ../examples/README.md +[20]: /api-types/backupstoragelocation.md +[21]: /api-types/volumesnapshotlocation.md diff --git a/docs/gcp-config.md b/docs/gcp-config.md index 4b0795464..e33cf3ade 100644 --- a/docs/gcp-config.md +++ b/docs/gcp-config.md @@ -1,6 +1,6 @@ # Run Ark on GCP -You can run Kubernetes on Google Cloud Platform in either of: +You can run Kubernetes on Google Cloud Platform in either: * Kubernetes on Google Compute Engine virtual machines * Google Kubernetes Engine @@ -9,7 +9,7 @@ If you do not have the `gcloud` and `gsutil` CLIs locally installed, follow the ## Create GCS bucket -Heptio Ark requires an object storage bucket in which to store backups, preferrably unique to a single Kubernetes cluster (see the [FAQ][20] for more details). Create a GCS bucket, replacing the placeholder with the name of your bucket: +Heptio Ark requires an object storage bucket in which to store backups, preferably unique to a single Kubernetes cluster (see the [FAQ][20] for more details). Create a GCS bucket, replacing the placeholder with the name of your bucket: ```bash BUCKET= @@ -107,7 +107,7 @@ kubectl create secret generic cloud-credentials \ --from-file cloud=credentials-ark ``` -_Note: If you use a custom namespace, replace `heptio-ark` with the name of the custom namespace_ +**Note: If you use a custom namespace, replace `heptio-ark` with the name of the custom namespace** Specify the following values in the example files: @@ -119,6 +119,10 @@ Specify the following values in the example files: * Replace `` with `standard`. This is GCP's default `StorageClass` name. +* (Optional, use only if you need to specify multiple volume snapshot locations) In `examples/gcp/10-deployment.yaml`: + + * Uncomment the `--default-volume-snapshot-locations` and replace provider locations with the values for your environment. + ## Start the server In the root of your Ark directory, run: diff --git a/docs/ibm-config.md b/docs/ibm-config.md index 7b9fa8823..1ff2e183b 100644 --- a/docs/ibm-config.md +++ b/docs/ibm-config.md @@ -57,8 +57,6 @@ Specify the following values in the example files: * Replace ``, `` and ``. See the [BackupStorageLocation definition][6] for details. - - * (Optional) If you run the nginx example, in file `examples/nginx-app/with-pv.yaml`: * Replace `` with your `StorageClass` name. diff --git a/docs/install-overview.md b/docs/install-overview.md index 1cdd5a7fc..10618018e 100644 --- a/docs/install-overview.md +++ b/docs/install-overview.md @@ -6,6 +6,12 @@ In version 0.7.0 and later, you can run Ark in any namespace, which requires add In version 0.9.0 and later, you can use Ark's integration with restic, which requires additional setup. See [restic instructions][20]. +## Customize configuration + +Whether you run Ark on a cloud provider or on-premises, if you have more than one volume snapshot location for a given volume provider, you can specify its default location for backups by setting a server flag in your Ark deployment YAML. + +For details, see the documentation topics for individual cloud providers. + ## Cloud provider The Ark repository includes a set of example YAML files that specify the settings for each supported cloud provider. For provider-specific instructions, see: diff --git a/docs/upgrading-to-v0.10.md b/docs/upgrading-to-v0.10.md index fe2ea47a2..75f22d1c4 100644 --- a/docs/upgrading-to-v0.10.md +++ b/docs/upgrading-to-v0.10.md @@ -77,6 +77,6 @@ kubectl delete crd configs.ark.heptio.com ``` -[1]: /docs/api-types/backupstoragelocation.md -[2]: /docs/api-types/volumesnapshotlocation.md -[3]: /docs/storage-layout-reorg-v0.10.md +[1]: /api-types/backupstoragelocation.md +[2]: /api-types/volumesnapshotlocation.md +[3]: storage-layout-reorg-v0.10.md diff --git a/examples/aws/10-deployment.yaml b/examples/aws/10-deployment.yaml index 5549fea67..daba12998 100644 --- a/examples/aws/10-deployment.yaml +++ b/examples/aws/10-deployment.yaml @@ -38,6 +38,8 @@ spec: - /ark args: - server + ## uncomment following line and specify values if needed for multiple provider snapshot locations + # - --default-volume-snapshot-locations= volumeMounts: - name: cloud-credentials mountPath: /credentials diff --git a/examples/azure/00-ark-deployment.yaml b/examples/azure/00-ark-deployment.yaml index 93f1944a8..178e85715 100644 --- a/examples/azure/00-ark-deployment.yaml +++ b/examples/azure/00-ark-deployment.yaml @@ -41,6 +41,8 @@ spec: - /ark args: - server + ## uncomment following line and specify values if needed for multiple provider snapshot locations + # - --default-volume-snapshot-locations= envFrom: - secretRef: name: cloud-credentials diff --git a/examples/gcp/10-deployment.yaml b/examples/gcp/10-deployment.yaml index 98db63486..b31135965 100644 --- a/examples/gcp/10-deployment.yaml +++ b/examples/gcp/10-deployment.yaml @@ -41,6 +41,8 @@ spec: - /ark args: - server + ## uncomment following line and specify values if needed for multiple provider snapshot locations + # - --default-volume-snapshot-locations= volumeMounts: - name: cloud-credentials mountPath: /credentials