Package retry provides methods for retrying operations. It is a thin wrapper
around k8s.io/apimachinery/pkg/util/wait to make certain operations easier.
Never returns a context that signals something should not be retried.
This is a hack and can be used to communicate across package boundaries
to avoid retry amplification.
Retry retries a given function, f, until a predicate is satisfied, using
exponential backoff. If the predicate is never satisfied, it will return the
last error returned by f.
Backoff is an alias of our own wait.Backoff to avoid name conflicts with
the kubernetes wait package. Typing retry.Backoff is aesier than fixing
the wrong import every time you use wait.Backoff.