Commit Graph

2313 Commits (203a103fc442994904212420abff186fd5630ce3)

Author SHA1 Message Date
Nolan Brubaker 28a46d3a8b
Ensure PVs and PVCs remain bound when doing a restore (#3007)
* Only remove the UID from a PV's claimRef

The UID is the only part of a claimRef that might prevent it from being
rebound correctly on a restore. The namespace and name within the
claimRef should be preserved in order to ensure that the PV is claimed
by the correct PVC on restore.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Remap PVs claimRef.namespace on relevant restores

When remapping namespaces, any included PVs need to have their claimRef
updated to point remapped namespaces to the new namespace name in order
to be bound to the correct PVC.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Update tests and ensure claimRef namespace remaps

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Remove lowercased uid field from unstructured PV

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Fix issues that prevented PVs from being restored

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add changelog

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Dynamically reprovision volumes without snapshots

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Update test for lower case uid field

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Remove stray debugging print statement

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Fix typo, remove extra code, add tests.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-10-15 16:57:43 -07:00
Nolan Brubaker 2b47ab2c7a
Add initial instructions for releasing plugins (#2952)
* Add initial instructions for releasing plugins

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Document that goreleaser isn't needed

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add link from core release instructions to plugins

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add notes about updating compatibility matrix

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add velero install note

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Address review feedback

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Remove anchor link to table, since it didn't work

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-10-13 16:18:05 -07:00
Alay Patel 467f5fb723
create CRB with velero-<namespace> (#2886)
* create CRB with velero-<namespace>

This will allow creating multiple instances of velero,
across two different namespaces

Signed-off-by: Alay Patel <alay1431@gmail.com>

* add changelog

Signed-off-by: Alay Patel <alay1431@gmail.com>

* add package var DefaultVeleroNamespace and use it wherever needed

Signed-off-by: Alay Patel <alay1431@gmail.com>
2020-10-13 16:13:42 -07:00
Bridget McErlean 60905d36c3
Auto assign reviewers when PR is ready for review (#3006)
The workflow that we are using for auto-assigning reviewers to a PR did
not cover the event when a draft PR is marked as ready for review. This
change adds the `ready_for_review` activity type to the list of types to
use for triggering the workflow.

This change also fixes a typo in one of the other listed types
(`synchronize`).
See the [docs for more information](https://docs.github.com/en/free-pro-team@latest/actions/reference/events-that-trigger-workflows#pull_request_target).

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-10-13 19:06:47 -04:00
Bridget McErlean 704bf01fab
Check existing remote branches in release script (#2951)
The command to check for an existing release branch only checked for
local branches. We should be considering both local and remote branches
before cherry-picking commits for the new release.

This change checks for existing local and remote release branches and
creates or updates them accordingly.
* If a remote branch exists, but a local branch does not, checkout the
  remote branch and track it.
* If the remote branch and local branch exists, checkout the local
  branch and ensure that the latest commits from the remote are pulled.
* Otherwise, if the remote branch does not exist, create it locally if
  needed.

This also handles the case where an existing release branch may be
tracked in multiple remotes as the remote to use is explicitly stated.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-10-13 13:02:21 -07:00
Bridget McErlean fb76a8fe33
Include --validate=false in upgrade instructions (#2969)
We instruct users to update the CRDs when upgrading to 1.4 and 1.5 which
involves using `kubectl apply` to apply the CRD configuration. The CRD
configuration generated by `velero install` includes fields which are
not valid when running Kubernetes v1.14 or earlier. We instruct users to
work around this when doing a customised velero install, but not when
upgrading to newer versions. This change updates the upgrade
instructions for v1.4 and v1.5 to include the use of `--validate=false`
flag when running `kubectl apply`.

See #2077 and #2311 for more context.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-10-13 13:00:36 -07:00
Ashish Amarnath c24f2baf0d
📖 document restic limitation of backing only pod volumes (#2976)
Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-10-13 12:58:36 -07:00
Gábor Lipták 3fb57c6b2e
Bump Go to 1.15 (#2974)
Signed-off-by: Gábor Lipták <gliptak@gmail.com>
2020-10-13 12:42:06 -07:00
Antony S Bett 35d25c81ec
Fix BSL controller to avoid invoking init() on all BSLs regardless of ValidationFrequency (#2992)
Signed-off-by: Bett, Antony <antony.bett@dell.com>
2020-10-13 12:10:32 -07:00
Carlisia Thompson c6aa54a009
Fix version cmd getting nil pointer (#2996)
Signed-off-by: Carlisia <carlisia@vmware.com>
2020-10-12 16:17:10 -04:00
Carlisia Thompson e69fac153b
Centralize + rename controller names and list (#2936)
* Centralize + rename controller names and list

Signed-off-by: Carlisia <carlisia@vmware.com>

* Rename file

Signed-off-by: Carlisia <carlisia@vmware.com>

* Reset restic-repo name

Signed-off-by: Carlisia <carlisia@vmware.com>

* Reset gc controller name

Signed-off-by: Carlisia <carlisia@vmware.com>
2020-10-06 13:58:56 -04:00
mickkael 228b474859
Allow Timezone change in the container (#2944)
* Allow Timezone change in the container

Allow Timezone change by specifying the env TZ in the deployment manifest
Signed-off-by: mickkael <19755421+mickkael@users.noreply.github.com>

* Change log for 2944

Signed-off-by: mickkael <19755421+mickkael@users.noreply.github.com>
2020-10-06 13:58:16 -04:00
Steph Bman a841167ee0
Update ROADMAP.md (#2986)
Updated roadmap with details from top ranked items on the 1.6 release proposed stack rank
2020-10-06 12:43:13 -04:00
Scott Seago d820bc5e72
restore proper lowercase/plural CRD resource (#2949)
* restore proper lowercase/plural CRD resource

This commit restores the proper resource string
"customresourcedefinitions" for CRD. The prior change to
"CustomResourceDefinition" was made because this was being used
in another place to populate the CRD "Kind" field in
remap_crd_version_action.go -- there, just use the correct Kind
string instead of pulling from Resource.

Signed-off-by: Scott Seago <sseago@redhat.com>

* add changelog

Signed-off-by: Scott Seago <sseago@redhat.com>
2020-10-02 09:48:12 -04:00
Michael Michael 3867d1f434
Stephanie Bauman is leaving the velero project (#2985)
* Delete 05-stephanie-bauman.md

* Delete stephanie-bauman.png

* Update MAINTAINERS.md
2020-10-02 08:12:23 -04:00
Bridget McErlean ea23d28192
Allow remote for release process to be configured (#2950)
The release script assumes that the remote for the vmware-tanzu/velero
repository is called `upstream`. It may be the case that this remote is
configured to use a different name. This change updates the script to
allow the remote name being used to be configured by setting the
environment variable `REMOTE` before running the script. If the variable
is not set, the remote defaults to `upstream`.

The release instructions have also been updated to reflect this change.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-09-24 14:29:46 -07:00
Bridget McErlean d4e12d5f4a
Improve release docs following v1.5.1 release (#2954)
This change addresses some issues in the documentation and scripts that
were found during the v1.5.1 release:
* Fix the path to the changelog script in the Makefile
* Fix the path to the pre-release TOC in the docs
* Improve the instructions for creating/updating the upgrade
  instructions page.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-09-24 13:00:10 -07:00
Jonas Rosland c143912738
Fix adopters logos (#2968)
Signed-off-by: jonasrosland <jrosland@vmware.com>
2020-09-23 15:35:00 -07:00
Nolan Brubaker e0dbbc747f
Don't attempt to publish docker images on forks (#2953)
* Don't attempt to publish docker images on forks

When the Main CI workflow runs on a fork, the docker push step will
always fail because the appropriate secrets are missing. This is
annoying at best and causes CI on forks to be untrustworthy at worst.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Use single quotes for string, as github expects

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-09-22 15:04:50 -07:00
Jonas Rosland d4b017d4d6
Add Velero Office Hours info (#2962)
Signed-off-by: jonasrosland <jrosland@vmware.com>
2020-09-22 10:06:36 -04:00
Nolan Brubaker 2fa96d0839
Fix 'subcommand required' error w/ cobra upgrade (#2947)
Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-09-17 14:08:26 -07:00
Nolan Brubaker b2ff7e6c11
v1.5 blog post (#2940)
* Blop post announcing Velero 1.5

Signed-off-by: Ashish Amarnath <ashisham@vmware.com>

* Remove hardcoded deploy preview URL

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Remove base URL entirely

Since there's not really an easy way to use the preview URL environment
variables in the netlify.toml, remove the baseURL argument entirely
from the build command.

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Update blog post date and expected tag link

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

Co-authored-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-16 17:56:47 -04:00
Nolan Brubaker 87d86a45a6
Add changelog and docs for v1.5 release (#2941)
* Add changelog and docs for v1.5 release

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Fix markdown indentation

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Fix URLs with patch version

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Fix example link

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-09-16 17:17:30 -04:00
Carlisia Thompson 6e20eaaba8
Spruce up release instructions and release scripts (#2931)
* Update tag-release script

Signed-off-by: Carlisia <carlisia@vmware.com>

* Reorg release instructions

Signed-off-by: Carlisia <carlisia@vmware.com>

* Move "troubleshooting" to proper section

Signed-off-by: Carlisia <carlisia@vmware.com>

* Better formatting

Signed-off-by: Carlisia <carlisia@vmware.com>

* Fix sorcery

Signed-off-by: Carlisia <carlisia@vmware.com>

* Address code review

Signed-off-by: Carlisia <carlisia@vmware.com>

* More code reviews

Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-16 16:12:09 -04:00
Carlisia Thompson afa552ca67
Fix url (#2933)
Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-11 17:26:56 -04:00
Carlisia Thompson 6f374b5709
Documentation for maintainers (#2932)
Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-11 16:53:33 -04:00
Carlisia Thompson 062a598d8e
Update upgrading instructions to right version (#2930)
Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-11 07:57:38 -07:00
Ashish Amarnath cfc4651078
🏃‍♂️ add shortnames for CRDs (#2911)
Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-10 12:28:17 -07:00
Bridget McErlean d85d785cf0
Remove "exec restore hooks coming soon" line (#2929)
Now that Exec restore hooks have been added in #2804 and are available
in 1.5.0-rc1, we can remove the line that states that they are coming
soon.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-09-10 12:25:24 -07:00
Ashish Amarnath 5caa97f335
📖 Fixing typos and markdown formatting (#2917)
* 📖 fix typo in resource-filtering page

Signed-off-by: Ashish Amarnath <ashisham@vmware.com>

* 📖 fix markdown formatting

Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-10 12:04:36 -07:00
Ashish Amarnath 6d729a90ca
🐛 fix 1.5 upgrade insturctions (#2926)
Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-10 13:46:32 -04:00
Andrew Reed e53369d509
Document exec restore hooks (#2896)
Signed-off-by: Andrew Reed <andrew@replicated.com>
2020-09-10 11:24:10 -04:00
Carlisia Thompson b60e6ff21e
v1.5.0-rc.1 release (#2921)
* v1.5.0-rc.1 release

Signed-off-by: Carlisia <carlisia@vmware.com>

* Reviews

Signed-off-by: Carlisia <carlisia@vmware.com>

* Re-generate docs

Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-09 16:25:47 -07:00
Bridget McErlean 543678140b
Update links to point to main branch (#2915)
A number of links still pointed to the old master branch and resulted in
404s. This updates those links to point to the new main branch.

Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-09-09 12:11:57 -07:00
Bridget McErlean 696117365f
Add Bridget to list of maintainers (#2916)
Signed-off-by: Bridget McErlean <bmcerlean@vmware.com>
2020-09-09 12:04:36 -07:00
Ashish Amarnath 44306e537e
📖 add restore hooks doc (#2862)
Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-08 17:36:31 -07:00
JenTing Hsiao cd31141b93
Show format version on velero backup describe (#2901)
* Show format version on velero backup describe

Signed-off-by: JenTing Hsiao <jenting.hsiao@suse.com>

* Add changelog

Signed-off-by: JenTing Hsiao <jenting.hsiao@suse.com>
2020-09-08 16:08:56 -04:00
Andrew Reed 0547b1d945
Restore hooks exec (#2804)
* Exec hooks in restored pods

Signed-off-by: Andrew Reed <andrew@replicated.com>

* WaitExecHookHandler implements ItemHookHandler

This required adding a context.Context argument to the ItemHookHandler
interface which is unused by the DefaultItemHookHandler implementation.
It also means passing nil for the []ResourceHook argument since that
holds BackupResourceHook.

Signed-off-by: Andrew Reed <andrew@replicated.com>

* WaitExecHookHandler unit tests

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Changelog and go fmt

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Fix double import

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Default to first contaienr in pod

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Use constants for hook error modes in tests

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Revert to separate WaitExecHookHandler interface

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Negative tests for invalid timeout annotations

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Rename NamedExecRestoreHook PodExecRestoreHook

Also make field names more descriptive.

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Cleanup test names

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Separate maxHookWait and add unit tests

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Comment on maxWait <= 0

Also info log container is not running for hooks to execute in.
Also add context error to hooks not executed errors.

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Remove log about default for invalid timeout

There is no default wait or exec timeout.

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Linting

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Fix log message and rename controller to podWatcher

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Comment on exactly-once semantics for handler

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Fix logging and comments

Use filed logger for pod in handler.
Add comment about pod changes in unit tests.
Use kube util NamespaceAndName in messages.

Signed-off-by: Andrew Reed <andrew@replicated.com>

* Fix maxHookWait

Signed-off-by: Andrew Reed <andrew@replicated.com>
2020-09-08 11:33:15 -07:00
Jonas Rosland a179ae01ca
Fix for docs redirects (#2895)
* Fixing redirects

Signed-off-by: jonasrosland <jrosland@vmware.com>

* Fix netlify config

Signed-off-by: jonasrosland <jrosland@vmware.com>

* Add previous redirects

Signed-off-by: jonasrosland <jrosland@vmware.com>

* Change netlify publish path

Signed-off-by: jonasrosland <jrosland@vmware.com>

* Add new redirect for restic

Signed-off-by: jonasrosland <jrosland@vmware.com>
2020-09-02 14:20:46 -07:00
Carlisia Thompson be1cd03023
Refactor BSL related code (#2870)
* Refactor BSL related code

Signed-off-by: Carlisia <carlisia@vmware.com>

* Increase # of max concurrent reconciles

Signed-off-by: Carlisia <carlisia@vmware.com>

* Clean up for better, more precise interfaces

Signed-off-by: Carlisia <carlisia@vmware.com>

* Minor clean up - code reviews

Signed-off-by: Carlisia <carlisia@vmware.com>

* Address code review

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add import and fix CI

Signed-off-by: Carlisia <carlisia@vmware.com>
2020-09-02 13:12:37 -04:00
Ashish Amarnath b5edac3c83
📖 update restore api types with init container restorehooks (#2855)
Signed-off-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-02 13:11:57 -04:00
Pawan Prakash Sharma debcbd2f8e
fix: rename the PV if VolumeSnapshotter has modified the PV name (#2835)
* fix: rename the PV if VolumeSnapshotter has modified the PV name

When VolumeSnapshotter sets the PV name via SetVolumeID and PV is
not there in the cluster, velero does not rename the PV. Which causes
the pvc to be in the lost state as pvc points to the old PV but pv object
has been renamed by VolumeSnapshotter.

Signed-off-by: Pawan <pawan@mayadata.io>

* adding a test case for pv rename

Signed-off-by: Pawan <pawan@mayadata.io>
2020-09-01 14:25:13 -07:00
Carlisia Campos c952932f1b
Migrate ServerStatusRequest controller and resource to kubebuilder (#2838)
* Convert ServerStatusRequest controller to controller-runtime

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add select stm

Signed-off-by: Carlisia <carlisia@vmware.com>

* Fixed status patch bug

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add mgr start

Signed-off-by: Carlisia <carlisia@vmware.com>

* Trying to sync

Signed-off-by: Carlisia <carlisia@vmware.com>

* Clean async now

Signed-off-by: Carlisia <carlisia@vmware.com>

* Clean up + move context out

Signed-off-by: Carlisia <carlisia@vmware.com>

* Bug: not closing the channel

Signed-off-by: Carlisia <carlisia@vmware.com>

* Clean up some tests

Signed-off-by: Carlisia <carlisia@vmware.com>

* Much better way to fetch an update using a backoff loop

Signed-off-by: Carlisia <carlisia@vmware.com>

* Even better way to retry: use apimachinery lib

Signed-off-by: Carlisia <carlisia@vmware.com>

* Refactor controller + add test

Signed-off-by: Carlisia <carlisia@vmware.com>

* partially fix unit tests

Signed-off-by: Ashish Amarnath <ashisham@vmware.com>

* Fix and add tests

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add changelog

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add ability to disable the controller + cleanups

Signed-off-by: Carlisia <carlisia@vmware.com>

* Fix bug w/ disabling controllers + fix test + clean up

Signed-off-by: Carlisia <carlisia@vmware.com>

* Move role.yaml to the correct folder

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add sample serverstatusrequest.yaml

Signed-off-by: Carlisia <carlisia@vmware.com>

* Add requeue + better formatting

Signed-off-by: Carlisia <carlisia@vmware.com>

* Increase # of max concurrent reconciles

Signed-off-by: Carlisia <carlisia@vmware.com>

Co-authored-by: Ashish Amarnath <ashisham@vmware.com>
2020-09-01 14:15:23 -07:00
Nolan Brubaker aed504a0fd
Fix git commands and add dry run mode as default to the tag-release.sh script. (#2875)
* Fix git commands and add missing comment

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add dry-run mode to tag-release.sh

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Make if statement formatting more consistent

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Add documentaion for dry-run mode

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>

* Better support for dry-run

Signed-off-by: Nolan Brubaker <brubakern@vmware.com>
2020-09-01 12:59:05 -07:00
JenTing Hsiao 1513674548
fix EnableAPIGroupersions output log format (#2882)
Signed-off-by: JenTing Hsiao <jenting.hsiao@suse.com>
2020-09-01 13:50:44 -04:00
Jonas Rosland 9764845530
Add CII Best Practices badge to README (#2880)
Signed-off-by: jonasrosland <jrosland@vmware.com>
2020-08-31 17:33:03 -04:00
Jonas Rosland 1dcaa1bf75
Rename security policy file to show up accurately in the GitHub UI (#2879)
Signed-off-by: jonasrosland <jrosland@vmware.com>
2020-08-31 12:10:09 -04:00
Abigail McCarthy ac50b457ad
add hugo default TOC (#2866)
* add hugo default TOC

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* point contributors to style guide (#2872)

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* add hugo default TOC

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* remove unused links

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>
2020-08-28 14:06:11 -04:00
Abigail McCarthy 9cf35d9ba7
add new table shortcode (#2865)
* add new table shortcode

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* fix typo

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* update shortcode commentn

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* fix messed up table

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* fixing 2 more tables

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* update 1.4 supporteed providers

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>

* add note about links in tables

Signed-off-by: Abigail McCarthy <mabigail@vmware.com>
2020-08-28 12:03:43 -04:00
Abigail McCarthy 36a4c28f61
point contributors to style guide (#2872)
Signed-off-by: Abigail McCarthy <mabigail@vmware.com>
2020-08-26 17:13:16 -07:00