if (!subsets.isEmpty()) { final Service service = client.services().withName(serviceId).get();
@Override public void provideCert(AddressSpace addressSpace, EndpointInfo endpointInfo) { Secret secret = client.secrets().inNamespace(namespace).withName(endpointInfo.getCertSpec().getSecretName()).get(); if (secret == null) { String serviceName = KubeUtil.getAddressSpaceServiceName(endpointInfo.getServiceName(), addressSpace); Service service = client.services().withName(serviceName).get(); if (service != null && (service.getMetadata().getAnnotations() == null || service.getMetadata().getAnnotations().get(AnnotationKeys.OPENSHIFT_SERVING_CERT_SECRET_NAME) == null)) { log.info("Adding service annotation to generate OpenShift cert"); client.services().withName(serviceName).edit() .editMetadata() .addToAnnotations(AnnotationKeys.OPENSHIFT_SERVING_CERT_SECRET_NAME, endpointInfo.getCertSpec().getSecretName()) .endMetadata() .done(); } } } }
return; Service old = kubernetesClient.services().inNamespace(namespace).withName(id).get(); if (isRunning(old)) { if (UserConfigurationCompare.configEqual(service, old)) { if (isRecreateMode()) { log.info("Deleting Service: " + id); kubernetesClient.services().inNamespace(namespace).withName(id).delete(); doCreateService(service, namespace, sourceName); } else {
.endSpec() .done()); log("Updated service", client.services().inNamespace("thisisatest").withName("testservice").edit().editMetadata().addToLabels("test", "label").endMetadata().done()); client.replicationControllers().inNamespace("thisisatest").withField("metadata.name", "testservice").delete(); log("Deleted service by field");
/*** * Delete service by name * @param namespace * @param serviceName */ public void deleteService(String namespace, String serviceName) { client.services().inNamespace(namespace).withName(serviceName).delete(); log.info("Service {} removed", serviceName); }
@Override public void apply(KubernetesList resources, boolean patchPersistentVolumeClaims) { for (HasMetadata resource : resources.getItems()) { try { if (resource instanceof ConfigMap) { client.configMaps().withName(resource.getMetadata().getName()).patch((ConfigMap) resource); } else if (resource instanceof Secret) { client.secrets().withName(resource.getMetadata().getName()).patch((Secret) resource); } else if (resource instanceof Deployment) { client.apps().deployments().withName(resource.getMetadata().getName()).patch((Deployment) resource); } else if (resource instanceof StatefulSet) { client.apps().statefulSets().withName(resource.getMetadata().getName()).cascading(false).patch((StatefulSet) resource); } else if (resource instanceof Service) { client.services().withName(resource.getMetadata().getName()).patch((Service) resource); } else if (resource instanceof ServiceAccount) { client.serviceAccounts().withName(resource.getMetadata().getName()).patch((ServiceAccount) resource); } else if (resource instanceof PersistentVolumeClaim && patchPersistentVolumeClaims) { client.persistentVolumeClaims().withName(resource.getMetadata().getName()).patch((PersistentVolumeClaim) resource); } } catch (KubernetesClientException e) { if (e.getCode() == 404) { // Create it if it does not exist client.resource(resource).createOrReplace(); } else { throw e; } } } }
public static void main(String args[]) { try (final KubernetesClient client = new DefaultKubernetesClient()) { Service service = new ServiceBuilder() .withNewMetadata() .withName("my-service") .endMetadata() .withNewSpec() .withSelector(Collections.singletonMap("app", "MyApp")) .addNewPort() .withName("test-port") .withProtocol("TCP") .withPort(80) .withTargetPort(new IntOrString(9376)) .endPort() .withType("LoadBalancer") .endSpec() .withNewStatus() .withNewLoadBalancer() .addNewIngress() .withIp("146.148.47.155") .endIngress() .endLoadBalancer() .endStatus() .build(); service = client.services().inNamespace(client.getNamespace()).create(service); log("Created service with name ", service.getMetadata().getName()); String serviceURL = client.services().inNamespace(client.getNamespace()).withName(service.getMetadata().getName()).getURL("test-port"); log("Service URL", serviceURL); } }
private static EntityPatcher<Service> servicePatcher() { return (KubernetesClient client, String namespace, Service newObj, Service oldObj) -> { if (UserConfigurationCompare.configEqual(newObj, oldObj)) { return oldObj; } DoneableService entity = client.services() .inNamespace(namespace) .withName(newObj.getMetadata().getName()) .edit(); if (!UserConfigurationCompare.configEqual(newObj.getMetadata(), oldObj.getMetadata())) { entity.withMetadata(newObj.getMetadata()); } if(!UserConfigurationCompare.configEqual(newObj.getSpec(), oldObj.getSpec())) { entity.withSpec(newObj.getSpec()); } return entity.done(); }; }
protected void doDeleteService(Exchange exchange, String operation) throws Exception { String serviceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_SERVICE_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(serviceName)) { LOG.error("Delete a specific service require specify a service name"); throw new IllegalArgumentException( "Delete a specific service require specify a service name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Delete a specific service require specify a namespace name"); throw new IllegalArgumentException( "Delete a specific service require specify a namespace name"); } boolean serviceDeleted = getEndpoint().getKubernetesClient().services() .inNamespace(namespaceName).withName(serviceName).delete(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(serviceDeleted); } }
client.apps().statefulSets().withName(resource.getMetadata().getName()).cascading(false).patch((StatefulSet) resource); } else if (resource instanceof Service) { client.services().withName(resource.getMetadata().getName()).patch((Service) resource); } else if (resource instanceof ServiceAccount) { client.serviceAccounts().withName(resource.getMetadata().getName()).patch((ServiceAccount) resource);
protected void doGetService(Exchange exchange, String operation) throws Exception { Service service = null; String serviceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_SERVICE_NAME, String.class); String namespaceName = exchange.getIn().getHeader( KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(serviceName)) { LOG.error("Get a specific service require specify a service name"); throw new IllegalArgumentException( "Get a specific service require specify a service name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific service require specify a namespace name"); throw new IllegalArgumentException( "Get a specific service require specify a namespace name"); } service = getEndpoint().getKubernetesClient().services() .inNamespace(namespaceName).withName(serviceName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(service); }
@Override public boolean existsAddressSpace(AddressSpace addressSpace) { return client.services().inNamespace(namespace).withName(KubeUtil.getAddressSpaceServiceName("messaging", addressSpace)).get() != null; } }
ns = getNamespace(); Service service = kubernetes.services().inNamespace(ns).withName(serviceName).get(); return service != null ? ServiceUrlUtil.getServiceURL(kubernetes, serviceName, ns, protocol, true) :
public Endpoint getEndpoint(String serviceName, String namespace, String port) { Service service = client.services().inNamespace(namespace).withName(serviceName).get(); return new Endpoint(service.getSpec().getClusterIP(), getPort(service, port)); }
/** * Checks if the Service already has assigned ingress address. * * @param namespace The namespace. * @param name The route name. */ public boolean isIngressAddressReady(String namespace, String name) { ServiceResource<Service, DoneableService> resourceOp = operation().inNamespace(namespace).withName(name); Service resource = resourceOp.get(); if (resource != null && resource.getStatus() != null && resource.getStatus().getLoadBalancer() != null && resource.getStatus().getLoadBalancer().getIngress() != null && resource.getStatus().getLoadBalancer().getIngress().size() > 0) { if (resource.getStatus().getLoadBalancer().getIngress().get(0).getHostname() != null || resource.getStatus().getLoadBalancer().getIngress().get(0).getIp() != null) { return true; } } return false; }
/** * Checks if the Service already has assigned node ports. * * @param namespace The namespace. * @param name The route name. */ public boolean isNodePortReady(String namespace, String name) { ServiceResource<Service, DoneableService> resourceOp = operation().inNamespace(namespace).withName(name); Service resource = resourceOp.get(); if (resource != null && resource.getSpec() != null && resource.getSpec().getPorts() != null) { boolean ready = true; for (ServicePort port : resource.getSpec().getPorts()) { if (port.getNodePort() == null) { ready = false; } } return ready; } return false; } }
srv = client.services().inNamespace(actualNamespace).withName(serviceName).get();
String serviceName = endpointSpec.getName() + "-" + infraUuid + "-external"; Service existingService = client.services().inNamespace(namespace).withName(serviceName).get(); if (existingService != null) { return existingService; Service service = client.services().inNamespace(namespace).withName(KubeUtil.getAddressSpaceServiceName(endpointSpec.getService(), addressSpace)).get(); if (service == null) { return null;
Service restapiService = client.services().withName(options.getRestapiRouteName()).get(); if (restapiService == null) { log.info("Creating REST API external service {}", options.getRestapiRouteName());