protected void doListDeploymentsByLabels(Exchange exchange, String operation) throws Exception { DeploymentList deploymentList = null; Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, Map.class); NonNamespaceOperation<Deployment, DeploymentList, DoneableDeployment, ScalableResource<Deployment, DoneableDeployment>> deployments = getEndpoint().getKubernetesClient() .apps().deployments(); for (Map.Entry<String, String> entry : labels.entrySet()) { deployments.withLabel(entry.getKey(), entry.getValue()); } deploymentList = deployments.list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deploymentList.getItems()); }
protected void doList(Exchange exchange, String operation) throws Exception { DeploymentList deploymentsList = getEndpoint().getKubernetesClient().apps().deployments().list(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deploymentsList.getItems()); }
/*** * Check if deployment exists * @param namespace kuberntes namespace name * @param appName name of deployment * @return true if deployment exists */ public boolean deploymentExists(String namespace, String appName) { return client.apps().deployments().inNamespace(namespace).list().getItems().stream() .map(deployment -> deployment.getMetadata().getName()).collect(Collectors.toList()).contains(appName); }
@Override public Set<Deployment> getReadyDeployments(AddressSpace addressSpace) { String infraUuid = addressSpace.getAnnotation(AnnotationKeys.INFRA_UUID); return client.apps().deployments().inNamespace(namespace).withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems().stream() .filter(KubernetesHelper::isReady) .collect(Collectors.toSet()); }
private void deleteDeployment(Map<String, String> labels) { FilterWatchListDeletable<Deployment, DeploymentList, Boolean, Watch, Watcher<Deployment>> deploymentsToDelete = client.apps().deployments().withLabels(labels); if (deploymentsToDelete != null && deploymentsToDelete.list().getItems() != null) { boolean deploymentsDeleted = deploymentsToDelete.delete(); logger.debug(String.format("Deployment deleted for: %s - %b", labels, deploymentsDeleted)); } }
@Override public Collection<CertComponent> listComponents(String uuid) { List<HasMetadata> components = new ArrayList<>(); components.addAll(client.apps().deployments().inNamespace(namespace).withLabel(LabelKeys.INFRA_UUID, uuid).list().getItems()); components.addAll(client.apps().statefulSets().inNamespace(namespace).withLabel(LabelKeys.INFRA_UUID, uuid).list().getItems()); return components.stream() .filter(object -> object.getMetadata().getAnnotations() != null && object.getMetadata().getAnnotations().containsKey(AnnotationKeys.CERT_SECRET_NAME)) .map(object -> { Map<String, String> annotations = object.getMetadata().getAnnotations(); String cn = annotations.getOrDefault(AnnotationKeys.CERT_CN, object.getMetadata().getName()); return new CertComponent(cn, uuid, annotations.get(AnnotationKeys.CERT_SECRET_NAME)); }) .collect(Collectors.toList()); }
public List<Deployment> listDeployments(Map<String, String> labels) { return client.apps().deployments().inNamespace(globalNamespace).withLabels(labels).list().getItems(); }
@Override public List<BrokerCluster> listClusters() { Map<String, List<HasMetadata>> resourceMap = new HashMap<>(); // Add other resources part of a destination cluster List<HasMetadata> objects = new ArrayList<>(); objects.addAll(client.apps().deployments().withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems()); objects.addAll(client.apps().statefulSets().withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems()); objects.addAll(client.persistentVolumeClaims().withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems()); objects.addAll(client.configMaps().withLabel(LabelKeys.INFRA_UUID, infraUuid).withLabelNotIn("type", "address-config", "address-space", "address-space-plan", "address-plan").list().getItems()); objects.addAll(client.services().withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems()); for (HasMetadata config : objects) { Map<String, String> annotations = config.getMetadata().getAnnotations(); if (annotations != null && annotations.containsKey(AnnotationKeys.CLUSTER_ID)) { String groupId = annotations.get(AnnotationKeys.CLUSTER_ID); Map<String, String> labels = config.getMetadata().getLabels(); if (labels != null) { if (!resourceMap.containsKey(groupId)) { resourceMap.put(groupId, new ArrayList<>()); } resourceMap.get(groupId).add(config); } } } return resourceMap.entrySet().stream() .map(entry -> { KubernetesList list = new KubernetesList(); list.setItems(entry.getValue()); return new BrokerCluster(entry.getKey(), list); }).collect(Collectors.toList()); }