@Override public Set<StatefulSet> getReadyStatefulSets(AddressSpace addressSpace) { String infraUuid = addressSpace.getAnnotation(AnnotationKeys.INFRA_UUID); return client.apps().statefulSets().inNamespace(namespace).withLabel(LabelKeys.INFRA_UUID, infraUuid).list().getItems().stream() .filter(KubernetesHelper::isReady) .collect(Collectors.toSet()); }
private void deleteStatefulSet(Map<String, String> labels) { FilterWatchListDeletable<StatefulSet, StatefulSetList, Boolean, Watch, Watcher<StatefulSet>> ssToDelete = client.apps().statefulSets().withLabels(labels); if (ssToDelete != null && ssToDelete.list().getItems() != null) { boolean ssDeleted = ssToDelete.delete(); logger.debug(String.format("StatefulSet deleted for: %s - %b", labels, ssDeleted)); } }
@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<StatefulSet> listStatefulSets(Map<String, String> labels) { return client.apps().statefulSets().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()); }