public void issueComponentCertificates(AddressSpace addressSpace, Secret addressSpaceCaSecret) { try { Map<String, String> labels = new HashMap<>(); String infraUuid = addressSpace.getAnnotation(AnnotationKeys.INFRA_UUID); labels.put(LabelKeys.INFRA_UUID, infraUuid); labels.put(LabelKeys.INFRA_TYPE, addressSpace.getSpec().getType()); List<Cert> certs = certManager.listComponents(infraUuid).stream() .filter(component -> !certManager.certExists(component)) .map(certManager::createCsr) .map(request -> certManager.signCsr(request, addressSpaceCaSecret, Collections.emptySet())) .map(cert -> { certManager.createSecret(cert, addressSpaceCaSecret, labels); return cert; }) .collect(Collectors.toList()); if (!certs.isEmpty()) { eventLogger.log(CertCreated, "Created component certificates", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); } } catch (Exception e) { log.warn("Error issuing component certificates", e); eventLogger.log(CertCreateFailed, "Error creating component certificates: " + e.getMessage(), Warning, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); } }
public Secret issueAddressSpaceCert(final AddressSpace addressSpace) { try { final String addressSpaceCaSecretName = KubeUtil.getAddressSpaceCaSecretName(addressSpace); Secret secret = certManager.getCertSecret(addressSpaceCaSecretName); if (secret == null) { String infraUuid = addressSpace.getAnnotation(AnnotationKeys.INFRA_UUID); Map<String, String> labels = new HashMap<>(); labels.put(LabelKeys.INFRA_UUID, infraUuid); labels.put(LabelKeys.INFRA_TYPE, addressSpace.getSpec().getType()); secret = certManager.createSelfSignedCertSecret(addressSpaceCaSecretName, labels); //put crt into address space eventLogger.log(CertCreated, "Created address space CA", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); } return secret; } catch (Exception e) { log.warn("Error issuing addressspace ca certificate", e); eventLogger.log(CertCreateFailed, "Error creating certificate: " + e.getMessage(), Warning, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); return null; } }
private void provisionBroker(List<BrokerCluster> clusterList, String clusterId, int numReplicas, Address address, AddressPlan addressPlan) { try { for (BrokerCluster cluster : clusterList) { if (cluster.getClusterId().equals(clusterId)) { cluster.setNewReplicas(numReplicas); return; } } // Needs to be created StandardInfraConfig desiredConfig = (StandardInfraConfig) addressSpaceResolver.getInfraConfig("standard", addressSpacePlan.getMetadata().getName()); BrokerCluster cluster = clusterGenerator.generateCluster(clusterId, numReplicas, address, addressPlan, desiredConfig); if (!cluster.getResources().getItems().isEmpty()) { kubernetes.create(cluster.getResources()); eventLogger.log(BrokerCreated, "Created broker " + cluster.getClusterId() + " with " + numReplicas + " replicas", Normal, Broker, cluster.getClusterId()); } clusterList.add(cluster); } catch (Exception e) { log.warn("Error creating broker", e); eventLogger.log(BrokerCreateFailed, "Error creating broker: " + e.getMessage(), Warning, Broker, clusterId); address.getStatus().setPhase(Phase.Failed); address.getStatus().appendMessage("Error creating broker: " + e.getMessage()); } }
private void deprovisionUnused(List<BrokerCluster> clusters, Set<Address> addressSet) { for (BrokerCluster cluster : clusters) { int numFound = 0; for (Address address : addressSet) { String clusterId = address.getAnnotation(AnnotationKeys.CLUSTER_ID); if (cluster.getClusterId().equals(clusterId)) { numFound++; } for (BrokerStatus brokerStatus : address.getStatus().getBrokerStatuses()) { if (brokerStatus.getClusterId().equals(cluster.getClusterId())) { numFound++; } } } if (numFound == 0) { try { kubernetes.delete(cluster.getResources()); eventLogger.log(ControllerReason.BrokerDeleted, "Deleted broker " + cluster.getClusterId(), Normal, ControllerKind.Address, cluster.getClusterId()); } catch (Exception e) { log.warn("Error deleting cluster {}", cluster.getClusterId(), e); eventLogger.log(ControllerReason.BrokerDeleteFailed, "Error deleting broker cluster " + cluster.getClusterId() + ": " + e.getMessage(), EventLogger.Type.Warning, ControllerKind.Address, cluster.getClusterId()); } } } }
eventLogger.log(RouterCheckFailed, e.getMessage(), Warning, AddressSpace, options.getAddressSpace());
} catch (KubernetesClientException e) { log.warn("Error syncing address space {}", addressSpace.getMetadata().getName(), e); eventLogger.log(AddressSpaceSyncFailed, "Error syncing address space: " + e.getMessage(), Warning, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); } catch (Exception e) { log.warn("Error processing address space {}", addressSpace.getMetadata().getName(), e);
cluster.updateResources(upgradedCluster, desiredConfig); kubernetes.apply(cluster.getResources(), desiredConfig.getUpdatePersistentVolumeClaim()); eventLogger.log(BrokerUpgraded, "Upgraded broker", Normal, Broker, cluster.getClusterId()); } else { log.info("Version of desired config ({}) does not match controller version ({}), skipping upgrade", desiredConfig.getSpec().getVersion(), options.getVersion());
eventLogger.log(AddressSpaceCreated, "Created address space", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); addressSpace.putAnnotation(AnnotationKeys.APPLIED_INFRA_CONFIG, mapper.writeValueAsString(desiredInfraConfig)); addressSpace.putAnnotation(AnnotationKeys.APPLIED_PLAN, addressSpace.getSpec().getPlan()); eventLogger.log(AddressSpaceUpgraded, "Upgraded address space", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); addressSpace.putAnnotation(AnnotationKeys.APPLIED_INFRA_CONFIG, mapper.writeValueAsString(desiredInfraConfig)); addressSpace.putAnnotation(AnnotationKeys.APPLIED_PLAN, addressSpace.getSpec().getPlan()); eventLogger.log(AddressSpaceChanged, "Changed address space plan", Normal, ControllerKind.AddressSpace, addressSpace.getMetadata().getName()); addressSpace.putAnnotation(AnnotationKeys.APPLIED_INFRA_CONFIG, mapper.writeValueAsString(desiredInfraConfig)); addressSpace.putAnnotation(AnnotationKeys.APPLIED_PLAN, addressSpace.getSpec().getPlan());