@Override public <C> C adapt(Class<C> type) { return delegate.adapt(type); }
public static void main(String[] args) { KubernetesClient client = new DefaultKubernetesClient(); OpenShiftClient oclient = client.adapt(OpenShiftClient.class); System.out.println("Adapted to an openshift client: " + oclient); } }
OpenShiftClient client = kubernetesClient.adapt(OpenShiftClient.class);
public static OpenShiftClient asOpenShiftClient(KubernetesClient client) { if (client instanceof OpenShiftClient) { return (OpenShiftClient) client; } try { return client.adapt(OpenShiftClient.class); } catch (KubernetesClientException | OpenShiftNotAvailableException e) { return null; } }
@Override public <C> C adapt(Class<C> type) { return delegate.adapt(type); }
@Override public String getURL(Service service, String portName, String namespace, KubernetesClient client) { String serviceName = service.getMetadata().getName(); ServicePort port = URLFromServiceUtil.getServicePortByName(service, portName); if(port != null && port.getName() != null && isOpenShift(client)) { try { String serviceProtocol = port.getProtocol(); OpenShiftClient openShiftClient = client.adapt(OpenShiftClient.class); Route route = openShiftClient.routes().inNamespace(namespace).withName(service.getMetadata().getName()).get(); if (route != null) { return (serviceProtocol + "://" + route.getSpec().getHost()).toLowerCase(); } } catch (KubernetesClientException e) { if(e.getCode() == HttpURLConnection.HTTP_FORBIDDEN) { logger.warn("Could not lookup route:" + serviceName + " in namespace:"+ namespace +", due to: " + e.getMessage()); } } } return null; }
@Test public void testAdaptToHttpClient() { KubernetesClient client = new DefaultKubernetesClient(); Assert.assertTrue(client.isAdaptable(OkHttpClient.class)); Assert.assertNotNull(client.adapt(OkHttpClient.class)); } }
@Test public void shouldRespectMaxRequests() { Config config = new ConfigBuilder() .withMaxConcurrentRequests(120) .build(); KubernetesClient client = new DefaultKubernetesClient(); assertEquals(64, client.adapt(OkHttpClient.class).dispatcher().getMaxRequests()); client = new DefaultKubernetesClient(config); assertEquals(120, client.adapt(OkHttpClient.class).dispatcher().getMaxRequests()); }
@Test public void shouldRespectMaxRequestsPerHost() { Config config = new ConfigBuilder() .withMaxConcurrentRequestsPerHost(20) .build(); KubernetesClient client = new DefaultKubernetesClient(); assertEquals(5, client.adapt(OkHttpClient.class).dispatcher().getMaxRequestsPerHost()); client = new DefaultKubernetesClient(config); assertEquals(20, client.adapt(OkHttpClient.class).dispatcher().getMaxRequestsPerHost()); }
/** * The default OpenShift URL is set using the Kubernetes * {@code KubernetesLocationConfig#MASTER_URL master URL} as follows: * <pre> * openShiftUrl = URLUtils.join(getMasterUrl(), "oapi", oapiVersion); * </pre> */ @Override public KubernetesClient getKubernetesClient(ConfigBag conf) { KubernetesClient client = super.getKubernetesClient(conf); OpenShiftClient oClient = client.adapt(OpenShiftClient.class); return oClient; }
public WorkaroundRbacOperator(Vertx vertx, KubernetesClient client, String group, String apiVersion, String plural) { this.vertx = vertx; baseUrl = client.getMasterUrl().toString(); if (client.isAdaptable(OkHttpClient.class)) { this.client = client.adapt(OkHttpClient.class); } else { throw new RuntimeException("Could not adapt the client to OkHttpClient"); } this.group = group; this.apiVersion = apiVersion; this.plural = plural; }
protected void doGetBuild(Exchange exchange, String operation) throws Exception { Build build = null; String buildName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_BUILD_NAME, String.class); String namespaceName = exchange.getIn().getHeader(KubernetesConstants.KUBERNETES_NAMESPACE_NAME, String.class); if (ObjectHelper.isEmpty(buildName)) { LOG.error("Get a specific Build require specify a Build name"); throw new IllegalArgumentException("Get a specific Build require specify a Build name"); } if (ObjectHelper.isEmpty(namespaceName)) { LOG.error("Get a specific Build require specify a namespace name"); throw new IllegalArgumentException("Get a specific Build require specify a namespace name"); } build = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class).builds().inNamespace(namespaceName).withName(buildName).get(); MessageHelper.copyHeaders(exchange.getIn(), exchange.getOut(), true); exchange.getOut().setBody(build); } }
public Endpoint getRestEndpoint() { OpenShiftClient openShift = client.adapt(OpenShiftClient.class); Endpoint endpoint = null; endpoint = new Endpoint(client.getMasterUrl()); if (TestUtils.resolvable(endpoint)) { return endpoint; } else { log.info("Route endpoint didn't resolve, falling back to service endpoint"); return getEndpoint("api-server", "https"); } }
protected void doList(Exchange exchange, String operation) throws Exception { BuildConfigList buildConfigsList = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class) .buildConfigs().inAnyNamespace().list(); exchange.getOut().setBody(buildConfigsList.getItems()); }
protected void doList(Exchange exchange, String operation) throws Exception { BuildList buildList = getEndpoint().getKubernetesClient().adapt(OpenShiftClient.class).builds().inAnyNamespace().list(); exchange.getOut().setBody(buildList.getItems()); }
public Endpoint getKeycloakEndpoint() { OpenShiftClient openShift = client.adapt(OpenShiftClient.class); Route route = openShift.routes().inNamespace(globalNamespace).withName("keycloak").get(); Endpoint endpoint = new Endpoint(route.getSpec().getHost(), 443); log.info("Testing endpoint : " + endpoint); if (TestUtils.resolvable(endpoint)) { return endpoint; } else { log.info("Endpoint didn't resolve, falling back to service endpoint"); return getEndpoint("standard-authservice", "https"); } }
@Override public String getURL(Service service, String portName, String namespace, KubernetesClient client) { String serviceName = service.getMetadata().getName(); ServicePort port = URLFromServiceUtil.getServicePortByName(service, portName); if(port != null && port.getName() != null && isOpenShift(client)) { try { String serviceProtocol = port.getProtocol(); OpenShiftClient openShiftClient = client.adapt(OpenShiftClient.class); Route route = openShiftClient.routes().inNamespace(namespace).withName(service.getMetadata().getName()).get(); if (route != null) { return (serviceProtocol + "://" + route.getSpec().getHost()).toLowerCase(); } } catch (KubernetesClientException e) { if(e.getCode() == HttpURLConnection.HTTP_FORBIDDEN) { logger.warn("Could not lookup route:" + serviceName + " in namespace:"+ namespace +", due to: " + e.getMessage()); } } } return null; }
public static void main(String[] args) throws InterruptedException { Config config = new ConfigBuilder().build(); KubernetesClient kubernetesClient = new DefaultKubernetesClient(config); OpenShiftClient client = kubernetesClient.adapt(OpenShiftClient.class);
public ResourceOperatorSupplier(Vertx vertx, KubernetesClient client, boolean isOpenShift, long operationTimeoutMs) { this(new ServiceOperator(vertx, client), isOpenShift ? new RouteOperator(vertx, client.adapt(OpenShiftClient.class)) : null, new ZookeeperSetOperator(vertx, client, operationTimeoutMs), new KafkaSetOperator(vertx, client, operationTimeoutMs), new ConfigMapOperator(vertx, client), new SecretOperator(vertx, client), new PvcOperator(vertx, client), new DeploymentOperator(vertx, client), new ServiceAccountOperator(vertx, client), new RoleBindingOperator(vertx, client), new ClusterRoleBindingOperator(vertx, client), new NetworkPolicyOperator(vertx, client), new PodDisruptionBudgetOperator(vertx, client), new CrdOperator<>(vertx, client, Kafka.class, KafkaAssemblyList .class, DoneableKafka.class)); }
public static void main(String[] args) throws InterruptedException { Config config = new ConfigBuilder().build(); KubernetesClient kubernetesClient = new DefaultKubernetesClient(config); OpenShiftClient client = kubernetesClient.adapt(OpenShiftClient.class);