docs: protected T periodicWatchUntilReady(int i, long started, long interval, long amount) {
      T item = fromServer().get();
      if (Readiness.isReady(item)) {
        return item;
      }
  
      ReadinessWatcher<T> watcher = new ReadinessWatcher<>(item);
      try (Watch watch = watch(item.getMetadata().getResourceVersion(), watcher)) {
        try {
          return watcher.await(interval, TimeUnit.MILLISECONDS);
        } catch (KubernetesClientTimeoutException e) {
          if (i <= 0) {
            throw e;
          }
        }
  
        long remaining =  (started + amount) - System.nanoTime();
        long next = Math.max(0, Math.min(remaining, interval));
        return periodicWatchUntilReady(i - 1, started, next, amount);
      }
    }