docs: private void waitUntilDeleted(final String namespace, final String name) {
      final CountDownLatch countDownLatch = new CountDownLatch(1);
  
      final Runnable waitTillDeletedPoller = () -> {
        try {
          T res = resources().inNamespace(namespace).withName(name).get();
          if (res == null) {
            countDownLatch.countDown();
          }
        } catch (KubernetesClientException e) {
          if (e.getCode() == 404) {
            countDownLatch.countDown();
          }
        }
      };
  
      ScheduledExecutorService executor = Executors.newSingleThreadScheduledExecutor();
      ScheduledFuture poller = executor.scheduleWithFixedDelay(waitTillDeletedPoller, 0, 5, TimeUnit.SECONDS);
      ScheduledFuture logger = executor.scheduleWithFixedDelay(() -> LOG.debug("Found resource {}/{} not yet deleted on server, so waiting...", namespace, name), 0, loggingIntervalMillis, TimeUnit.MILLISECONDS);
      try {
        countDownLatch.await(DEFAULT_SERVER_GC_WAIT_TIMEOUT, TimeUnit.MILLISECONDS);
        executor.shutdown();
      } catch (InterruptedException e) {
        Thread.currentThread().interrupt();
        poller.cancel(true);
        logger.cancel(true);
        executor.shutdown();
        LOG.warn("Still found deleted resource {} in namespace: {}  after waiting for {} seconds so giving up",
                 name, namespace, TimeUnit.MILLISECONDS.toSeconds(DEFAULT_SERVER_GC_WAIT_TIMEOUT));
      }
    }