@Override public AppsAPIGroupDSL apps() { return delegate.apps(); }
@Override protected MixedOperation<StatefulSet, StatefulSetList, DoneableStatefulSet, RollableScalableResource<StatefulSet, DoneableStatefulSet>> operation() { return client.apps().statefulSets(); }
deployment = client.apps().deployments().inNamespace("thisisatest").create(deployment); log("Created deployment", deployment); client.apps().deployments().inNamespace("thisisatest").withName("nginx").scale(2, true); log("Created replica sets:", client.apps().replicaSets().inNamespace("thisisatest").list().getItems()); System.err.println("Deleting:" + deployment.getMetadata().getName()); client.resource(deployment).delete();
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 doGetDeployment(Exchange exchange, String operation) throws Exception { Deployment deployment = null; String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Get a specific Deployment require specify a Deployment name"); throw new IllegalArgumentException("Get a specific Deployment require specify a Deployment name"); } deployment = getEndpoint().getKubernetesClient().apps().deployments().withName(deploymentName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deployment); }
/*** * 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); }
protected void doDeleteDeployment(Exchange exchange, String operation) { String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Delete a specific deployment require specify a deployment name"); throw new IllegalArgumentException("Delete a specific deployment require specify a deployment name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific deployment require specify a namespace name"); throw new IllegalArgumentException("Delete a specific deployment require specify a namespace name"); } Boolean deployment = getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespaceName).withName(deploymentName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deployment); }
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()); }
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)); } }
/*** * Deletes deployment by name * @param namespace * @param appName */ public void deleteDeployment(String namespace, String appName) { client.apps().deployments().inNamespace(namespace).withName(appName).delete(); log.info("Deployment {} removed", appName); }
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)); } }
protected void doScaleDeployment(Exchange exchange, String operation) throws Exception { String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); Integer replicasNumber = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_REPLICAS, Integer.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Scale a specific deployment require specify a deployment name"); throw new IllegalArgumentException("Scale a specific deployment require specify a deployment name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Scale a specific deployment require specify a namespace name"); throw new IllegalArgumentException("Scale a specific deployment require specify a namespace name"); } if (ObjectHelper.isEmpty(replicasNumber)) { LOG.error("Scale a specific deployment require specify a replicas number"); throw new IllegalArgumentException("Scale a specific deployment require specify a replicas number"); } Deployment deploymentScaled = getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespaceName).withName(deploymentName).scale(replicasNumber, false); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deploymentScaled.getStatus().getReplicas()); } }
protected void doCreateDeployment(Exchange exchange, String operation) throws Exception { Deployment deployment = null; String deploymentName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); DeploymentSpec deSpec = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENT_SPEC, DeploymentSpec.class); if (ObjectHelper.isEmpty(deploymentName)) { LOG.error("Create a specific Deployment require specify a Deployment name"); throw new IllegalArgumentException("Create a specific Deployment require specify a pod name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Create a specific Deployment require specify a namespace name"); throw new IllegalArgumentException("Create a specific Deployment require specify a namespace name"); } if (ObjectHelper.isEmpty(deSpec)) { LOG.error("Create a specific Deployment require specify a Deployment spec bean"); throw new IllegalArgumentException("Create a specific Deployment require specify a Deployment spec bean"); } Map<String, String> labels = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_DEPLOYMENTS_LABELS, Map.class); Deployment deploymentCreating = new DeploymentBuilder().withNewMetadata().withName(deploymentName).withLabels(labels).endMetadata().withSpec(deSpec).build(); deployment = getEndpoint().getKubernetesClient().apps().deployments().inNamespace(namespaceName).create(deploymentCreating); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(deployment); }
public void setDeploymentReplicas(String name, int numReplicas) { client.apps().deployments().inNamespace(globalNamespace).withName(name).scale(numReplicas, true); }
public void setStatefulSetReplicas(String name, int numReplicas) { client.apps().statefulSets().inNamespace(globalNamespace).withName(name).scale(numReplicas, true); }
public List<Deployment> listDeployments(Map<String, String> labels) { return client.apps().deployments().inNamespace(globalNamespace).withLabels(labels).list().getItems(); }
public List<StatefulSet> listStatefulSets(Map<String, String> labels) { return client.apps().statefulSets().inNamespace(globalNamespace).withLabels(labels).list().getItems(); }
/*** * Creates application from resources * @param namespace * @param resources * @return String name of application * @throws Exception */ public String createDeploymentFromResource(String namespace, Deployment resources) throws Exception { Deployment depRes = client.apps().deployments().inNamespace(namespace).create(resources); Deployment result = client.apps().deployments().inNamespace(namespace) .withName(depRes.getMetadata().getName()).waitUntilReady(2, TimeUnit.MINUTES); log.info("Deployment {} created", result.getMetadata().getName()); return result.getMetadata().getName(); }
@Override public void run() { NonNamespaceOperation<Deployment, DeploymentList, DoneableDeployment, ScalableResource<Deployment, DoneableDeployment>> w = getEndpoint().getKubernetesClient().apps().deployments(); if (ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelKey()) && ObjectHelper.isNotEmpty(getEndpoint().getKubernetesConfiguration().getLabelValue())) {
private Deployment createDeployment(String appId, AppDeploymentRequest request, Map<String, String> idMap, int externalPort) { int replicas = getCountFromRequest(request); Map<String, String> annotations = getPodAnnotations(request); Map<String, String> deploymentLabels = getDeploymentLabels(request); PodSpec podSpec = createPodSpec(appId, request, externalPort, false); Deployment d = new DeploymentBuilder().withNewMetadata().withName(appId).withLabels(idMap) .addToLabels(SPRING_MARKER_KEY, SPRING_MARKER_VALUE).addToLabels(deploymentLabels).endMetadata() .withNewSpec().withNewSelector().addToMatchLabels(idMap).endSelector().withReplicas(replicas) .withNewTemplate().withNewMetadata().withLabels(idMap).addToLabels(SPRING_MARKER_KEY, SPRING_MARKER_VALUE) .addToLabels(deploymentLabels).withAnnotations(annotations).endMetadata().withSpec(podSpec).endTemplate() .endSpec().build(); return client.apps().deployments().create(d); }