mirror of
https://github.com/vmware-tanzu/velero.git
synced 2026-03-27 12:05:05 +00:00
Compare commits
403 Commits
v0.11.1
...
v1.1.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d9c232729 | ||
|
|
d5dd39c941 | ||
|
|
d881a10fba | ||
|
|
80692a8a39 | ||
|
|
4accb8512a | ||
|
|
4e1b1f9457 | ||
|
|
de442c1106 | ||
|
|
6522ba7c42 | ||
|
|
a590fc9468 | ||
|
|
539e0b54c6 | ||
|
|
a4e70456a1 | ||
|
|
2254635bcb | ||
|
|
07525bd593 | ||
|
|
635dd27e1a | ||
|
|
2a6929d453 | ||
|
|
b24a603711 | ||
|
|
f2d06bc5e9 | ||
|
|
4543258970 | ||
|
|
22eca22ac8 | ||
|
|
6188cdffb0 | ||
|
|
935107e1a2 | ||
|
|
bf247836e6 | ||
|
|
b24e940399 | ||
|
|
248ee89123 | ||
|
|
52d97e7bd7 | ||
|
|
b8f3a008cb | ||
|
|
25a481f6b1 | ||
|
|
3b9af8c654 | ||
|
|
f80e1dc390 | ||
|
|
3c4dd3e526 | ||
|
|
8336d95f57 | ||
|
|
5f409f12c8 | ||
|
|
65906efffa | ||
|
|
c8bac5bfae | ||
|
|
92ac710dab | ||
|
|
c69b94da76 | ||
|
|
927d2775bf | ||
|
|
1594bdc8d0 | ||
|
|
aa8c0cd471 | ||
|
|
3124570c7f | ||
|
|
1d54996fce | ||
|
|
5841f82ee9 | ||
|
|
1c69bafeeb | ||
|
|
8e098e2f6c | ||
|
|
500d5485b1 | ||
|
|
1bb167ef90 | ||
|
|
11194d1071 | ||
|
|
63964fc6f9 | ||
|
|
d615cc6de0 | ||
|
|
8cde8fdbc7 | ||
|
|
ac00185a5f | ||
|
|
31973fbf04 | ||
|
|
d1025f7547 | ||
|
|
678c02c560 | ||
|
|
7724464017 | ||
|
|
f44bd53cf0 | ||
|
|
2498ac6cab | ||
|
|
afa49f398f | ||
|
|
f829dabcf4 | ||
|
|
eec5cc687e | ||
|
|
bf00754280 | ||
|
|
13cac85c1e | ||
|
|
567802299b | ||
|
|
adb93c33b1 | ||
|
|
e371ba78b0 | ||
|
|
2156124dfc | ||
|
|
db393ec199 | ||
|
|
022099a62e | ||
|
|
55054f67a5 | ||
|
|
75a96dfa92 | ||
|
|
81c2adc059 | ||
|
|
dd96aa76db | ||
|
|
0089fa4d93 | ||
|
|
553df25710 | ||
|
|
764de79cf5 | ||
|
|
f4c64ae75a | ||
|
|
c48586a8c7 | ||
|
|
5d8ba1b90d | ||
|
|
1a339f06ac | ||
|
|
b0bdaeea73 | ||
|
|
08fe7be851 | ||
|
|
67512a3808 | ||
|
|
37c7b618ad | ||
|
|
d143137a70 | ||
|
|
5634a4f463 | ||
|
|
19052994ed | ||
|
|
8cb9ee9eb8 | ||
|
|
0d326a3903 | ||
|
|
d916ae0a25 | ||
|
|
b00e0e834a | ||
|
|
d421fcd85c | ||
|
|
0735ee7218 | ||
|
|
223aec8200 | ||
|
|
870743a28d | ||
|
|
1f4139a5bf | ||
|
|
a2e88c4d3f | ||
|
|
2d81e29276 | ||
|
|
5d3312b7b5 | ||
|
|
fac3cd4a78 | ||
|
|
3ff95eaa40 | ||
|
|
023d43d0fe | ||
|
|
b807b449d6 | ||
|
|
1ded7c7207 | ||
|
|
f3850210aa | ||
|
|
e2bf39a027 | ||
|
|
6513e8f30e | ||
|
|
49f52b54b2 | ||
|
|
74b575200c | ||
|
|
520077c3a9 | ||
|
|
e183c4b597 | ||
|
|
f0f7d31e1b | ||
|
|
9a62d887d3 | ||
|
|
d6c60b2dd5 | ||
|
|
9e7ff4e3d9 | ||
|
|
bb12cbd2d7 | ||
|
|
16a08b82a9 | ||
|
|
c539e8ad63 | ||
|
|
f1319be60b | ||
|
|
7d9fc88eb3 | ||
|
|
0a771e6a53 | ||
|
|
bc7ee686d7 | ||
|
|
81a26e4aad | ||
|
|
caa0bff5a3 | ||
|
|
83c3143825 | ||
|
|
81287e4751 | ||
|
|
0804f34644 | ||
|
|
411d44a673 | ||
|
|
4e2e4cd5c4 | ||
|
|
108d826ca5 | ||
|
|
bbb11a8d23 | ||
|
|
82e464672b | ||
|
|
035c297287 | ||
|
|
02095d21d8 | ||
|
|
5f7bab945d | ||
|
|
ddb335475b | ||
|
|
915b3a1ddf | ||
|
|
a1f26aa3a8 | ||
|
|
9287505f62 | ||
|
|
02c7df9ea0 | ||
|
|
13b6cbb4db | ||
|
|
029cee6bc3 | ||
|
|
1ed5255f17 | ||
|
|
72f5cadc3a | ||
|
|
1ed1a84ebf | ||
|
|
15289295af | ||
|
|
f44ad1ad34 | ||
|
|
e7e2e8c390 | ||
|
|
effa5dbeee | ||
|
|
f3fd902de8 | ||
|
|
ac9b29f2d7 | ||
|
|
93c0ed111f | ||
|
|
0753a2572a | ||
|
|
a053989693 | ||
|
|
6db2283b84 | ||
|
|
9194eba5f0 | ||
|
|
e57eeef208 | ||
|
|
b0afa979ff | ||
|
|
e8e5485b94 | ||
|
|
eafe53560b | ||
|
|
f3663846a2 | ||
|
|
bdb7fe854c | ||
|
|
d995018a3e | ||
|
|
5d8df26b35 | ||
|
|
deb8a27bd4 | ||
|
|
c49e1ff0cc | ||
|
|
5a811b4629 | ||
|
|
5602ca9d29 | ||
|
|
95d2d47b77 | ||
|
|
ee8f8ca1db | ||
|
|
91a35c2f4e | ||
|
|
b3c6e5e483 | ||
|
|
079444410f | ||
|
|
c209f0c0c3 | ||
|
|
d05f8e53d8 | ||
|
|
a1eb8411f9 | ||
|
|
e52b04dfa3 | ||
|
|
8c2c96adeb | ||
|
|
a27e1a4c02 | ||
|
|
757a9862a5 | ||
|
|
363748667b | ||
|
|
d4f9c62449 | ||
|
|
e0bc14d56b | ||
|
|
f27ff115e2 | ||
|
|
b82e221310 | ||
|
|
c96b7b3e40 | ||
|
|
58d34700da | ||
|
|
05b8edf894 | ||
|
|
e5e3bc6b89 | ||
|
|
90c89f764e | ||
|
|
cdd583b8bf | ||
|
|
e0b3e6fa5f | ||
|
|
24d28c8633 | ||
|
|
0462217c9b | ||
|
|
e35cf8845d | ||
|
|
7a04e987ea | ||
|
|
4352158435 | ||
|
|
71f358c160 | ||
|
|
884e512f93 | ||
|
|
26d86f514c | ||
|
|
c0e105f5cd | ||
|
|
6ebedf6b25 | ||
|
|
de79f4d0b7 | ||
|
|
2406994740 | ||
|
|
ac9e0173e8 | ||
|
|
c95abf69b2 | ||
|
|
f3d36afd3a | ||
|
|
0205a43028 | ||
|
|
4e12b08953 | ||
|
|
721d19c7bf | ||
|
|
28612afa27 | ||
|
|
987ce55894 | ||
|
|
4514c2e27d | ||
|
|
660080e6f3 | ||
|
|
dea81bbe15 | ||
|
|
3b5de11c74 | ||
|
|
4ed63edea0 | ||
|
|
8392e6d83f | ||
|
|
42f351b000 | ||
|
|
bf19623e82 | ||
|
|
f2b4e73e2e | ||
|
|
9e19ab8d8b | ||
|
|
26b940c81c | ||
|
|
011db15f1c | ||
|
|
dda76b05a8 | ||
|
|
c7025b98e4 | ||
|
|
58bb7ed3aa | ||
|
|
6f496a8921 | ||
|
|
3155bb159f | ||
|
|
dcd663b8cf | ||
|
|
0471c6ee35 | ||
|
|
15aaa7bb9d | ||
|
|
fc25f0ae89 | ||
|
|
c201a2c103 | ||
|
|
1a55964326 | ||
|
|
eb30ec0666 | ||
|
|
e7e666306c | ||
|
|
8cd46b8a0c | ||
|
|
db9f8e16d9 | ||
|
|
9cd2862c8e | ||
|
|
7e949080cf | ||
|
|
7d28f82540 | ||
|
|
b6cfce2dd9 | ||
|
|
64dd3ed7ad | ||
|
|
e9c131df71 | ||
|
|
662a36df90 | ||
|
|
38ccb40ca1 | ||
|
|
c59d03dfb1 | ||
|
|
c7bb288d87 | ||
|
|
05a88345e5 | ||
|
|
01d0b026e9 | ||
|
|
134323fbf7 | ||
|
|
8870281afc | ||
|
|
6dd007b507 | ||
|
|
e85c367ce5 | ||
|
|
b01b12472f | ||
|
|
475cf2ab60 | ||
|
|
f8f0d15da2 | ||
|
|
6020823aaf | ||
|
|
ff642d739d | ||
|
|
0750b2c789 | ||
|
|
975bec692b | ||
|
|
38604e88fe | ||
|
|
c475108345 | ||
|
|
f2418052e4 | ||
|
|
2cef9d26ec | ||
|
|
5bc6695109 | ||
|
|
8c9ae491f0 | ||
|
|
39bab5ada9 | ||
|
|
316e6cc67e | ||
|
|
6f474016a6 | ||
|
|
bc8f07f963 | ||
|
|
9470983d5f | ||
|
|
94f014101d | ||
|
|
c38def0849 | ||
|
|
66c6d7a026 | ||
|
|
9b9b4f666e | ||
|
|
373e4c9abe | ||
|
|
ce374584c4 | ||
|
|
c59544cb79 | ||
|
|
6ed4e1f147 | ||
|
|
b04d6b02f3 | ||
|
|
7f36f78aee | ||
|
|
892673816b | ||
|
|
c8c03a38e9 | ||
|
|
ede9a8f5b4 | ||
|
|
b87de94723 | ||
|
|
77e648eafa | ||
|
|
d49008dec0 | ||
|
|
b03da3c0ed | ||
|
|
49cb4cd5c3 | ||
|
|
3ed97db550 | ||
|
|
44acdcbc60 | ||
|
|
5d06bd4ab9 | ||
|
|
0328a70ff0 | ||
|
|
8d61cb0384 | ||
|
|
f879670906 | ||
|
|
7251c8ca81 | ||
|
|
02cbb77dea | ||
|
|
d679498c8a | ||
|
|
c326f59627 | ||
|
|
bc93b2bbac | ||
|
|
3116185e5b | ||
|
|
abee09aa2d | ||
|
|
0e0f357cef | ||
|
|
23c0d3f612 | ||
|
|
4beb8aab3c | ||
|
|
b444d3c2f1 | ||
|
|
13eaad0e64 | ||
|
|
956152d6e1 | ||
|
|
bca21a1ec0 | ||
|
|
2f47ca62ad | ||
|
|
a519547efc | ||
|
|
0167539a14 | ||
|
|
985479094f | ||
|
|
a611658436 | ||
|
|
0f442b002d | ||
|
|
a774b54ae7 | ||
|
|
2e3f00f64d | ||
|
|
c3a933d3e3 | ||
|
|
bbd28a9fb9 | ||
|
|
23b1098950 | ||
|
|
1d3d66aa77 | ||
|
|
40c7fbce09 | ||
|
|
6bf29e17aa | ||
|
|
7298a4eda0 | ||
|
|
2a36cdcbf6 | ||
|
|
dcee310745 | ||
|
|
a696cd09f2 | ||
|
|
be42ea782d | ||
|
|
9b635c0e14 | ||
|
|
477e42286c | ||
|
|
21f3169ad3 | ||
|
|
59e0ef4524 | ||
|
|
86293b68b3 | ||
|
|
e4e0ed68a6 | ||
|
|
bb9c3f6a1a | ||
|
|
3f2c28f6bb | ||
|
|
60460f6920 | ||
|
|
7b0d8217de | ||
|
|
f8baf4f4f0 | ||
|
|
b1c0e9c49b | ||
|
|
4d7add1782 | ||
|
|
7af9f8d74e | ||
|
|
ff2db31b32 | ||
|
|
bd662ab613 | ||
|
|
01f2ae76e2 | ||
|
|
a111eed2af | ||
|
|
4c73e23ce8 | ||
|
|
a71e43b2b7 | ||
|
|
1eac10ca9f | ||
|
|
7dfe58d37f | ||
|
|
78bf8fb868 | ||
|
|
7d66fc31bd | ||
|
|
183bea369d | ||
|
|
de09fd7cdc | ||
|
|
f64b37289d | ||
|
|
73514a003b | ||
|
|
7674332313 | ||
|
|
409116fce8 | ||
|
|
503b112638 | ||
|
|
b286c652ec | ||
|
|
89ca2571f3 | ||
|
|
394548afcd | ||
|
|
4ee41a13a0 | ||
|
|
4041044a93 | ||
|
|
5e12a921b5 | ||
|
|
1354e2b6ff | ||
|
|
e29aa74a23 | ||
|
|
ce3f43e876 | ||
|
|
5912fe66e5 | ||
|
|
c006d9246f | ||
|
|
1b031f0cc4 | ||
|
|
88e6a740f2 | ||
|
|
0fec56f488 | ||
|
|
e21940bee1 | ||
|
|
421b64b1fa | ||
|
|
81e741ebfc | ||
|
|
fcf21813a5 | ||
|
|
8dd1cbf62b | ||
|
|
65f3926caa | ||
|
|
31501b79b2 | ||
|
|
6bf837b233 | ||
|
|
f908d5f8c0 | ||
|
|
f8548e1ca1 | ||
|
|
58e471bda0 | ||
|
|
61eab7dca3 | ||
|
|
efc490138c | ||
|
|
80fe640b98 | ||
|
|
21c57c46b3 | ||
|
|
7353294b7f | ||
|
|
7e736ab79d | ||
|
|
5468ccf5cb | ||
|
|
032aaac508 | ||
|
|
780dc4551f | ||
|
|
32835c63f6 | ||
|
|
86c5c25d13 | ||
|
|
250f109c41 | ||
|
|
d8e9b772ff | ||
|
|
88fc6e2141 | ||
|
|
38ad7d71f5 | ||
|
|
e91c841c59 | ||
|
|
902c0f797f | ||
|
|
296dd6617e |
@@ -4,6 +4,10 @@ about: Suggest an idea for this project
|
||||
|
||||
---
|
||||
|
||||
**Describe the problem/challenge you have**
|
||||
[A description of the current limitation/problem/challenge that you are experiencing.]
|
||||
|
||||
|
||||
**Describe the solution you'd like**
|
||||
[A clear and concise description of what you want to happen.]
|
||||
|
||||
|
||||
10
.gitignore
vendored
10
.gitignore
vendored
@@ -7,7 +7,6 @@
|
||||
_obj
|
||||
_test
|
||||
_output
|
||||
config
|
||||
|
||||
# Architecture specific extensions/prefixes
|
||||
*.[568vq]
|
||||
@@ -38,6 +37,13 @@ debug
|
||||
.vscode
|
||||
*.diff
|
||||
|
||||
_site/
|
||||
# Jekyll compiled data
|
||||
site/_site
|
||||
site/.sass-cache
|
||||
site/.jekyll
|
||||
site/.jekyll-metadata
|
||||
site/.bundle
|
||||
site/vendor
|
||||
.ruby-version
|
||||
|
||||
.vs
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -13,9 +13,6 @@
|
||||
# limitations under the License.
|
||||
|
||||
dist: _output
|
||||
before:
|
||||
hooks:
|
||||
- ./hack/set-example-tags.sh
|
||||
builds:
|
||||
- main: ./cmd/velero/main.go
|
||||
env:
|
||||
@@ -28,23 +25,29 @@ builds:
|
||||
- amd64
|
||||
- arm
|
||||
- arm64
|
||||
- ppc64le
|
||||
ignore:
|
||||
# don't build arm/arm64 for darwin or windows
|
||||
- goos: darwin
|
||||
goarch: arm
|
||||
- goos: darwin
|
||||
goarch: arm64
|
||||
- goos: darwin
|
||||
goarch: ppc64le
|
||||
- goos: windows
|
||||
goarch: arm
|
||||
- goos: windows
|
||||
goarch: arm64
|
||||
- goos: windows
|
||||
goarch: ppc64le
|
||||
ldflags:
|
||||
- -X "github.com/heptio/velero/pkg/buildinfo.Version={{ .Tag }}" -X "github.com/heptio/velero/pkg/buildinfo.GitSHA={{ .FullCommit }}" -X "github.com/heptio/velero/pkg/buildinfo.GitTreeState={{ .Env.GIT_TREE_STATE }}"
|
||||
archive:
|
||||
name_template: "{{ .ProjectName }}-{{ .Tag }}-{{ .Os }}-{{ .Arch }}"
|
||||
wrap_in_directory: true
|
||||
files:
|
||||
- LICENSE
|
||||
- config/**/*
|
||||
- examples/**/*
|
||||
checksum:
|
||||
name_template: 'CHECKSUM'
|
||||
release:
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
language: go
|
||||
|
||||
go:
|
||||
- 1.11.x
|
||||
- 1.12.x
|
||||
|
||||
sudo: required
|
||||
|
||||
services:
|
||||
- docker
|
||||
|
||||
script: make ci
|
||||
script: hack/ci-check.sh
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
## Current release:
|
||||
* [CHANGELOG-1.0.md][10]
|
||||
|
||||
## Development release:
|
||||
* [Unreleased Changes][0]
|
||||
|
||||
## Current release:
|
||||
* [CHANGELOG-0.11.md][9]
|
||||
|
||||
## Older releases:
|
||||
* [CHANGELOG-0.11.md][9]
|
||||
* [CHANGELOG-0.10.md][8]
|
||||
* [CHANGELOG-0.9.md][7]
|
||||
* [CHANGELOG-0.8.md][6]
|
||||
@@ -15,6 +16,7 @@
|
||||
* [CHANGELOG-0.3.md][1]
|
||||
|
||||
|
||||
[10]: https://github.com/heptio/velero/blob/master/changelogs/CHANGELOG-1.0.md
|
||||
[9]: https://github.com/heptio/velero/blob/master/changelogs/CHANGELOG-0.11.md
|
||||
[8]: https://github.com/heptio/velero/blob/master/changelogs/CHANGELOG-0.10.md
|
||||
[7]: https://github.com/heptio/velero/blob/master/changelogs/CHANGELOG-0.9.md
|
||||
|
||||
@@ -17,7 +17,7 @@ All authors to the project retain copyright to their work. However, to ensure
|
||||
that they are only submitting work that they have rights to, we are requiring
|
||||
everyone to acknowledge this by signing their work.
|
||||
|
||||
Any copyright notices in this repo should specify the authors as "the Heptio Ark project contributors".
|
||||
Any copyright notices in this repo should specify the authors as "the Velero contributors".
|
||||
|
||||
To sign your work, just add a line like this at the end of your commit message:
|
||||
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2018, 2019 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.
|
||||
@@ -12,13 +12,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
---
|
||||
apiVersion: velero.io/v1
|
||||
kind: VolumeSnapshotLocation
|
||||
metadata:
|
||||
name: aws-default
|
||||
namespace: velero
|
||||
spec:
|
||||
provider: aws
|
||||
config:
|
||||
region: <YOUR_REGION>
|
||||
FROM ubuntu:bionic
|
||||
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "-c", "while true; do sleep 10000; done"]
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2019 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.
|
||||
@@ -12,11 +12,8 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
---
|
||||
apiVersion: velero.io/v1
|
||||
kind: VolumeSnapshotLocation
|
||||
metadata:
|
||||
name: gcp-default
|
||||
namespace: velero
|
||||
spec:
|
||||
provider: gcp
|
||||
FROM ubuntu:bionic
|
||||
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
ENTRYPOINT ["/bin/bash", "-c", "while true; do sleep 10000; done"]
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# Copyright 2017, 2019 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.
|
||||
@@ -12,17 +12,19 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM alpine:3.8
|
||||
FROM ubuntu:bionic
|
||||
|
||||
MAINTAINER Andy Goldstein <andy@heptio.com>
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
RUN apk add --no-cache ca-certificates
|
||||
|
||||
RUN apk add --update --no-cache bzip2 && \
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends ca-certificates wget bzip2 && \
|
||||
wget --quiet https://github.com/restic/restic/releases/download/v0.9.4/restic_0.9.4_linux_amd64.bz2 && \
|
||||
bunzip2 restic_0.9.4_linux_amd64.bz2 && \
|
||||
mv restic_0.9.4_linux_amd64 /usr/bin/restic && \
|
||||
chmod +x /usr/bin/restic
|
||||
chmod +x /usr/bin/restic && \
|
||||
apt-get remove -y wget bzip2 && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
|
||||
ADD /bin/linux/amd64/velero /velero
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2019 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.
|
||||
@@ -12,11 +12,21 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM alpine:3.8
|
||||
FROM ubuntu:bionic
|
||||
|
||||
MAINTAINER Wayne Witzel III <wayne@heptio.com>
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
RUN apk add --no-cache ca-certificates
|
||||
RUN apk add --update --no-cache busybox util-linux
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends ca-certificates wget && \
|
||||
wget --quiet https://oplab9.parqtec.unicamp.br/pub/ppc64el/restic/restic-0.9.4 && \
|
||||
mv restic-0.9.4 /usr/bin/restic && \
|
||||
chmod +x /usr/bin/restic && \
|
||||
apt-get remove -y wget && \
|
||||
rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENTRYPOINT ["/bin/sh", "-c", "while true; do sleep 10000; done"]
|
||||
|
||||
ADD /bin/linux/ppc64le/velero /velero
|
||||
|
||||
USER nobody:nobody
|
||||
|
||||
ENTRYPOINT ["/velero"]
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2018, 2019 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.
|
||||
@@ -12,9 +12,9 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM alpine:3.8
|
||||
FROM ubuntu:bionic
|
||||
|
||||
MAINTAINER Steve Kriss <steve@heptio.com>
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
ADD /bin/linux/amd64/velero-restic-restore-helper .
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2019 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.
|
||||
@@ -12,13 +12,12 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
---
|
||||
apiVersion: velero.io/v1
|
||||
kind: VolumeSnapshotLocation
|
||||
metadata:
|
||||
name: azure-default
|
||||
namespace: velero
|
||||
spec:
|
||||
provider: azure
|
||||
config:
|
||||
apiTimeout: <YOUR_TIMEOUT>
|
||||
FROM ubuntu:bionic
|
||||
|
||||
LABEL maintainer="Steve Kriss <krisss@vmware.com>"
|
||||
|
||||
ADD /bin/linux/ppc64le/velero-restic-restore-helper .
|
||||
|
||||
USER nobody:nobody
|
||||
|
||||
ENTRYPOINT [ "/velero-restic-restore-helper" ]
|
||||
568
Gopkg.lock
generated
568
Gopkg.lock
generated
File diff suppressed because it is too large
Load Diff
66
Gopkg.toml
66
Gopkg.toml
@@ -31,31 +31,28 @@
|
||||
|
||||
[[constraint]]
|
||||
name = "k8s.io/kubernetes"
|
||||
version = "~1.11"
|
||||
version = "~1.14"
|
||||
|
||||
[[constraint]]
|
||||
name = "k8s.io/client-go"
|
||||
version = "~8.0"
|
||||
version = "kubernetes-1.14.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "k8s.io/apimachinery"
|
||||
version = "kubernetes-1.11.0"
|
||||
version = "kubernetes-1.14.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "k8s.io/api"
|
||||
version = "kubernetes-1.11.0"
|
||||
version = "kubernetes-1.14.0"
|
||||
|
||||
# vendor/k8s.io/apimachinery/pkg/runtime/serializer/json/json.go:104:16:
|
||||
# unknown field 'CaseSensitive' in struct literal of type jsoniter.Config
|
||||
[[constraint]]
|
||||
name = "k8s.io/apiextensions-apiserver"
|
||||
version = "kubernetes-1.14.0"
|
||||
|
||||
# k8s.io/client-go kubernetes-1.14.0 uses v1.1.4
|
||||
[[override]]
|
||||
name = "github.com/json-iterator/go"
|
||||
revision = "f2b4162afba35581b6d4a50d3b8f34e33c144682"
|
||||
|
||||
# vendor/k8s.io/client-go/plugin/pkg/client/auth/azure/azure.go:300:25:
|
||||
# cannot call non-function spt.Token (type adal.Token)
|
||||
[[override]]
|
||||
name = "github.com/Azure/go-autorest"
|
||||
revision = "1ff28809256a84bb6966640ff3d0371af82ccba4"
|
||||
version = "=1.1.4"
|
||||
|
||||
#
|
||||
# Cloud provider packages
|
||||
@@ -66,7 +63,12 @@
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/Azure/azure-sdk-for-go"
|
||||
version = "~11.3.0-beta"
|
||||
version = "~21.4.0"
|
||||
|
||||
# k8s.io/client-go kubernetes-1.14.0 uses v11.1.2
|
||||
[[constraint]]
|
||||
name = "github.com/Azure/go-autorest"
|
||||
version = "11.1.2"
|
||||
|
||||
[[constraint]]
|
||||
name = "cloud.google.com/go"
|
||||
@@ -74,7 +76,7 @@
|
||||
|
||||
[[constraint]]
|
||||
name = "google.golang.org/api"
|
||||
branch = "master"
|
||||
version = "~v0.3.2"
|
||||
|
||||
[[constraint]]
|
||||
name = "golang.org/x/oauth2"
|
||||
@@ -83,23 +85,13 @@
|
||||
#
|
||||
# Third party packages
|
||||
#
|
||||
[[constraint]]
|
||||
name = "github.com/golang/glog"
|
||||
branch = "master"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/robfig/cron"
|
||||
revision = "df38d32658d8788cd446ba74db4bb5375c4b0cb3"
|
||||
|
||||
# TODO(1.0) this repo is a redirect to github.com/satori/go.uuid. Our
|
||||
# current version of azure-sdk-for-go references this redirect, so
|
||||
# use it so we don't get a duplicate copy of this dependency.
|
||||
# Once our azure-sdk-for-go is updated to a newer version (where
|
||||
# their dependency has changed to .../go.uuid), switch this to
|
||||
# github.com/satori/go.uuid
|
||||
[[constraint]]
|
||||
name = "github.com/satori/uuid"
|
||||
version = "1.1.0"
|
||||
name = "github.com/satori/go.uuid"
|
||||
version = "~1.2.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/spf13/afero"
|
||||
@@ -119,4 +111,24 @@
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/hashicorp/go-plugin"
|
||||
revision = "a1bc61569a26c0f65865932c0d55743b0567c494"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/golang/protobuf"
|
||||
version = "~v1.3.1"
|
||||
|
||||
[[constraint]]
|
||||
name = "google.golang.org/grpc"
|
||||
version = "~v1.19.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/joho/godotenv"
|
||||
version = "~v1.3.0"
|
||||
|
||||
[[constraint]]
|
||||
name = "github.com/gobwas/glob"
|
||||
version = "~v0.2.3"
|
||||
|
||||
[[override]]
|
||||
name = "golang.org/x/sys"
|
||||
branch = "master"
|
||||
|
||||
51
Makefile
51
Makefile
@@ -1,6 +1,6 @@
|
||||
# Copyright 2016 The Kubernetes Authors.
|
||||
#
|
||||
# Modifications Copyright 2017 the Heptio Ark contributors.
|
||||
# Modifications 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.
|
||||
@@ -37,8 +37,8 @@ TAG_LATEST ?= false
|
||||
### These variables should not need tweaking.
|
||||
###
|
||||
|
||||
CLI_PLATFORMS := linux-amd64 linux-arm linux-arm64 darwin-amd64 windows-amd64
|
||||
CONTAINER_PLATFORMS := linux-amd64 linux-arm linux-arm64
|
||||
CLI_PLATFORMS := linux-amd64 linux-arm linux-arm64 darwin-amd64 windows-amd64 linux-ppc64le
|
||||
CONTAINER_PLATFORMS := linux-amd64 linux-arm linux-arm64 linux-ppc64le
|
||||
|
||||
platform_temp = $(subst -, ,$(ARCH))
|
||||
GOOS = $(word 1, $(platform_temp))
|
||||
@@ -47,7 +47,7 @@ GOARCH = $(word 2, $(platform_temp))
|
||||
# TODO(ncdc): support multiple image architectures once gcr.io supports manifest lists
|
||||
# Set default base image dynamically for each arch
|
||||
ifeq ($(GOARCH),amd64)
|
||||
DOCKERFILE ?= Dockerfile-$(BIN).alpine
|
||||
DOCKERFILE ?= Dockerfile-$(BIN)
|
||||
endif
|
||||
#ifeq ($(GOARCH),arm)
|
||||
# DOCKERFILE ?= Dockerfile.arm #armel/busybox
|
||||
@@ -55,6 +55,9 @@ endif
|
||||
#ifeq ($(GOARCH),arm64)
|
||||
# DOCKERFILE ?= Dockerfile.arm64 #aarch64/busybox
|
||||
#endif
|
||||
ifeq ($(GOARCH),ppc64le)
|
||||
DOCKERFILE ?= Dockerfile-$(BIN)-ppc64le
|
||||
endif
|
||||
|
||||
IMAGE = $(REGISTRY)/$(BIN)
|
||||
|
||||
@@ -132,7 +135,7 @@ DOTFILE_IMAGE = $(subst :,_,$(subst /,_,$(IMAGE))-$(VERSION))
|
||||
build-fsfreeze: BIN = fsfreeze-pause
|
||||
build-fsfreeze:
|
||||
@cp $(DOCKERFILE) _output/.dockerfile-$(BIN).alpine
|
||||
@docker build -t $(IMAGE):$(VERSION) -f _output/.dockerfile-$(BIN).alpine _output
|
||||
@docker build --pull -t $(IMAGE):$(VERSION) -f _output/.dockerfile-$(BIN).alpine _output
|
||||
@docker images -q $(IMAGE):$(VERSION) > .container-$(DOTFILE_IMAGE)
|
||||
|
||||
push-fsfreeze: BIN = fsfreeze-pause
|
||||
@@ -152,7 +155,7 @@ all-containers:
|
||||
container: verify test .container-$(DOTFILE_IMAGE) container-name
|
||||
.container-$(DOTFILE_IMAGE): _output/bin/$(GOOS)/$(GOARCH)/$(BIN) $(DOCKERFILE)
|
||||
@cp $(DOCKERFILE) _output/.dockerfile-$(BIN)-$(GOOS)-$(GOARCH)
|
||||
@docker build -t $(IMAGE):$(VERSION) -f _output/.dockerfile-$(BIN)-$(GOOS)-$(GOARCH) _output
|
||||
@docker build --pull -t $(IMAGE):$(VERSION) -f _output/.dockerfile-$(BIN)-$(GOOS)-$(GOARCH) _output
|
||||
@docker images -q $(IMAGE):$(VERSION) > $@
|
||||
|
||||
container-name:
|
||||
@@ -200,7 +203,7 @@ build-dirs:
|
||||
@mkdir -p .go/src/$(PKG) .go/pkg .go/bin .go/std/$(GOOS)/$(GOARCH) .go/go-build
|
||||
|
||||
build-image:
|
||||
cd hack/build-image && docker build -t $(BUILDER_IMAGE) .
|
||||
cd hack/build-image && docker build --pull -t $(BUILDER_IMAGE) .
|
||||
|
||||
clean:
|
||||
rm -rf .container-* _output/.dockerfile-* .push-*
|
||||
@@ -214,3 +217,37 @@ changelog:
|
||||
|
||||
release:
|
||||
hack/goreleaser.sh
|
||||
|
||||
serve-docs:
|
||||
docker run \
|
||||
--rm \
|
||||
-v "$$(pwd)/site:/srv/jekyll" \
|
||||
-it -p 4000:4000 \
|
||||
jekyll/jekyll \
|
||||
jekyll serve --livereload --incremental
|
||||
|
||||
# gen-docs generates a new versioned docs directory under site/docs. It follows
|
||||
# the following process:
|
||||
# 1. Copies the contents of the most recently tagged docs directory into the new
|
||||
# directory, to establish a useful baseline to diff against.
|
||||
# 2. Adds all copied content from step 1 to git's staging area via 'git add'.
|
||||
# 3. Replaces the contents of the new docs directory with the contents of the
|
||||
# 'master' docs directory, updating any version-specific links (e.g. to a
|
||||
# specific branch of the GitHub repository) to use the new version
|
||||
# 4. Copies the previous version's ToC file and runs 'git add' to establish
|
||||
# a useful baseline to diff against.
|
||||
# 5. Replaces the content of the new ToC file with the master ToC.
|
||||
# 6. Update site/_config.yml and site/_data/toc-mapping.yml to include entries
|
||||
# for the new version.
|
||||
#
|
||||
# The unstaged changes in the working directory can now easily be diff'ed against the
|
||||
# staged changes using 'git diff' to review all docs changes made since the previous
|
||||
# tagged version. Once the unstaged changes are ready, they can be added to the
|
||||
# staging area using 'git add' and then committed.
|
||||
#
|
||||
# To run gen-docs: "NEW_DOCS_VERSION=v1.1.0 make gen-docs"
|
||||
#
|
||||
# **NOTE**: there are additional manual steps required to finalize the process of generating
|
||||
# a new versioned docs site. The full process is documented in site/README-JEKYLL.md.
|
||||
gen-docs:
|
||||
@hack/gen-docs.sh
|
||||
|
||||
24
README.md
24
README.md
@@ -1,14 +1,14 @@
|
||||

|
||||
![100]
|
||||
|
||||
[![Build Status][1]][2] <a href="https://zenhub.com"><img src="https://raw.githubusercontent.com/ZenHubIO/support/master/zenhub-badge.png"></a>
|
||||
[![Build Status][1]][2]
|
||||
|
||||
## Overview
|
||||
|
||||
Velero (formerly Heptio Ark) gives you tools to back up and restore your Kubernetes cluster resources and persistent volumes. Velero lets you:
|
||||
|
||||
* Take backups of your cluster and restore in case of loss.
|
||||
* Copy cluster resources to other clusters.
|
||||
* Replicate your production environment for development and testing environments.
|
||||
* Migrate cluster resources to other clusters.
|
||||
* Replicate your production cluster to development and testing clusters.
|
||||
|
||||
Velero consists of:
|
||||
|
||||
@@ -20,14 +20,13 @@ You can run Velero in clusters on a cloud provider or on-premises. For detailed
|
||||
## Installation
|
||||
|
||||
We strongly recommend that you use an [official release][6] of Velero. The tarballs for each release contain the
|
||||
command-line client **and** version-specific sample YAML files for deploying Velero to your cluster.
|
||||
Follow the instructions under the **Install** section of [our documentation][29] to get started.
|
||||
`velero` command-line client. Follow the [installation instructions][28] to get started.
|
||||
|
||||
_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!_
|
||||
|
||||
## More information
|
||||
|
||||
[The documentation][29] provides a getting started guide, plus information about building from source, architecture, extending Velero, and more.
|
||||
[The documentation][29] provides a getting started guide, plus information about building from source, architecture, extending Velero, and more.
|
||||
|
||||
Please use the version selector at the top of the site to ensure you are using the appropriate documentation for your version of Velero.
|
||||
|
||||
@@ -71,10 +70,11 @@ See [the list of releases][6] to find out about feature changes.
|
||||
|
||||
[24]: https://groups.google.com/forum/#!forum/projectvelero
|
||||
[25]: https://kubernetes.slack.com/messages/velero
|
||||
[26]: https://github.com/heptio/velero/blob/master/docs/zenhub.md
|
||||
[26]: https://velero.io/docs/zenhub
|
||||
|
||||
[28]: https://velero.io/docs/install-overview
|
||||
[29]: https://velero.io/docs/
|
||||
[30]: https://velero.io/docs/troubleshooting
|
||||
|
||||
[29]: https://heptio.github.io/velero/
|
||||
[30]: /docs/troubleshooting.md
|
||||
|
||||
[99]: /docs/support-matrix.md
|
||||
[99]: https://velero.io/docs/support-matrix
|
||||
[100]: /site/docs/master/img/velero.png
|
||||
|
||||
@@ -2,4 +2,4 @@
|
||||
|
||||
Thanks for trying out Velero! We welcome all feedback, please consider joining our mailing list:
|
||||
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/velero)
|
||||
- [Mailing List](https://groups.google.com/forum/#!forum/projectvelero)
|
||||
|
||||
139
changelogs/CHANGELOG-1.0.md
Normal file
139
changelogs/CHANGELOG-1.0.md
Normal file
@@ -0,0 +1,139 @@
|
||||
## v1.0.0
|
||||
#### 2019-05-20
|
||||
|
||||
### Highlights
|
||||
- We've added a new command, `velero install`, to make it easier to get up and running with Velero. This CLI command replaces the static YAML installation files that were previously part of release tarballs. See the updated [install instructions][3] for more information.
|
||||
- We've made a number of improvements to the plugin framework:
|
||||
- we've reorganized the relevant packages to minimize the import surface for plugin authors
|
||||
- all plugins are now wrapped in panic handlers that will report information on panics back to Velero
|
||||
- Velero's `--log-level` flag is now passed to plugin implementations
|
||||
- Errors logged within plugins are now annotated with the file/line of where the error occurred
|
||||
- Restore item actions can now optionally return a list of additional related items that should be restored
|
||||
- Restore item actions can now indicate that an item *should not* be restored
|
||||
- For Azure installation, the `cloud-credentials` secret can now be created from a file containing a list of environment variables. Note that `velero install` always uses this method of providing credentials for Azure. For more details, see [Run on Azure][0].
|
||||
- We've added a new phase, `PartiallyFailed`, for both backups and restores. This new phase is used for backups/restores that successfully process some but not all of their items.
|
||||
- We removed all legacy Ark references, including API types, prometheus metrics, restic & hook annotations, etc.
|
||||
- The restic integration remains a **beta feature**. Please continue to try it out and provide feedback, and we'll be working over the next couple of releases to bring it to GA.
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
#### API
|
||||
* All legacy Ark data types and pre-1.0 compatibility code has been removed. Users should migrate any backups created pre-v0.11.0 with the `velero migrate-backups` command, available in [v0.11.1][2].
|
||||
|
||||
#### Image
|
||||
* The base container image has been switched to `ubuntu:bionic`
|
||||
|
||||
#### Labels/Annotations/Metrics
|
||||
* The "ark" annotations for specifying hooks are no longer supported, and have been replaced with "velero"-based equivalents.
|
||||
* The "ark" annotation for specifying restic backups is no longer supported, and has been replaced with a "velero"-based equivalent.
|
||||
* The "ark" prometheus metrics no longer exist, and have been replaced with "velero"-based equivalents.
|
||||
|
||||
#### Plugin Development
|
||||
* `BlockStore` plugins are now named `VolumeSnapshotter` plugins
|
||||
* Plugin APIs have moved to reduce the import surface:
|
||||
* Plugin gRPC servers live in `github.com/heptio/velero/pkg/plugin/framework`
|
||||
* Plugin interface types live in `github.com/heptio/velero/pkg/plugin/velero`
|
||||
* RestoreItemAction interface now takes the original item from the backup as a parameter
|
||||
* RestoreItemAction plugins can now return additional items to restore
|
||||
* RestoreItemAction plugins can now skip restoring an item
|
||||
* Plugins may now send stack traces with errors to the Velero server, so that the errors may be put into the server log
|
||||
* Plugins must now be "namespaced," using `example.domain.com/plugin-name` format
|
||||
* For external ObjectStore and VolumeSnapshotter plugins. this name will also be the provider name in BackupStorageLoction and VolumeSnapshotLocation objects
|
||||
* `--log-level` flag is now passed to all plugins
|
||||
|
||||
#### Validation
|
||||
* Configs for Azure, AWS, and GCP are now checked for invalid or extra keys, and the server is halted if any are found
|
||||
|
||||
### Download
|
||||
- https://github.com/heptio/velero/releases/tag/v1.0.0
|
||||
|
||||
### Container Image
|
||||
`gcr.io/heptio-images/velero:v1.0.0`
|
||||
|
||||
### Documentation
|
||||
https://velero.io/docs/v1.0.0/
|
||||
|
||||
### Upgrading
|
||||
To upgrade from a previous version of Velero, see our [upgrade instructions][1].
|
||||
|
||||
### All Changes
|
||||
* Change base images to ubuntu:bionic (#1488, @skriss)
|
||||
* Expose the timestamp of the last successful backup in a gauge (#1448, @fabito)
|
||||
* check backup existence before download (#1447, @fabito)
|
||||
* Use `latest` image tag if no version information is provided at build time (#1439, @nrb)
|
||||
* switch from `restic stats` to `restic snapshots` for checking restic repository existence (#1416, @skriss)
|
||||
* GCP: add optional 'project' config to volume snapshot location for if snapshots are in a different project than the IAM account (#1405, @skriss)
|
||||
* Disallow bucket names starting with '-' (#1407, @nrb)
|
||||
* Shorten label values when they're longer than 63 characters (#1392, @anshulc)
|
||||
* Fail backup if it already exists in object storage. (#1390, @ncdc,carlisia)
|
||||
* Add PartiallyFailed phase for backups, log + continue on errors during backup process (#1386, @skriss)
|
||||
* Remove deprecated "hooks" for backups (they've been replaced by "pre hooks") (#1384, @skriss)
|
||||
* Restic repo ensurer: return error if new repository does not become ready within a minute, and fix channel closing/deletion (#1367, @skriss)
|
||||
* Support non-namespaced names for built-in plugins (#1366, @nrb)
|
||||
* Change container base images to debian:stretch-slim and upgrade to go 1.12 (#1365, @skriss)
|
||||
* Azure: allow credentials to be provided in a .env file (path specified by $AZURE_CREDENTIALS_FILE), formatted like (#1364, @skriss):
|
||||
```
|
||||
AZURE_TENANT_ID=${AZURE_TENANT_ID}
|
||||
AZURE_SUBSCRIPTION_ID=${AZURE_SUBSCRIPTION_ID}
|
||||
AZURE_CLIENT_ID=${AZURE_CLIENT_ID}
|
||||
AZURE_CLIENT_SECRET=${AZURE_CLIENT_SECRET}
|
||||
AZURE_RESOURCE_GROUP=${AZURE_RESOURCE_GROUP}
|
||||
```
|
||||
* Instantiate the plugin manager with the per-restore logger so plugin logs are captured in the per-restore log (#1358, @skriss)
|
||||
* Add gauge metrics for number of existing backups and restores (#1353, @fabito)
|
||||
* Set default TTL for backups (#1352, @vorar)
|
||||
* Validate that there can't be any duplicate plugin name, and that the name format is `example.io/name`. (#1339, @carlisia)
|
||||
* AWS/Azure/GCP: fail fast if unsupported keys are provided in BackupStorageLocation/VolumeSnapshotLocation config (#1338, @skriss)
|
||||
* `velero backup logs` & `velero restore logs`: show helpful error message if backup/restore does not exist or is not finished processing (#1337, @skriss)
|
||||
* Add support for allowing a RestoreItemAction to skip item restore. (#1336, @sseago)
|
||||
* Improve error message around invalid S3 URLs, and gracefully handle trailing backslashes. (#1331, @skriss)
|
||||
* Set backup's start timestamp before patching it to InProgress so start times display in `velero backup get` while in progress (#1330, @skriss)
|
||||
* Added ability to dynamically disable controllers (#1326, @amanw)
|
||||
* Remove deprecated code in preparation for v1.0 release (#1323, @skriss):
|
||||
- remove ark.heptio.com API group
|
||||
- remove support for reading ark-backup.json files from object storage
|
||||
- remove Ark field from RestoreResult type
|
||||
- remove support for "hook.backup.ark.heptio.com/..." annotations for specifying hooks
|
||||
- remove support for $HOME/.config/ark/ client config directory
|
||||
- remove support for restoring Azure snapshots using short snapshot ID formats in backup metadata
|
||||
- stop applying "velero-restore" label to restored resources and remove it from the API pkg
|
||||
- remove code that strips the "gc.ark.heptio.com" finalizer from backups
|
||||
- remove support for "backup.ark.heptio.com/..." annotations for requesting restic backups
|
||||
- remove "ark"-prefixed prometheus metrics
|
||||
- remove VolumeBackups field and related code from Backup's status
|
||||
* Rename BlockStore plugin to VolumeSnapshotter (#1321, @skriss)
|
||||
* Bump plugin ProtocolVersion to version 2 (#1319, @carlisia)
|
||||
* Remove Warning field from restore item action output (#1318, @skriss)
|
||||
* Fix for #1312, use describe to determine if AWS EBS snapshot is encrypted and explicitly pass that value in EC2 CreateVolume call. (#1316, @mstump)
|
||||
* Allow restic restore helper image name to be optionally specified via ConfigMap (#1311, @skriss)
|
||||
* Compile only once to lower the initialization cost for regexp.MustCompile. (#1306, @pei0804)
|
||||
* Enable restore item actions to return additional related items to be restored; have pods return PVCs and PVCs return PVs (#1304, @skriss)
|
||||
* Log error locations from plugin logger, and don't overwrite them in the client logger if they exist already (#1301, @skriss)
|
||||
* Send stack traces from plugin errors to Velero via gRPC so error location info can be logged (#1300, @skriss)
|
||||
* Azure: restore volumes in the original region's zone (#1298, @sylr)
|
||||
* Check for and exclude hostPath-based persistent volumes from restic backup (#1297, @skriss)
|
||||
* Make resticrepositories non-restorable resources (#1296, @skriss)
|
||||
* Gracefully handle failed API groups from the discovery API (#1293, @fabito)
|
||||
* Add `velero install` command for basic use cases. (#1287, @nrb)
|
||||
* Collect 3 new metrics: backup_deletion_{attempt|failure|success}_total (#1280, @fabito)
|
||||
* Pass --log-level flag to internal/external plugins, matching Velero server's log level (#1278, @skriss)
|
||||
* AWS EBS Volume IDs now contain AZ (#1274, @tsturzl)
|
||||
* Add panic handlers to all server-side plugin methods (#1270, @skriss)
|
||||
* Move all the interfaces and associated types necessary to implement all of the Velero plugins to under the new package `velero`. (#1264, @carlisia)
|
||||
* Update `velero restore` to not open every single file open during extraction of the data (#1261, @asaf)
|
||||
* Remove restore code that waits for a PV to become Available (#1254, @skriss)
|
||||
* Improve `describe` output
|
||||
* Move Phase to right under Metadata(name/namespace/label/annotations)
|
||||
* Move Validation errors: section right after Phase: section and only show it if the item has a phase of FailedValidation
|
||||
* For restores move Warnings and Errors under Validation errors. Leave their display as is. (#1248, @DheerajSShetty)
|
||||
* Don't remove storage class from a persistent volume when restoring it (#1246, @skriss)
|
||||
* Need to defer closing the the ReadCloser in ObjectStoreGRPCServer.GetObject (#1236, @DheerajSShetty)
|
||||
* Update Kubernetes dependencies to match v1.12, and update Azure SDK to v19.0.0 (GA) (#1231, @skriss)
|
||||
* Remove pkg/util/collections/map_utils.go, replace with structured API types and apimachinery's unstructured helpers (#1146, @skriss)
|
||||
* Add original resource (from backup) to restore item action interface (#1123, @mwieczorek)
|
||||
|
||||
|
||||
[0]: https://velero.io/docs/v1.0.0/azure-config
|
||||
[1]: https://velero.io/docs/v1.0.0/upgrade-to-1.0
|
||||
[2]: https://github.com/heptio/velero/releases/tag/v0.11.1
|
||||
[3]: https://velero.io/docs/v1.0.0/install-overview
|
||||
50
changelogs/CHANGELOG-1.1.md
Normal file
50
changelogs/CHANGELOG-1.1.md
Normal file
@@ -0,0 +1,50 @@
|
||||
## v1.1.0-beta.1
|
||||
#### 2019-08-07
|
||||
|
||||
### Download
|
||||
- https://github.com/heptio/velero/releases/tag/v1.1.0-beta.1
|
||||
|
||||
### Container Image
|
||||
`gcr.io/heptio-images/velero:v1.1.0-beta.1`
|
||||
|
||||
### Documentation
|
||||
https://velero.io/docs/v1.1.0-beta.1/
|
||||
|
||||
|
||||
### All Changes
|
||||
|
||||
* adds the ability to define custom tags to be added to snapshots by specifying custom labels on the Backup CR with the `velero backup create --labels` flag (#1729, @prydonius)
|
||||
* Restore restic volumes from PodVolumeBackups CRs (#1723, @carlisia)
|
||||
* properly restore PVs backed up with restic and a reclaim policy of "Retain" (#1713, @skriss)
|
||||
* Make `--secret-file` flag on `velero install` optional, add `--no-secret` flag for explicit confirmation (#1699, @nrb)
|
||||
* Add low cpu/memory limits to the restic init container. This allows for restoration into namespaces with quotas defined. (#1677, @nrb)
|
||||
* Adds configurable CPU/memory requests and limits to the restic DaemonSet generated by velero install. (#1710, @prydonius)
|
||||
* remove any stale locks from restic repositories every 5m (#1708, @skriss)
|
||||
* error if backup storage location's Bucket field also contains a prefix, and gracefully handle leading/trailing slashes on Bucket and Prefix fields. (#1694, @skriss)
|
||||
* enhancement: allow option to choose JSON log output (#1654, @carthewd)
|
||||
* Adds configurable CPU/memory requests and limits to the Velero Deployment generated by velero install. (#1678, @prydonius)
|
||||
* Store restic PodVolumeBackups in obj storage & use that as source of truth like regular backups. (#1577, @carlisia)
|
||||
* Update Velero Deployment to use apps/v1 API group. `velero install` and `velero plugin add/remove` commands will now require Kubernetes 1.9+ (#1673, @nrb)
|
||||
* Respect the --kubecontext and --kubeconfig arugments for `velero install`. (#1656, @nrb)
|
||||
* add plugin for updating PV & PVC storage classes on restore based on a config map (#1621, @skriss)
|
||||
* Add restic support for CSI volumes (#1615, @nrb)
|
||||
* bug fix: Fixed namespace usage with cli command 'version' (#1630, @jwmatthews)
|
||||
* enhancement: allow users to specify additional Velero/Restic pod annotations on the command line with the pod-annotations flag. (#1626, @tlkamp)
|
||||
* adds validation for pod volumes hostPath mount on restic server startup (#1616, @prydonius)
|
||||
* enable support for ppc64le architecture (#1605, @prajyot)
|
||||
* bug fix: only restore additional items returned from restore item actions if they match the restore's namespace/resource selectors (#1612, @skriss)
|
||||
* add startTimestamp and completionTimestamp to PodVolumeBackup and PodVolumeRestore status fields (#1609, @prydonius)
|
||||
* bug fix: respect namespace selector when determining which restore item actions to run (#1607, @skriss)
|
||||
* ensure correct backup item actions run with namespace selector (#1601, @prydonius)
|
||||
* allows excluding resources from backups with the `velero.io/exclude-from-backup=true` label (#1588, @prydonius)
|
||||
* ensures backup item action modifications to an item's namespace/name are saved in the file path in the tarball (#1587, @prydonius)
|
||||
* Hides `velero server` and `velero restic server` commands from the list of available commands as these are not intended for use by the velero CLI user. (#1561, @prydonius)
|
||||
* remove dependency on glog, update to klog (#1559, @skriss)
|
||||
* move issue-template-gen from docs/ to hack/ (#1558, @skriss)
|
||||
* fix panic when processing DeleteBackupRequest objects without labels (#1556, @prydonius)
|
||||
* support for multiple AWS profiles (#1548, @pranavgaikwad)
|
||||
* Add CLI command to list (get) all Velero plugins (#1535, @carlisia)
|
||||
* Added author as a tag on blog post. Should fix 404 error when trying to follow link as specified in issue #1522. (#1522, @coonsd)
|
||||
* Allow individual backup storage locations to be read-only (#1517, @skriss)
|
||||
* Stop returning an error when a restic volume is empty since it is a valid scenario. (#1480, @carlisia)
|
||||
* add ability to use wildcard in includes/excludes (#1428, @guilhem)
|
||||
@@ -1 +0,0 @@
|
||||
add `velero migrate-backups` command to migrate legacy Ark backups to Velero format in object storage
|
||||
1
changelogs/unreleased/1428-guilhem
Normal file
1
changelogs/unreleased/1428-guilhem
Normal file
@@ -0,0 +1 @@
|
||||
add ability to use wildcard in includes/excludes
|
||||
1
changelogs/unreleased/1480-carlisia.md
Normal file
1
changelogs/unreleased/1480-carlisia.md
Normal file
@@ -0,0 +1 @@
|
||||
Stop returning an error when a restic volume is empty since it is a valid scenario.
|
||||
1
changelogs/unreleased/1517-skriss
Normal file
1
changelogs/unreleased/1517-skriss
Normal file
@@ -0,0 +1 @@
|
||||
Allow individual backup storage locations to be read-only
|
||||
1
changelogs/unreleased/1522-coonsd
Normal file
1
changelogs/unreleased/1522-coonsd
Normal file
@@ -0,0 +1 @@
|
||||
Added author as a tag on blog post. Should fix 404 error when trying to follow link as specified in issue #1522.
|
||||
1
changelogs/unreleased/1535-carlisia
Normal file
1
changelogs/unreleased/1535-carlisia
Normal file
@@ -0,0 +1 @@
|
||||
Add CLI command to list (get) all Velero plugins
|
||||
1
changelogs/unreleased/1548-pranavgaikwad
Normal file
1
changelogs/unreleased/1548-pranavgaikwad
Normal file
@@ -0,0 +1 @@
|
||||
support for multiple AWS profiles
|
||||
1
changelogs/unreleased/1556-prydonius
Normal file
1
changelogs/unreleased/1556-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
fix panic when processing DeleteBackupRequest objects without labels
|
||||
1
changelogs/unreleased/1558-skriss
Normal file
1
changelogs/unreleased/1558-skriss
Normal file
@@ -0,0 +1 @@
|
||||
move issue-template-gen from docs/ to hack/
|
||||
1
changelogs/unreleased/1559-skriss
Normal file
1
changelogs/unreleased/1559-skriss
Normal file
@@ -0,0 +1 @@
|
||||
remove dependency on glog, update to klog
|
||||
1
changelogs/unreleased/1561-prydonius
Normal file
1
changelogs/unreleased/1561-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
Hides `velero server` and `velero restic server` commands from the list of available commands as these are not intended for use by the velero CLI user.
|
||||
1
changelogs/unreleased/1577-carlisia
Normal file
1
changelogs/unreleased/1577-carlisia
Normal file
@@ -0,0 +1 @@
|
||||
Store restic PodVolumeBackups in obj storage & use that as source of truth like regular backups.
|
||||
1
changelogs/unreleased/1587-prydonius
Normal file
1
changelogs/unreleased/1587-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
ensures backup item action modifications to an item's namespace/name are saved in the file path in the tarball
|
||||
1
changelogs/unreleased/1588-prydonius
Normal file
1
changelogs/unreleased/1588-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
allows excluding resources from backups with the velero.io/exclude-from-backup=true label
|
||||
1
changelogs/unreleased/1601-prydonius
Normal file
1
changelogs/unreleased/1601-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
ensure correct backup item actions run with namespace selector
|
||||
1
changelogs/unreleased/1605-prajyot-parab
Normal file
1
changelogs/unreleased/1605-prajyot-parab
Normal file
@@ -0,0 +1 @@
|
||||
enable support for ppc64le architecture
|
||||
1
changelogs/unreleased/1607-skriss
Normal file
1
changelogs/unreleased/1607-skriss
Normal file
@@ -0,0 +1 @@
|
||||
bug fix: respect namespace selector when determining which restore item actions to run
|
||||
1
changelogs/unreleased/1609-prydonius
Normal file
1
changelogs/unreleased/1609-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
add startTimestamp and completionTimestamp to PodVolumeBackup and PodVolumeRestore status fields
|
||||
1
changelogs/unreleased/1612-skriss
Normal file
1
changelogs/unreleased/1612-skriss
Normal file
@@ -0,0 +1 @@
|
||||
bug fix: only restore additional items returned from restore item actions if they match the restore's namespace/resource selectors
|
||||
1
changelogs/unreleased/1615-nrb
Normal file
1
changelogs/unreleased/1615-nrb
Normal file
@@ -0,0 +1 @@
|
||||
Add restic support for CSI volumes
|
||||
1
changelogs/unreleased/1616-prydonius
Normal file
1
changelogs/unreleased/1616-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
adds validation for pod volumes hostPath mount on restic server startup
|
||||
1
changelogs/unreleased/1621-skriss
Normal file
1
changelogs/unreleased/1621-skriss
Normal file
@@ -0,0 +1 @@
|
||||
add plugin for updating PV & PVC storage classes on restore based on a config map
|
||||
1
changelogs/unreleased/1626-tlkamp
Normal file
1
changelogs/unreleased/1626-tlkamp
Normal file
@@ -0,0 +1 @@
|
||||
enhancement: allow users to specify additional Velero/Restic pod annotations on the command line with the pod-annotations flag.
|
||||
1
changelogs/unreleased/1630-jwmatthews
Normal file
1
changelogs/unreleased/1630-jwmatthews
Normal file
@@ -0,0 +1 @@
|
||||
bug fix: Fixed namespace usage with cli command 'version'
|
||||
1
changelogs/unreleased/1654-carthewd
Normal file
1
changelogs/unreleased/1654-carthewd
Normal file
@@ -0,0 +1 @@
|
||||
enhancement: allow option to choose JSON log output
|
||||
1
changelogs/unreleased/1656-nrb
Normal file
1
changelogs/unreleased/1656-nrb
Normal file
@@ -0,0 +1 @@
|
||||
Respect the --kubecontext and --kubeconfig arugments for `velero install`.
|
||||
1
changelogs/unreleased/1673-nrb
Normal file
1
changelogs/unreleased/1673-nrb
Normal file
@@ -0,0 +1 @@
|
||||
Update Velero Deployment to use apps/v1 API group. `velero install` and `velero plugin add/remove` commands will now require Kubernetes 1.9+
|
||||
1
changelogs/unreleased/1677-nrb
Normal file
1
changelogs/unreleased/1677-nrb
Normal file
@@ -0,0 +1 @@
|
||||
Add low cpu/memory limits to the restic init container. This allows for restoration into namespaces with quotas defined.
|
||||
1
changelogs/unreleased/1678-prydonius
Normal file
1
changelogs/unreleased/1678-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
Adds configurable CPU/memory requests and limits to the Velero Deployment generated by velero install.
|
||||
1
changelogs/unreleased/1694-skriss
Normal file
1
changelogs/unreleased/1694-skriss
Normal file
@@ -0,0 +1 @@
|
||||
error if backup storage location's Bucket field also contains a prefix, and gracefully handle leading/trailing slashes on Bucket and Prefix fields.
|
||||
1
changelogs/unreleased/1699-nrb
Normal file
1
changelogs/unreleased/1699-nrb
Normal file
@@ -0,0 +1 @@
|
||||
Make --secret-file argument on `velero install` optional, add --no-secret flag for explicit confirmation
|
||||
1
changelogs/unreleased/1708-skriss
Normal file
1
changelogs/unreleased/1708-skriss
Normal file
@@ -0,0 +1 @@
|
||||
remove any stale locks from restic repositories every 5m
|
||||
1
changelogs/unreleased/1710-prydonius
Normal file
1
changelogs/unreleased/1710-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
Adds configurable CPU/memory requests and limits to the restic DaemonSet generated by velero install.
|
||||
1
changelogs/unreleased/1713-skriss
Normal file
1
changelogs/unreleased/1713-skriss
Normal file
@@ -0,0 +1 @@
|
||||
properly restore PVs backed up with restic and a reclaim policy of "Retain"
|
||||
1
changelogs/unreleased/1723-carlisia
Normal file
1
changelogs/unreleased/1723-carlisia
Normal file
@@ -0,0 +1 @@
|
||||
Restore restic volumes from PodVolumeBackups CRs
|
||||
1
changelogs/unreleased/1729-prydonius
Normal file
1
changelogs/unreleased/1729-prydonius
Normal file
@@ -0,0 +1 @@
|
||||
adds the ability to define custom tags to be added to snapshots by specifying custom labels on the Backup CR with the velero backup create --labels flag
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2018 the Heptio Ark contributors.
|
||||
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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2017 the Heptio Ark contributors.
|
||||
Copyright 2017, 2019 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.
|
||||
@@ -20,14 +20,14 @@ import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/golang/glog"
|
||||
"k8s.io/klog"
|
||||
|
||||
"github.com/heptio/velero/pkg/cmd"
|
||||
"github.com/heptio/velero/pkg/cmd/velero"
|
||||
)
|
||||
|
||||
func main() {
|
||||
defer glog.Flush()
|
||||
defer klog.Flush()
|
||||
|
||||
baseName := filepath.Base(os.Args[0])
|
||||
|
||||
|
||||
48
design/_template.md
Normal file
48
design/_template.md
Normal file
@@ -0,0 +1,48 @@
|
||||
# Design proposal template (replace with your proposal's title)
|
||||
|
||||
Status: {Draft,Accepted,Declined}
|
||||
|
||||
One to two sentences that describes the goal of this proposal.
|
||||
The reader should be able to tell by the title, and the opening paragraph, if this document is relevant to them.
|
||||
|
||||
_Note_: The preferred style for design documents is one sentence per line.
|
||||
*Do not wrap lines*.
|
||||
This aids in review of the document as changes to a line are not obscured by the reflowing those changes caused and has a side effect of avoiding debate about one or two space after a period.
|
||||
|
||||
## Goals
|
||||
|
||||
- A short list of things which will be accomplished by implementing this proposal.
|
||||
- Two things is ok.
|
||||
- Three is pushing it.
|
||||
- More than three goals suggests that the proposal's scope is too large.
|
||||
|
||||
## Non Goals
|
||||
|
||||
- A short list of items which are:
|
||||
- a. out of scope
|
||||
- b. follow on items which are deliberately excluded from this proposal.
|
||||
|
||||
## Background
|
||||
|
||||
One to two paragraphs of exposition to set the context for this proposal.
|
||||
|
||||
## High-Level Design
|
||||
|
||||
One to two paragraphs that describe the high level changes that will be made to implement this proposal.
|
||||
|
||||
## Detailed Design
|
||||
|
||||
A detailed design describing how the changes to the product should be made.
|
||||
|
||||
The names of types, fields, interfaces, and methods should be agreed on here, not debated in code review.
|
||||
The same applies to changes in CRDs, YAML examples, and so on.
|
||||
|
||||
Ideally the changes should be made in sequence so that the work required to implement this design can be done incrementally, possibly in parallel.
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
If there are alternative high level or detailed designs that were not pursued they should be called out here with a brief explanation of why they were not pursued.
|
||||
|
||||
## Security Considerations
|
||||
|
||||
If this proposal has an impact to the security of the product, its users, or data stored or transmitted via the product, they must be addressed here.
|
||||
96
design/backup-resource-list.md
Normal file
96
design/backup-resource-list.md
Normal file
@@ -0,0 +1,96 @@
|
||||
# Expose list of backed up resources in backup details
|
||||
|
||||
Status: Accepted
|
||||
|
||||
To increase the visibility of what a backup might contain, this document proposes storing metadata about backed up resources in object storage and adding a new section to the detailed backup description output to list them.
|
||||
|
||||
## Goals
|
||||
|
||||
- Include a list of backed up resources as metadata in the bucket
|
||||
- Enable users to get a view of what resources are included in a backup using the Velero CLI
|
||||
|
||||
## Non Goals
|
||||
|
||||
- Expose the full manifests of the backed up resources
|
||||
|
||||
## Background
|
||||
|
||||
As reported in [#396](https://github.com/heptio/velero/issues/396), the information reported in a `velero backup describe <name> --details` command is fairly limited, and does not easily describe what resources a backup contains.
|
||||
In order to see what a backup might contain, a user would have to download the backup tarball and extract it.
|
||||
This makes it difficult to keep track of different backups in a cluster.
|
||||
|
||||
## High-Level Design
|
||||
|
||||
After performing a backup, a new file will be created that contains the list of the resources that have been included in the backup.
|
||||
This file will be persisted in object storage alongside the backup contents and existing metadata.
|
||||
|
||||
A section will be added to the output of `velero backup describe <name> --details` command to view this metadata.
|
||||
|
||||
## Detailed Design
|
||||
|
||||
### Metadata file
|
||||
|
||||
This metadata will be in JSON (or YAML) format so that it can be easily inspected from the bucket outside of Velero tooling, and will contain the API resource and group, namespaces and names of the resources:
|
||||
|
||||
```
|
||||
apps/v1/Deployment:
|
||||
- default/database
|
||||
- default/wordpress
|
||||
v1/Service:
|
||||
- default/database
|
||||
- default/wordpress
|
||||
v1/Secret:
|
||||
- default/database-root-password
|
||||
- default/database-user-password
|
||||
v1/ConfigMap:
|
||||
- default/database
|
||||
v1/PersistentVolume:
|
||||
- my-pv
|
||||
```
|
||||
|
||||
The filename for this metadata will be `<backup name>-resource-list.json.gz`.
|
||||
The top-level key is the string form of the `schema.GroupResource` type that we currently keep track of in the backup controller code path.
|
||||
|
||||
### Changes in Backup controller
|
||||
|
||||
The Backupper currently initialises a map to track the `backedUpItems` (https://github.com/heptio/velero/blob/1594bdc8d0132f548e18ffcc1db8c4cd2b042726/pkg/backup/backup.go#L269), this is passed down through GroupBackupper, ResourceBackupper and ItemBackupper where ItemBackupper records each backed up item.
|
||||
This property will be moved to the [Backup request struct](https://github.com/heptio/velero/blob/16910a6215cbd8f0bde385dba9879629ebcbcc28/pkg/backup/request.go#L11), allowing the BackupController to access it after a successful backup.
|
||||
|
||||
`backedUpItems` currently uses the `schema.GroupResource` as a key for the resource.
|
||||
In order to record the API group, version and kind for the resource, this key will be constructed from the object's `schema.GroupVersionKind` in the format `{group}/{version}/{kind}` (e.g. `apps/v1/Deployment`).
|
||||
|
||||
The `backedUpItems` map is kept as a flat structure internally for quick lookup.
|
||||
When the backup is ready to upload, `backedUpItems` will be converted to a nested structure representing the metadata file above, grouped by `schema.GroupVersionKind`.
|
||||
After converting to the right format, it can be passed to the `persistBackup` function to persist the file in object storage.
|
||||
|
||||
### Changes to DownloadRequest CRD and processing
|
||||
|
||||
A new `DownloadTargetKind` "BackupResourceList" will be added to the DownloadRequest CR.
|
||||
|
||||
The `GetDownloadURL` function in the `persistence` package will be updated to handle this new DownloadTargetKind to enable the Velero client to fetch the metadata from the bucket.
|
||||
|
||||
### Changes to `velero backup describe <name> --details`
|
||||
|
||||
This command will need to be updated to fetch the metadata from the bucket using the `Stream` method used in other commands.
|
||||
The file will be read in memory and displayed in the output of the command.
|
||||
Depending on the format the metadata is stored in, it may need processing to print in a more human-readable format.
|
||||
If we choose to store the metadata in YAML, it can likely be directly printed out.
|
||||
|
||||
If the metadata file does not exist, this is an older backup and we cannot display the list of resources that were backed up.
|
||||
|
||||
## Open Questions
|
||||
|
||||
## Alternatives Considered
|
||||
|
||||
### Fetch backup contents archive and walkthrough to list contents
|
||||
|
||||
Instead of recording new metadata about what resources have been backed up, we could simply download the backup contents archive and walkthrough it to list the contents everytime `velero backup describe <name> --details` is run.
|
||||
|
||||
The advantage of this approach is that we don't need to change any backup procedures as we already have this content, and we will also be able to list resources for older backups.
|
||||
Additionally, if we wanted to expose more information about the backed up resources, we can do so without having to update what we store in the metadata.
|
||||
|
||||
The disadvantages are:
|
||||
- downloading the whole backup archive will be larger than just downloading a smaller file with metadata
|
||||
- reduces the metadata available in the bucket that users might want to inspect outside of Velero tooling (though this is not an explicit requirement)
|
||||
|
||||
## Security Considerations
|
||||
@@ -1,13 +1,11 @@
|
||||
# Examples
|
||||
|
||||
This directory contains sample YAML config files for running Velero on each core provider. Starting with v0.10, these files are packaged into [the Velero release tarballs][2], and we highly recommend that you use the packaged versions of these files to ensure compatibility with the released code.
|
||||
This directory contains sample YAML config files that can be used for exploring Velero.
|
||||
|
||||
* `common/`: Contains manifests to set up Velero. Can be used across cloud provider platforms. (Note that Azure requires its own deployment file due to its unique way of loading credentials).
|
||||
* `minio/`: Used in the [Quickstart][0] to set up [Minio][1], a local S3-compatible object storage service. It provides a convenient way to test Velero without tying you to a specific cloud provider.
|
||||
|
||||
* `minio/`: Used in the [Quickstart][1] to set up [Minio][0], a local S3-compatible object storage service. It provides a convenient way to test Velero without tying you to a specific cloud provider.
|
||||
* `nginx-app/`: A sample nginx app that can be used to test backups and restores.
|
||||
|
||||
* `aws/`, `azure/`, `gcp/`, `ibm/`: Contains manifests specific to the given cloud provider's setup.
|
||||
|
||||
[0]: https://github.com/minio/minio
|
||||
[1]: /README.md#quickstart
|
||||
[2]: https://github.com/heptio/velero/releases
|
||||
[0]: /docs/get-started.md
|
||||
[1]: https://github.com/minio/minio
|
||||
|
||||
@@ -1,26 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: <YOUR_BUCKET>
|
||||
config:
|
||||
region: <YOUR_REGION>
|
||||
@@ -1,50 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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:
|
||||
iam.amazonaws.com/role: arn:aws:iam::<AWS_ACCOUNT_ID>:role/<VELERO_ROLE_NAME>
|
||||
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: plugins
|
||||
mountPath: /plugins
|
||||
volumes:
|
||||
- name: plugins
|
||||
emptyDir: {}
|
||||
@@ -1,64 +0,0 @@
|
||||
# Copyright 2017 the Heptio Ark 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
|
||||
command:
|
||||
- /velero
|
||||
args:
|
||||
- server
|
||||
## uncomment following line and specify values if needed for multiple provider snapshot locations
|
||||
# - --default-volume-snapshot-locations=<provider-1:location-1,provider-2:location-2,...>
|
||||
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
|
||||
#- name: AWS_CLUSTER_NAME
|
||||
# value: <YOUR_CLUSTER_NAME>
|
||||
volumes:
|
||||
- name: cloud-credentials
|
||||
secret:
|
||||
secretName: cloud-credentials
|
||||
- name: plugins
|
||||
emptyDir: {}
|
||||
- name: scratch
|
||||
emptyDir: {}
|
||||
@@ -1,69 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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
|
||||
@@ -1,63 +0,0 @@
|
||||
# Copyright 2017 the Heptio Ark 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
|
||||
## uncomment following line and specify values if needed for multiple provider snapshot locations
|
||||
# - --default-volume-snapshot-locations=<provider-1:location-1,provider-2:location-2,...>
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cloud-credentials
|
||||
env:
|
||||
- name: VELERO_SCRATCH_DIR
|
||||
value: /scratch
|
||||
volumeMounts:
|
||||
- name: plugins
|
||||
mountPath: /plugins
|
||||
- name: scratch
|
||||
mountPath: /scratch
|
||||
volumes:
|
||||
- name: plugins
|
||||
emptyDir: {}
|
||||
- name: scratch
|
||||
emptyDir: {}
|
||||
nodeSelector:
|
||||
beta.kubernetes.io/os: linux
|
||||
@@ -1,27 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: azure
|
||||
objectStorage:
|
||||
bucket: <YOUR_BLOB_CONTAINER>
|
||||
config:
|
||||
resourceGroup: <YOUR_STORAGE_RESOURCE_GROUP>
|
||||
storageAccount: <YOUR_STORAGE_ACCOUNT>
|
||||
@@ -1,65 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: 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: host-pods
|
||||
mountPath: /host_pods
|
||||
mountPropagation: HostToContainer
|
||||
- name: scratch
|
||||
mountPath: /scratch
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: cloud-credentials
|
||||
env:
|
||||
- name: NODE_NAME
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: spec.nodeName
|
||||
- name: VELERO_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
fieldPath: metadata.namespace
|
||||
- name: VELERO_SCRATCH_DIR
|
||||
value: /scratch
|
||||
@@ -1,208 +0,0 @@
|
||||
# Copyright 2017 the Heptio Ark 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: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: backups.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: backups
|
||||
kind: Backup
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: schedules.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: schedules
|
||||
kind: Schedule
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: restores.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: restores
|
||||
kind: Restore
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: downloadrequests.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: downloadrequests
|
||||
kind: DownloadRequest
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: deletebackuprequests.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: deletebackuprequests
|
||||
kind: DeleteBackupRequest
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: podvolumebackups.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: podvolumebackups
|
||||
kind: PodVolumeBackup
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: podvolumerestores.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: podvolumerestores
|
||||
kind: PodVolumeRestore
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: resticrepositories.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: resticrepositories
|
||||
kind: ResticRepository
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: backupstoragelocations.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: backupstoragelocations
|
||||
kind: BackupStorageLocation
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: volumesnapshotlocations.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: volumesnapshotlocations
|
||||
kind: VolumeSnapshotLocation
|
||||
|
||||
---
|
||||
apiVersion: apiextensions.k8s.io/v1beta1
|
||||
kind: CustomResourceDefinition
|
||||
metadata:
|
||||
name: serverstatusrequests.velero.io
|
||||
labels:
|
||||
component: velero
|
||||
spec:
|
||||
group: velero.io
|
||||
version: v1
|
||||
scope: Namespaced
|
||||
names:
|
||||
plural: serverstatusrequests
|
||||
kind: ServerStatusRequest
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: velero
|
||||
|
||||
---
|
||||
apiVersion: v1
|
||||
kind: ServiceAccount
|
||||
metadata:
|
||||
name: velero
|
||||
namespace: velero
|
||||
labels:
|
||||
component: velero
|
||||
|
||||
---
|
||||
apiVersion: rbac.authorization.k8s.io/v1beta1
|
||||
kind: ClusterRoleBinding
|
||||
metadata:
|
||||
name: velero
|
||||
labels:
|
||||
component: velero
|
||||
subjects:
|
||||
- kind: ServiceAccount
|
||||
namespace: velero
|
||||
name: velero
|
||||
roleRef:
|
||||
kind: ClusterRole
|
||||
name: cluster-admin
|
||||
apiGroup: rbac.authorization.k8s.io
|
||||
@@ -1,10 +0,0 @@
|
||||
# File Structure
|
||||
|
||||
## 00-prereqs.yaml
|
||||
|
||||
This file contains the prerequisites necessary to run the Velero server:
|
||||
|
||||
- `velero` namespace
|
||||
- `velero` service account
|
||||
- RBAC rules to grant permissions to the `velero` service account
|
||||
- CRDs for the Velero-specific resources (Backup, Schedule, Restore, etc.)
|
||||
@@ -1,24 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: gcp
|
||||
objectStorage:
|
||||
bucket: <YOUR_BUCKET>
|
||||
@@ -1,65 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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
|
||||
## uncomment following line and specify values if needed for multiple provider snapshot locations
|
||||
# - --default-volume-snapshot-locations=<provider-1:location-1,provider-2:location-2,...>
|
||||
volumeMounts:
|
||||
- name: cloud-credentials
|
||||
mountPath: /credentials
|
||||
- name: plugins
|
||||
mountPath: /plugins
|
||||
- name: scratch
|
||||
mountPath: /scratch
|
||||
env:
|
||||
- name: GOOGLE_APPLICATION_CREDENTIALS
|
||||
value: /credentials/cloud
|
||||
- name: VELERO_SCRATCH_DIR
|
||||
value: /scratch
|
||||
volumes:
|
||||
- name: cloud-credentials
|
||||
secret:
|
||||
secretName: cloud-credentials
|
||||
- name: plugins
|
||||
emptyDir: {}
|
||||
- name: scratch
|
||||
emptyDir: {}
|
||||
@@ -1,69 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: GOOGLE_APPLICATION_CREDENTIALS
|
||||
value: /credentials/cloud
|
||||
- name: VELERO_SCRATCH_DIR
|
||||
value: /scratch
|
||||
@@ -1,28 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: <YOUR_BUCKET>
|
||||
config:
|
||||
s3ForcePathStyle: "true"
|
||||
s3Url: <YOUR_URL_ACCESS_POINT>
|
||||
region: <YOUR_REGION>
|
||||
@@ -1,63 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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: {}
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -13,7 +13,13 @@
|
||||
# limitations under the License.
|
||||
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: v1
|
||||
kind: Namespace
|
||||
metadata:
|
||||
name: velero
|
||||
|
||||
---
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
namespace: velero
|
||||
@@ -23,6 +29,9 @@ metadata:
|
||||
spec:
|
||||
strategy:
|
||||
type: Recreate
|
||||
selector:
|
||||
matchLabels:
|
||||
component: minio
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
@@ -74,20 +83,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
|
||||
|
||||
@@ -1,33 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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
|
||||
|
||||
|
||||
@@ -1,63 +0,0 @@
|
||||
# Copyright 2017 the Heptio Ark 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: {}
|
||||
@@ -1,69 +0,0 @@
|
||||
# Copyright 2018 the Heptio Ark 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
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -21,13 +21,16 @@ metadata:
|
||||
app: nginx
|
||||
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
namespace: nginx-example
|
||||
spec:
|
||||
replicas: 2
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -29,7 +29,7 @@ metadata:
|
||||
labels:
|
||||
app: nginx
|
||||
spec:
|
||||
storageClassName: <YOUR_STORAGE_CLASS_NAME>
|
||||
# storageClassName: <YOUR_STORAGE_CLASS_NAME>
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
resources:
|
||||
@@ -37,13 +37,16 @@ spec:
|
||||
storage: 50Mi
|
||||
|
||||
---
|
||||
apiVersion: apps/v1beta1
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
name: nginx-deployment
|
||||
namespace: nginx-example
|
||||
spec:
|
||||
replicas: 1
|
||||
selector:
|
||||
matchLabels:
|
||||
app: nginx
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright the Heptio Ark contributors.
|
||||
Copyright 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.
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -12,14 +12,13 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
FROM golang:1.11-alpine3.8
|
||||
FROM golang:1.12
|
||||
|
||||
RUN apk add --update --no-cache git bash && \
|
||||
mkdir -p /go/src/k8s.io && \
|
||||
RUN mkdir -p /go/src/k8s.io && \
|
||||
cd /go/src/k8s.io && \
|
||||
git config --global advice.detachedHead false && \
|
||||
git clone -b kubernetes-1.11.0 https://github.com/kubernetes/code-generator && \
|
||||
git clone -b kubernetes-1.11.0 https://github.com/kubernetes/apimachinery && \
|
||||
git clone -b kubernetes-1.14.0 https://github.com/kubernetes/code-generator && \
|
||||
git clone -b kubernetes-1.14.0 https://github.com/kubernetes/apimachinery && \
|
||||
go get golang.org/x/tools/cmd/goimports && \
|
||||
cd /go/src/golang.org/x/tools && \
|
||||
git checkout 40a48ad93fbe707101afb2099b738471f70594ec && \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
17
hack/ci-check.sh
Executable file
17
hack/ci-check.sh
Executable file
@@ -0,0 +1,17 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
# If we're doing push build, as opposed to a PR, always run make ci
|
||||
if [ "$TRAVIS_PULL_REQUEST" == "false" ]; then
|
||||
make ci
|
||||
# Exit script early, returning make ci's error
|
||||
exit $?
|
||||
fi
|
||||
|
||||
# Only run `make ci` if files outside of the site directory changed in the branch
|
||||
# In a PR build, $TRAVIS_BRANCH is the destination branch.
|
||||
if [[ $(git diff --name-only $TRAVIS_BRANCH | grep --invert-match site/) ]]; then
|
||||
make ci
|
||||
else
|
||||
echo "Skipping make ci since nothing outside of site directory changed."
|
||||
exit 0
|
||||
fi
|
||||
108
hack/gen-docs.sh
Executable file
108
hack/gen-docs.sh
Executable file
@@ -0,0 +1,108 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2019 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.
|
||||
|
||||
# gen-docs.sh is used for the "make gen-docs" target. See additional
|
||||
# documentation in the Makefile.
|
||||
|
||||
set -o errexit
|
||||
set -o nounset
|
||||
set -o pipefail
|
||||
|
||||
# don't run if there's already a directory for the target docs version
|
||||
if [[ -d site/docs/$NEW_DOCS_VERSION ]]; then
|
||||
echo "ERROR: site/docs/$NEW_DOCS_VERSION already exists"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# get the alphabetically last item in site/docs to use as PREVIOUS_DOCS_VERSION
|
||||
# if not explicitly specified by the user
|
||||
if [[ -z "${PREVIOUS_DOCS_VERSION:-}" ]]; then
|
||||
echo "PREVIOUS_DOCS_VERSION was not specified, getting the latest version"
|
||||
PREVIOUS_DOCS_VERSION=$(ls -1 site/docs/ | tail -n 1)
|
||||
fi
|
||||
|
||||
# make a copy of the previous versioned docs dir
|
||||
echo "Creating copy of docs directory site/docs/$PREVIOUS_DOCS_VERSION in site/docs/$NEW_DOCS_VERSION"
|
||||
cp -r site/docs/${PREVIOUS_DOCS_VERSION}/ site/docs/${NEW_DOCS_VERSION}/
|
||||
|
||||
# 'git add' the previous version's docs as-is so we get a useful diff when we copy the master docs in
|
||||
echo "Running 'git add' for previous version's doc contents to use as a base for diff"
|
||||
git add site/docs/${NEW_DOCS_VERSION}
|
||||
|
||||
# now copy the contents of site/docs/master into the same directory so we can get a nice
|
||||
# git diff of what changed since previous version
|
||||
echo "Copying site/docs/master/ to site/docs/${NEW_DOCS_VERSION}/"
|
||||
rm -rf site/docs/${NEW_DOCS_VERSION}/ && cp -r site/docs/master/ site/docs/${NEW_DOCS_VERSION}/
|
||||
|
||||
# make a copy of the previous versioned ToC
|
||||
NEW_DOCS_TOC="$(echo ${NEW_DOCS_VERSION} | tr . -)-toc"
|
||||
PREVIOUS_DOCS_TOC="$(echo ${PREVIOUS_DOCS_VERSION} | tr . -)-toc"
|
||||
|
||||
echo "Creating copy of site/_data/$PREVIOUS_DOCS_TOC.yml at site/_data/$NEW_DOCS_TOC.yml"
|
||||
cp site/_data/$PREVIOUS_DOCS_TOC.yml site/_data/$NEW_DOCS_TOC.yml
|
||||
|
||||
# 'git add' the previous version's ToC content as-is so we get a useful diff when we copy the master ToC in
|
||||
echo "Running 'git add' for previous version's ToC to use as a base for diff"
|
||||
git add site/_data/$NEW_DOCS_TOC.yml
|
||||
|
||||
# now copy the master ToC so we can get a nice git diff of what changed since previous version
|
||||
echo "Copying site/_data/master-toc.yml to site/_data/$NEW_DOCS_TOC.yml"
|
||||
rm site/_data/$NEW_DOCS_TOC.yml && cp site/_data/master-toc.yml site/_data/$NEW_DOCS_TOC.yml
|
||||
|
||||
# replace known version-specific links -- the sed syntax is slightly different in OS X and Linux,
|
||||
# so check which OS we're running on.
|
||||
if [[ $(uname) == "Darwin" ]]; then
|
||||
echo "[OS X] updating version-specific links"
|
||||
find site/docs/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i '' "s|https://velero.io/docs/master|https://velero.io/docs/$NEW_DOCS_VERSION|g"
|
||||
find site/docs/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i '' "s|https://github.com/heptio/velero/blob/master|https://github.com/heptio/velero/blob/$NEW_DOCS_VERSION|g"
|
||||
|
||||
echo "[OS X] Updating latest version in _config.yml"
|
||||
sed -i '' "s/latest: ${PREVIOUS_DOCS_VERSION}/latest: ${NEW_DOCS_VERSION}/" site/_config.yml
|
||||
|
||||
# newlines and lack of indentation are requirements for this sed syntax
|
||||
# which is doing an append
|
||||
echo "[OS X] Adding latest version to versions list in _config.yml"
|
||||
sed -i '' "/- master/a\\
|
||||
- ${NEW_DOCS_VERSION}
|
||||
" site/_config.yml
|
||||
|
||||
echo "[OS X] Adding ToC mapping entry"
|
||||
sed -i '' "/master: master-toc/a\\
|
||||
${NEW_DOCS_VERSION}: ${NEW_DOCS_TOC}
|
||||
" site/_data/toc-mapping.yml
|
||||
|
||||
else
|
||||
echo "[Linux] updating version-specific links"
|
||||
find site/docs/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i'' "s|https://velero.io/docs/master|https://velero.io/docs/$NEW_DOCS_VERSION|g"
|
||||
find site/docs/${NEW_DOCS_VERSION} -type f -name "*.md" | xargs sed -i'' "s|https://github.com/heptio/velero/blob/master|https://github.com/heptio/velero/blob/$NEW_DOCS_VERSION|g"
|
||||
|
||||
echo "[Linux] Updating latest version in _config.yml"
|
||||
sed -i'' "s/latest: ${PREVIOUS_DOCS_VERSION}/latest: ${NEW_DOCS_VERSION}/" site/_config.yml
|
||||
|
||||
echo "[Linux] Adding latest version to versions list in _config.yml"
|
||||
sed -i'' "/- master/a - ${NEW_DOCS_VERSION}" site/_config.yml
|
||||
|
||||
echo "[Linux] Adding ToC mapping entry"
|
||||
sed -i'' "/master: master-toc/a ${NEW_DOCS_VERSION}: ${NEW_DOCS_TOC}" site/_data/toc-mapping.yml
|
||||
fi
|
||||
|
||||
echo "Success! site/docs/$NEW_DOCS_VERSION has been created."
|
||||
echo ""
|
||||
echo "The next steps are:"
|
||||
echo " 1. Consult site/README-JEKYLL.md for further manual steps required to finalize the new versioned docs generation."
|
||||
echo " 2. Run a 'git diff' to review all changes made to the docs since the previous version."
|
||||
echo " 3. Make any manual changes/corrections necessary."
|
||||
echo " 4. Run 'git add' to stage all unstaged changes, then 'git commit'."
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
Copyright 2018 the Heptio Ark contributors.
|
||||
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.
|
||||
@@ -1,37 +0,0 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Copyright 2018 the Heptio Ark 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.
|
||||
|
||||
set -o nounset
|
||||
set -o errexit
|
||||
set -o pipefail
|
||||
|
||||
GIT_TAG=$(git describe --tags --always)
|
||||
|
||||
# this script copies all of the files under examples/ into a new directory,
|
||||
# config/ (which is gitignored so it doesn't result in the git state being
|
||||
# dirty, which would prevent goreleaser from running), and then updates all
|
||||
# of the image tags in those files to use $GIT_TAG.
|
||||
|
||||
rm -rf config/ && cp -r examples/ config/
|
||||
|
||||
# the "-i'.bak'" flag to sed is necessary, with no space between the flag
|
||||
# and the value, for this to be compatible across BSD/OSX sed and GNU sed.
|
||||
# remove the ".bak" files afterwards (they're copies of the originals).
|
||||
find config/ -type f -name "*.yaml" | xargs sed -i'.bak' "s|gcr.io/heptio-images/velero:latest|gcr.io/heptio-images/velero:$GIT_TAG|g"
|
||||
find config/ -type f -name "*.bak" | xargs rm
|
||||
|
||||
find config/ -type f -name "*.yaml" | xargs sed -i'.bak' "s|gcr.io/heptio-images/fsfreeze-pause:latest|gcr.io/heptio-images/fsfreeze-pause:$GIT_TAG|g"
|
||||
find config/ -type f -name "*.bak" | xargs rm
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -33,7 +33,7 @@ if ! command -v goimports > /dev/null; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
files="$(find . -type f -name '*.go' -not -path './vendor/*' -not -path './pkg/generated/*' -not -name 'zz_generated*')"
|
||||
files="$(find . -type f -name '*.go' -not -path './vendor/*' -not -path './site/*' -not -path './pkg/generated/*' -not -name 'zz_generated*')"
|
||||
echo "${ACTION} gofmt"
|
||||
for file in ${files}; do
|
||||
output=$(gofmt "${MODE}" -s "${file}")
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
@@ -34,6 +34,6 @@ cd ${GOPATH}/src/k8s.io/code-generator
|
||||
all \
|
||||
github.com/heptio/velero/pkg/generated \
|
||||
github.com/heptio/velero/pkg/apis \
|
||||
"ark:v1 velero:v1" \
|
||||
"velero:v1" \
|
||||
--go-header-file ${GOPATH}/src/github.com/heptio/velero/hack/boilerplate.go.txt \
|
||||
$@
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# Copyright 2018, 2019 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.
|
||||
@@ -20,7 +20,7 @@ BIN=${VELERO_ROOT}/_output/bin
|
||||
mkdir -p ${BIN}
|
||||
|
||||
echo "Updating generated Github issue template"
|
||||
go build -o ${BIN}/issue-tmpl-gen ./docs/issue-template-gen/main.go
|
||||
go build -o ${BIN}/issue-tmpl-gen ./hack/issue-template-gen/main.go
|
||||
|
||||
if [[ $# -gt 1 ]]; then
|
||||
echo "usage: ${BASH_SOURCE} [OUTPUT_FILE]"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2017 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#!/bin/bash -e
|
||||
#
|
||||
# Copyright 2018 the Heptio Ark contributors.
|
||||
# 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.
|
||||
|
||||
4
netlify.toml
Normal file
4
netlify.toml
Normal file
@@ -0,0 +1,4 @@
|
||||
[build]
|
||||
base = "site/"
|
||||
command = "jekyll build"
|
||||
publish = "site/_site"
|
||||
@@ -1,293 +0,0 @@
|
||||
/*
|
||||
Copyright 2017 the Heptio Ark 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.
|
||||
*/
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
)
|
||||
|
||||
// BackupSpec defines the specification for an Ark backup.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupSpec struct {
|
||||
// IncludedNamespaces is a slice of namespace names to include objects
|
||||
// from. If empty, all namespaces are included.
|
||||
IncludedNamespaces []string `json:"includedNamespaces"`
|
||||
|
||||
// ExcludedNamespaces contains a list of namespaces that are not
|
||||
// included in the backup.
|
||||
ExcludedNamespaces []string `json:"excludedNamespaces"`
|
||||
|
||||
// IncludedResources is a slice of resource names to include
|
||||
// in the backup. If empty, all resources are included.
|
||||
IncludedResources []string `json:"includedResources"`
|
||||
|
||||
// ExcludedResources is a slice of resource names that are not
|
||||
// included in the backup.
|
||||
ExcludedResources []string `json:"excludedResources"`
|
||||
|
||||
// LabelSelector is a metav1.LabelSelector to filter with
|
||||
// when adding individual objects to the backup. If empty
|
||||
// or nil, all objects are included. Optional.
|
||||
LabelSelector *metav1.LabelSelector `json:"labelSelector"`
|
||||
|
||||
// SnapshotVolumes specifies whether to take cloud snapshots
|
||||
// of any PV's referenced in the set of objects included
|
||||
// in the Backup.
|
||||
SnapshotVolumes *bool `json:"snapshotVolumes,omitempty"`
|
||||
|
||||
// TTL is a time.Duration-parseable string describing how long
|
||||
// the Backup should be retained for.
|
||||
TTL metav1.Duration `json:"ttl"`
|
||||
|
||||
// IncludeClusterResources specifies whether cluster-scoped resources
|
||||
// should be included for consideration in the backup.
|
||||
IncludeClusterResources *bool `json:"includeClusterResources"`
|
||||
|
||||
// Hooks represent custom behaviors that should be executed at different phases of the backup.
|
||||
Hooks BackupHooks `json:"hooks"`
|
||||
|
||||
// StorageLocation is a string containing the name of a BackupStorageLocation where the backup should be stored.
|
||||
StorageLocation string `json:"storageLocation"`
|
||||
|
||||
// VolumeSnapshotLocations is a list containing names of VolumeSnapshotLocations associated with this backup.
|
||||
VolumeSnapshotLocations []string `json:"volumeSnapshotLocations"`
|
||||
}
|
||||
|
||||
// BackupHooks contains custom behaviors that should be executed at different phases of the backup.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupHooks struct {
|
||||
// Resources are hooks that should be executed when backing up individual instances of a resource.
|
||||
Resources []BackupResourceHookSpec `json:"resources"`
|
||||
}
|
||||
|
||||
// BackupResourceHookSpec defines one or more BackupResourceHooks that should be executed based on
|
||||
// the rules defined for namespaces, resources, and label selector.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupResourceHookSpec struct {
|
||||
// Name is the name of this hook.
|
||||
Name string `json:"name"`
|
||||
// IncludedNamespaces specifies the namespaces to which this hook spec applies. If empty, it applies
|
||||
// to all namespaces.
|
||||
IncludedNamespaces []string `json:"includedNamespaces"`
|
||||
// ExcludedNamespaces specifies the namespaces to which this hook spec does not apply.
|
||||
ExcludedNamespaces []string `json:"excludedNamespaces"`
|
||||
// IncludedResources specifies the resources to which this hook spec applies. If empty, it applies
|
||||
// to all resources.
|
||||
IncludedResources []string `json:"includedResources"`
|
||||
// ExcludedResources specifies the resources to which this hook spec does not apply.
|
||||
ExcludedResources []string `json:"excludedResources"`
|
||||
// LabelSelector, if specified, filters the resources to which this hook spec applies.
|
||||
LabelSelector *metav1.LabelSelector `json:"labelSelector,omitempty"`
|
||||
// Hooks is a list of BackupResourceHooks to execute. DEPRECATED. Replaced by PreHooks.
|
||||
Hooks []BackupResourceHook `json:"hooks"`
|
||||
// PreHooks is a list of BackupResourceHooks to execute prior to storing the item in the backup.
|
||||
// These are executed before any "additional items" from item actions are processed.
|
||||
PreHooks []BackupResourceHook `json:"pre,omitempty"`
|
||||
// PostHooks is a list of BackupResourceHooks to execute after storing the item in the backup.
|
||||
// These are executed after all "additional items" from item actions are processed.
|
||||
PostHooks []BackupResourceHook `json:"post,omitempty"`
|
||||
}
|
||||
|
||||
// BackupResourceHook defines a hook for a resource.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupResourceHook struct {
|
||||
// Exec defines an exec hook.
|
||||
Exec *ExecHook `json:"exec"`
|
||||
}
|
||||
|
||||
// ExecHook is a hook that uses the pod exec API to execute a command in a container in a pod.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type ExecHook struct {
|
||||
// Container is the container in the pod where the command should be executed. If not specified,
|
||||
// the pod's first container is used.
|
||||
Container string `json:"container"`
|
||||
// Command is the command and arguments to execute.
|
||||
Command []string `json:"command"`
|
||||
// OnError specifies how Ark should behave if it encounters an error executing this hook.
|
||||
OnError HookErrorMode `json:"onError"`
|
||||
// Timeout defines the maximum amount of time Ark should wait for the hook to complete before
|
||||
// considering the execution a failure.
|
||||
Timeout metav1.Duration `json:"timeout"`
|
||||
}
|
||||
|
||||
// HookErrorMode defines how Ark should treat an error from a hook.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type HookErrorMode string
|
||||
|
||||
const (
|
||||
// HookErrorModeContinue means that an error from a hook is acceptable, and the backup can
|
||||
// proceed.
|
||||
HookErrorModeContinue HookErrorMode = "Continue"
|
||||
// HookErrorModeFail means that an error from a hook is problematic, and the backup should be in
|
||||
// error.
|
||||
HookErrorModeFail HookErrorMode = "Fail"
|
||||
)
|
||||
|
||||
// BackupPhase is a string representation of the lifecycle phase
|
||||
// of an Ark backup.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupPhase string
|
||||
|
||||
const (
|
||||
// BackupPhaseNew means the backup has been created but not
|
||||
// yet processed by the BackupController.
|
||||
BackupPhaseNew BackupPhase = "New"
|
||||
|
||||
// BackupPhaseFailedValidation means the backup has failed
|
||||
// the controller's validations and therefore will not run.
|
||||
BackupPhaseFailedValidation BackupPhase = "FailedValidation"
|
||||
|
||||
// BackupPhaseInProgress means the backup is currently executing.
|
||||
BackupPhaseInProgress BackupPhase = "InProgress"
|
||||
|
||||
// BackupPhaseCompleted means the backup has run successfully without
|
||||
// errors.
|
||||
BackupPhaseCompleted BackupPhase = "Completed"
|
||||
|
||||
// BackupPhaseFailed means the backup ran but encountered an error that
|
||||
// prevented it from completing successfully.
|
||||
BackupPhaseFailed BackupPhase = "Failed"
|
||||
|
||||
// BackupPhaseDeleting means the backup and all its associated data are being deleted.
|
||||
BackupPhaseDeleting BackupPhase = "Deleting"
|
||||
)
|
||||
|
||||
// BackupStatus captures the current status of an Ark backup.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStatus struct {
|
||||
// Version is the backup format version.
|
||||
Version int `json:"version"`
|
||||
|
||||
// Expiration is when this Backup is eligible for garbage-collection.
|
||||
Expiration metav1.Time `json:"expiration"`
|
||||
|
||||
// Phase is the current state of the Backup.
|
||||
Phase BackupPhase `json:"phase"`
|
||||
|
||||
// VolumeBackups is a map of PersistentVolume names to
|
||||
// information about the backed-up volume in the cloud
|
||||
// provider API.
|
||||
//
|
||||
// Deprecated: this field is considered read-only as of v0.10
|
||||
// and will be removed in a subsequent release. The information
|
||||
// previously contained here is now stored in a file in backup
|
||||
// storage.
|
||||
VolumeBackups map[string]*VolumeBackupInfo `json:"volumeBackups,omitempty"`
|
||||
|
||||
// ValidationErrors is a slice of all validation errors (if
|
||||
// applicable).
|
||||
ValidationErrors []string `json:"validationErrors"`
|
||||
|
||||
// StartTimestamp records the time a backup was started.
|
||||
// Separate from CreationTimestamp, since that value changes
|
||||
// on restores.
|
||||
// The server's time is used for StartTimestamps
|
||||
StartTimestamp metav1.Time `json:"startTimestamp"`
|
||||
|
||||
// CompletionTimestamp records the time a backup was completed.
|
||||
// Completion time is recorded even on failed backups.
|
||||
// Completion time is recorded before uploading the backup object.
|
||||
// The server's time is used for CompletionTimestamps
|
||||
CompletionTimestamp metav1.Time `json:"completionTimestamp"`
|
||||
|
||||
// VolumeSnapshotsAttempted is the total number of attempted
|
||||
// volume snapshots for this backup.
|
||||
VolumeSnapshotsAttempted int `json:"volumeSnapshotsAttempted"`
|
||||
|
||||
// VolumeSnapshotsCompleted is the total number of successfully
|
||||
// completed volume snapshots for this backup.
|
||||
VolumeSnapshotsCompleted int `json:"volumeSnapshotsCompleted"`
|
||||
}
|
||||
|
||||
// VolumeBackupInfo captures the required information about
|
||||
// a PersistentVolume at backup time to be able to restore
|
||||
// it later.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type VolumeBackupInfo struct {
|
||||
// SnapshotID is the ID of the snapshot taken in the cloud
|
||||
// provider API of this volume.
|
||||
SnapshotID string `json:"snapshotID"`
|
||||
|
||||
// Type is the type of the disk/volume in the cloud provider
|
||||
// API.
|
||||
Type string `json:"type"`
|
||||
|
||||
// AvailabilityZone is the where the volume is provisioned
|
||||
// in the cloud provider.
|
||||
AvailabilityZone string `json:"availabilityZone,omitempty"`
|
||||
|
||||
// Iops is the optional value of provisioned IOPS for the
|
||||
// disk/volume in the cloud provider API.
|
||||
Iops *int64 `json:"iops,omitempty"`
|
||||
}
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// Backup is an Ark resource that respresents the capture of Kubernetes
|
||||
// cluster state at a point in time (API objects and associated volume state).
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type Backup struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
|
||||
Spec BackupSpec `json:"spec"`
|
||||
Status BackupStatus `json:"status,omitempty"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// BackupList is a list of Backups.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []Backup `json:"items"`
|
||||
}
|
||||
@@ -1,131 +0,0 @@
|
||||
/*
|
||||
Copyright 2018 the Heptio Ark 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.
|
||||
*/
|
||||
|
||||
package v1
|
||||
|
||||
import (
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/types"
|
||||
)
|
||||
|
||||
// +genclient
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// BackupStorageLocation is a location where Ark stores backup objects.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocation struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ObjectMeta `json:"metadata"`
|
||||
|
||||
Spec BackupStorageLocationSpec `json:"spec"`
|
||||
Status BackupStorageLocationStatus `json:"status"`
|
||||
}
|
||||
|
||||
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
|
||||
|
||||
// BackupStorageLocationList is a list of BackupStorageLocations.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocationList struct {
|
||||
metav1.TypeMeta `json:",inline"`
|
||||
metav1.ListMeta `json:"metadata"`
|
||||
Items []BackupStorageLocation `json:"items"`
|
||||
}
|
||||
|
||||
// StorageType represents the type of storage that a backup location uses.
|
||||
// ObjectStorage must be non-nil, since it is currently the only supported StorageType.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type StorageType struct {
|
||||
ObjectStorage *ObjectStorageLocation `json:"objectStorage,omitempty"`
|
||||
}
|
||||
|
||||
// ObjectStorageLocation specifies the settings necessary to connect to a provider's object storage.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type ObjectStorageLocation struct {
|
||||
// Bucket is the bucket to use for object storage.
|
||||
Bucket string `json:"bucket"`
|
||||
|
||||
// Prefix is the path inside a bucket to use for Ark storage. Optional.
|
||||
Prefix string `json:"prefix"`
|
||||
}
|
||||
|
||||
// BackupStorageLocationSpec defines the specification for an Ark BackupStorageLocation.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocationSpec struct {
|
||||
// Provider is the provider of the backup storage.
|
||||
Provider string `json:"provider"`
|
||||
|
||||
// Config is for provider-specific configuration fields.
|
||||
Config map[string]string `json:"config"`
|
||||
|
||||
StorageType `json:",inline"`
|
||||
}
|
||||
|
||||
// BackupStorageLocationPhase is the lifecyle phase of an Ark BackupStorageLocation.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocationPhase string
|
||||
|
||||
const (
|
||||
// BackupStorageLocationPhaseAvailable means the location is available to read and write from.
|
||||
BackupStorageLocationPhaseAvailable BackupStorageLocationPhase = "Available"
|
||||
|
||||
// BackupStorageLocationPhaseUnavailable means the location is unavailable to read and write from.
|
||||
BackupStorageLocationPhaseUnavailable BackupStorageLocationPhase = "Unavailable"
|
||||
)
|
||||
|
||||
// BackupStorageLocationAccessMode represents the permissions for a BackupStorageLocation.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocationAccessMode string
|
||||
|
||||
const (
|
||||
// BackupStorageLocationAccessModeReadOnly represents read-only access to a BackupStorageLocation.
|
||||
BackupStorageLocationAccessModeReadOnly BackupStorageLocationAccessMode = "ReadOnly"
|
||||
|
||||
// BackupStorageLocationAccessModeReadWrite represents read and write access to a BackupStorageLocation.
|
||||
BackupStorageLocationAccessModeReadWrite BackupStorageLocationAccessMode = "ReadWrite"
|
||||
)
|
||||
|
||||
// BackupStorageLocationStatus describes the current status of an Ark BackupStorageLocation.
|
||||
//
|
||||
// Deprecated: Consumers should switch to the same type in
|
||||
// github.com/heptio/velero/pkg/apis/velero/v1 instead. This
|
||||
// type will be removed in the v1.0 release.
|
||||
type BackupStorageLocationStatus struct {
|
||||
Phase BackupStorageLocationPhase `json:"phase,omitempty"`
|
||||
AccessMode BackupStorageLocationAccessMode `json:"accessMode,omitempty"`
|
||||
LastSyncedRevision types.UID `json:"lastSyncedRevision,omitempty"`
|
||||
LastSyncedTime metav1.Time `json:"lastSyncedTime,omitempty"`
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user