@Override public void visit(HasMetadata item) { logger.get().info("Applying " + item.getKind() + ":" + item.getMetadata().getName()); } }
private String getActualName(String prefix, Iterable<? extends HasMetadata> objects, String msg) throws Exception { for (HasMetadata hmd : objects) { String name = hmd.getMetadata().getName(); if (name.startsWith(prefix)) { return name; } } throw new Exception(msg); }
/** * Removes all resources deployed using this class. */ public void cleanup() { List<String> keys = new ArrayList<>(created.keySet()); keys.sort(String::compareTo); for (String key : keys) { created.remove(key) .stream() .sorted(Comparator.comparing(HasMetadata::getKind)) .forEach(metadata -> { log.info(String.format("Deleting %s : %s", key, metadata.getKind())); deleteWithRetries(metadata); }); } }
public <T extends HasMetadata> PodList podsOf(T resource) { if (resource instanceof Pod) { return new PodListBuilder().withItems((Pod) resource).build(); } else if (resource instanceof Endpoints) { return podsOf(client.services() .inNamespace(resource.getMetadata().getNamespace()) .withName(resource.getMetadata().getName()) .get()); } else if (resource instanceof Service) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((Service) resource).getSpec().getSelector()) .list(); } else if (resource instanceof ReplicationController) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((ReplicationController) resource).getSpec().getSelector()) .list(); } else if (resource instanceof ReplicaSet) { return findMatching((ReplicaSet) resource); } else if (resource instanceof Deployment) { return findMatching((Deployment) resource); } else if (resource instanceof DeploymentConfig) { return client.pods().inNamespace(resource.getMetadata().getName()).withLabel("deploymentconfig", resource.getMetadata().getName()).list(); } else { return new PodListBuilder().build(); } }
/** * Removes all resources deployed using this class. */ public void cleanup() { List<String> keys = new ArrayList<>(created.keySet()); keys.sort(String::compareTo); for (String key : keys) { created.remove(key) .stream() .sorted(Comparator.comparing(HasMetadata::getKind)) .forEach(metadata -> { log.info(String.format("Deleting %s : %s", key, metadata.getKind())); deleteWithRetries(metadata); }); } }
@Override public void visit(HasMetadata item) { logger.get().info("Applying " + item.getKind() + ":" + item.getMetadata().getName()); } }
} else if (resource instanceof Endpoints) { return podsOf(client.services() .inNamespace(resource.getMetadata().getNamespace()) .withName(resource.getMetadata().getName()) .get()); } else if (resource instanceof Service) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((Service) resource).getSpec().getSelector()) .list(); } else if (resource instanceof ReplicationController) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((ReplicationController) resource).getSpec().getSelector()) .list();
private void deleteWithRetries(HasMetadata metadata) { int retryCounter = 0; boolean deleteUnsucessful = true; do { retryCounter++; try { // returns false when successfully deleted deleteUnsucessful = client.resource(metadata).withGracePeriod(0).delete(); } catch (KubernetesClientException e) { try { TimeUnit.MILLISECONDS.sleep(500); } catch (InterruptedException interrupted) { throw new RuntimeException(interrupted); } e.printStackTrace(); log.info(String.format("Error deleting resource %s %s retrying #%s ", metadata.getKind(), metadata.getMetadata().getName(), retryCounter)); } } while (retryCounter < 3 && deleteUnsucessful); if (deleteUnsucessful) { throw new RuntimeException("Unable to delete " + metadata); } }
} else if (resource instanceof Endpoints) { return podsOf(client.services() .inNamespace(resource.getMetadata().getNamespace()) .withName(resource.getMetadata().getName()) .get()); } else if (resource instanceof Service) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((Service) resource).getSpec().getSelector()) .list(); } else if (resource instanceof ReplicationController) { return client.pods() .inNamespace(resource.getMetadata().getNamespace()) .withLabels(((ReplicationController) resource).getSpec().getSelector()) .list();
private void deleteWithRetries(HasMetadata metadata) { int retryCounter = 0; boolean deleteUnsucessful = true; do { retryCounter++; try { // returns false when successfully deleted deleteUnsucessful = client.resource(metadata).withGracePeriod(0).delete(); } catch (KubernetesClientException e) { try { TimeUnit.MILLISECONDS.sleep(500); } catch (InterruptedException interrupted) { throw new RuntimeException(interrupted); } e.printStackTrace(); log.info(String.format("Error deleting resource %s %s retrying #%s ", metadata.getKind(), metadata.getMetadata().getName(), retryCounter)); } } while (retryCounter < 3 && deleteUnsucessful); if (deleteUnsucessful) { throw new RuntimeException("Unable to delete " + metadata); } }
for (HasMetadata r : t.getResourcesNotReady()) { log.error( r.getKind() + " name: " + r.getMetadata().getName() + " namespace:" + r.getMetadata() .getNamespace()); feedbackProvider.onResourceNotReady(r);
for (HasMetadata r : t.getResourcesNotReady()) { log.error( r.getKind() + " name: " + r.getMetadata().getName() + " namespace:" + r.getMetadata() .getNamespace()); feedbackProvider.onResourceNotReady(r);