use of io.kubernetes.client.openapi.ApiClient in project java by kubernetes-client.
the class InformerExample method main.
public static void main(String[] args) throws Exception {
CoreV1Api coreV1Api = new CoreV1Api();
ApiClient apiClient = coreV1Api.getApiClient();
OkHttpClient httpClient = apiClient.getHttpClient().newBuilder().readTimeout(0, TimeUnit.SECONDS).build();
apiClient.setHttpClient(httpClient);
SharedInformerFactory factory = new SharedInformerFactory(apiClient);
// Node informer
SharedIndexInformer<V1Node> nodeInformer = factory.sharedIndexInformerFor(// the informer-factory.
(CallGeneratorParams params) -> {
return coreV1Api.listNodeCall(null, null, null, null, null, null, params.resourceVersion, null, params.timeoutSeconds, params.watch, null);
}, V1Node.class, V1NodeList.class);
nodeInformer.addEventHandler(new ResourceEventHandler<V1Node>() {
@Override
public void onAdd(V1Node node) {
System.out.printf("%s node added!\n", node.getMetadata().getName());
}
@Override
public void onUpdate(V1Node oldNode, V1Node newNode) {
System.out.printf("%s => %s node updated!\n", oldNode.getMetadata().getName(), newNode.getMetadata().getName());
}
@Override
public void onDelete(V1Node node, boolean deletedFinalStateUnknown) {
System.out.printf("%s node deleted!\n", node.getMetadata().getName());
}
});
factory.startAllRegisteredInformers();
V1Node nodeToCreate = new V1Node();
V1ObjectMeta metadata = new V1ObjectMeta();
metadata.setName("noxu");
nodeToCreate.setMetadata(metadata);
V1Node createdNode = coreV1Api.createNode(nodeToCreate, null, null, null, null);
Thread.sleep(3000);
Lister<V1Node> nodeLister = new Lister<V1Node>(nodeInformer.getIndexer());
V1Node node = nodeLister.get("noxu");
System.out.printf("noxu created! %s\n", node.getMetadata().getCreationTimestamp());
factory.stopAllRegisteredInformers();
Thread.sleep(3000);
System.out.println("informer stopped..");
}
use of io.kubernetes.client.openapi.ApiClient in project java by kubernetes-client.
the class KubeConfigFileClientExample method main.
public static void main(String[] args) throws IOException, ApiException {
// file path to your KubeConfig
String kubeConfigPath = System.getenv("HOME") + "/.kube/config";
// loading the out-of-cluster config, a kubeconfig from file-system
ApiClient client = ClientBuilder.kubeconfig(KubeConfig.loadKubeConfig(new FileReader(kubeConfigPath))).build();
// set the global default api-client to the in-cluster one from above
Configuration.setDefaultApiClient(client);
// the CoreV1Api loads default api-client from global configuration.
CoreV1Api api = new CoreV1Api();
// invokes the CoreV1Api client
V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null, null);
for (V1Pod item : list.getItems()) {
System.out.println(item.getMetadata().getName());
}
}
use of io.kubernetes.client.openapi.ApiClient in project java by kubernetes-client.
the class PrometheusExample method main.
public static void main(String[] args) throws IOException, ApiException {
ApiClient client = Config.defaultClient();
Configuration.setDefaultApiClient(client);
// Install an HTTP Interceptor that adds metrics
Monitoring.installMetrics(client);
// Install a simple HTTP server to serve prometheus metrics. If you already are serving
// metrics elsewhere, this is unnecessary.
Monitoring.startMetricsServer("localhost", 8080);
CoreV1Api api = new CoreV1Api();
while (true) {
// A request that should return 200
V1PodList list = api.listPodForAllNamespaces(null, null, null, null, null, null, null, null, null, null);
// A request that should return 404
try {
V1Pod pod = api.readNamespacedPod("foo", "bar", null);
} catch (ApiException ex) {
if (ex.getCode() != 404) {
throw ex;
}
}
try {
Thread.sleep(10000);
} catch (InterruptedException ex) {
ex.printStackTrace();
}
}
}
use of io.kubernetes.client.openapi.ApiClient in project java by kubernetes-client.
the class ClientBuilder method build.
public ApiClient build() {
final ApiClient client = new ApiClient();
client.setHttpClient(client.getHttpClient().newBuilder().protocols(protocols).readTimeout(this.readTimeout).pingInterval(pingInterval).build());
if (basePath != null) {
if (basePath.endsWith("/")) {
basePath = basePath.substring(0, basePath.length() - 1);
}
client.setBasePath(basePath);
}
client.setVerifyingSsl(verifyingSsl);
if (authentication != null) {
if (StringUtils.isNotEmpty(keyStorePassphrase)) {
if (authentication instanceof KubeconfigAuthentication) {
if (((KubeconfigAuthentication) authentication).getDelegateAuthentication() instanceof ClientCertificateAuthentication) {
((ClientCertificateAuthentication) (((KubeconfigAuthentication) authentication).getDelegateAuthentication())).setPassphrase(keyStorePassphrase);
}
}
}
authentication.provide(client);
}
// TODO: Add a test to ensure that this works correctly...
if (caCertBytes != null) {
client.setSslCaCert(new ByteArrayInputStream(caCertBytes));
}
return client;
}
use of io.kubernetes.client.openapi.ApiClient in project java by kubernetes-client.
the class AccessTokenAuthenticationTest method testTokenProvided.
@Test
public void testTokenProvided() {
final ApiClient client = new ApiClient();
new AccessTokenAuthentication("token").provide(client);
assertThat(getApiKeyAuthFromClient(client).getApiKeyPrefix(), is("Bearer"));
assertThat(getApiKeyAuthFromClient(client).getApiKey(), is("token"));
}
Aggregations