From b6cfce2dd95211f8e5f611fe8f1a9504ecd23315 Mon Sep 17 00:00:00 2001 From: Steve Kriss Date: Wed, 24 Apr 2019 11:31:25 -0600 Subject: [PATCH] switch minio install docs to use velero install Signed-off-by: Steve Kriss --- docs/get-started.md | 37 ++++++++--- examples/minio/00-minio-deployment.yaml | 20 ++---- examples/minio/05-backupstoragelocation.yaml | 33 ---------- examples/minio/20-deployment.yaml | 63 ------------------ examples/minio/30-restic-daemonset.yaml | 69 -------------------- 5 files changed, 35 insertions(+), 187 deletions(-) delete mode 100644 examples/minio/05-backupstoragelocation.yaml delete mode 100644 examples/minio/20-deployment.yaml delete mode 100644 examples/minio/30-restic-daemonset.yaml diff --git a/docs/get-started.md b/docs/get-started.md index e43d1eb10..499c9cd1e 100644 --- a/docs/get-started.md +++ b/docs/get-started.md @@ -19,7 +19,11 @@ If you encounter issues with installing or configuring, see [Debugging Installat ## Download Velero -1. Download the [latest release's](https://github.com/heptio/velero/releases) tarball for your client platform. +1. Download the [latest official release's](https://github.com/heptio/velero/releases) tarball for your client platform. + + _We strongly recommend that you use an [official release](https://github.com/heptio/velero/releases) of +Velero. The tarballs for each release contain the `velero` command-line client. The code in the master branch +of the Velero repository is under active development and is not guaranteed to be stable!_ 1. Extract the tarball: ```bash @@ -29,10 +33,6 @@ If you encounter issues with installing or configuring, see [Debugging Installat 1. Move the `velero` binary from the Velero directory to somewhere in your PATH. -_We strongly recommend that you use an [official release](https://github.com/heptio/velero/releases) of Velero. The tarballs for each release contain the -`velero` command-line client **and** version-specific sample YAML files for deploying Velero to your cluster. The code and sample YAML files in the master -branch of the Velero repository are under active development and are not guaranteed to be stable. Use them at your own risk!_ - #### MacOS Installation On Mac, you can use [HomeBrew](https://brew.sh) to install the `velero` client: @@ -44,11 +44,32 @@ brew install velero These instructions start the Velero server and a Minio instance that is accessible from within the cluster only. See [Expose Minio outside your cluster][31] for information about configuring your cluster for outside access to Minio. Outside access is required to access logs and run `velero describe` commands. -1. Start the server and the local storage service. In the Velero directory, run: +1. Create a Velero-specific credentials file (`credentials-velero`) in your local directory: + + ``` + [default] + aws_access_key_id = minio + aws_secret_access_key = minio123 + ``` + +1. Start the server and the local storage service. In the Velero directory, run: ```bash - kubectl apply -f config/common/00-prereqs.yaml - kubectl apply -f config/minio/ + kubectl apply -f config/minio/00-minio-deployment.yaml + + velero install \ + --provider aws \ + --bucket velero \ + --secret-file ./credentials-velero \ + --backup-location-config region=minio,s3ForcePathStyle="true",s3Url=http://minio.velero.svc:9000 \ + ``` + + Additionally, you can specify `--use-restic` to enable restic support, and `--wait` to wait for the deployment to be ready. + +1. Once the installation is complete, remove the default `VolumeSnapshotLocation` that was created by `velero install`, since it's not relevant for this scenario: + + ```bash + kubectl -n velero delete volumesnapshotlocation.velero.io default ``` 1. Deploy the example nginx application: diff --git a/examples/minio/00-minio-deployment.yaml b/examples/minio/00-minio-deployment.yaml index 018a51890..a76198953 100644 --- a/examples/minio/00-minio-deployment.yaml +++ b/examples/minio/00-minio-deployment.yaml @@ -12,6 +12,12 @@ # See the License for the specific language governing permissions and # limitations under the License. +--- +apiVersion: v1 +kind: Namespace +metadata: + name: velero + --- apiVersion: apps/v1beta1 kind: Deployment @@ -74,20 +80,6 @@ spec: selector: component: minio ---- -apiVersion: v1 -kind: Secret -metadata: - namespace: velero - name: cloud-credentials - labels: - component: minio -stringData: - cloud: | - [default] - aws_access_key_id = minio - aws_secret_access_key = minio123 - --- apiVersion: batch/v1 kind: Job diff --git a/examples/minio/05-backupstoragelocation.yaml b/examples/minio/05-backupstoragelocation.yaml deleted file mode 100644 index 75abdbb53..000000000 --- a/examples/minio/05-backupstoragelocation.yaml +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright 2018 the Velero contributors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -apiVersion: velero.io/v1 -kind: BackupStorageLocation -metadata: - name: default - namespace: velero -spec: - provider: aws - objectStorage: - bucket: velero - config: - region: minio - s3ForcePathStyle: "true" - s3Url: http://minio.velero.svc:9000 - # Uncomment the following line and provide the value of an externally - # available URL for downloading logs, running Velero describe, and more. - # publicUrl: https://minio.mycluster.com - - diff --git a/examples/minio/20-deployment.yaml b/examples/minio/20-deployment.yaml deleted file mode 100644 index 2d4d2f367..000000000 --- a/examples/minio/20-deployment.yaml +++ /dev/null @@ -1,63 +0,0 @@ -# Copyright 2017 the Velero contributors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - ---- -apiVersion: apps/v1beta1 -kind: Deployment -metadata: - namespace: velero - name: velero -spec: - replicas: 1 - template: - metadata: - labels: - component: velero - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "8085" - prometheus.io/path: "/metrics" - spec: - restartPolicy: Always - serviceAccountName: velero - containers: - - name: velero - image: gcr.io/heptio-images/velero:latest - ports: - - name: metrics - containerPort: 8085 - command: - - /velero - args: - - server - volumeMounts: - - name: cloud-credentials - mountPath: /credentials - - name: plugins - mountPath: /plugins - - name: scratch - mountPath: /scratch - env: - - name: AWS_SHARED_CREDENTIALS_FILE - value: /credentials/cloud - - name: VELERO_SCRATCH_DIR - value: /scratch - volumes: - - name: cloud-credentials - secret: - secretName: cloud-credentials - - name: plugins - emptyDir: {} - - name: scratch - emptyDir: {} diff --git a/examples/minio/30-restic-daemonset.yaml b/examples/minio/30-restic-daemonset.yaml deleted file mode 100644 index 9569c4706..000000000 --- a/examples/minio/30-restic-daemonset.yaml +++ /dev/null @@ -1,69 +0,0 @@ -# Copyright 2018 the Velero contributors. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -apiVersion: apps/v1 -kind: DaemonSet -metadata: - name: restic - namespace: velero -spec: - selector: - matchLabels: - name: restic - template: - metadata: - labels: - name: restic - spec: - serviceAccountName: velero - securityContext: - runAsUser: 0 - volumes: - - name: cloud-credentials - secret: - secretName: cloud-credentials - - name: host-pods - hostPath: - path: /var/lib/kubelet/pods - - name: scratch - emptyDir: {} - containers: - - name: velero - image: gcr.io/heptio-images/velero:latest - command: - - /velero - args: - - restic - - server - volumeMounts: - - name: cloud-credentials - mountPath: /credentials - - name: host-pods - mountPath: /host_pods - mountPropagation: HostToContainer - - name: scratch - mountPath: /scratch - env: - - name: NODE_NAME - valueFrom: - fieldRef: - fieldPath: spec.nodeName - - name: VELERO_NAMESPACE - valueFrom: - fieldRef: - fieldPath: metadata.namespace - - name: AWS_SHARED_CREDENTIALS_FILE - value: /credentials/cloud - - name: VELERO_SCRATCH_DIR - value: /scratch