use of io.kubernetes.client.openapi.ApiException in project java by kubernetes-client.
the class LeaderElectorTest method deleteEndpointsLockResource.
private void deleteEndpointsLockResource() throws Exception {
try {
CoreV1Api coreV1Api = new CoreV1Api(apiClient);
coreV1Api.deleteNamespacedEndpoints(LOCK_RESOURCE_NAME, NAMESPACE, null, null, null, null, null, null);
} catch (ApiException ex) {
if (ex.getCode() != HttpURLConnection.HTTP_NOT_FOUND) {
throw ex;
}
}
}
use of io.kubernetes.client.openapi.ApiException in project java by kubernetes-client.
the class DeployRolloutRestartExample method main.
public static void main(String[] args) throws IOException, ApiException {
ApiClient client = Config.defaultClient();
Configuration.setDefaultApiClient(client);
AppsV1Api appsV1Api = new AppsV1Api(client);
String deploymentName = "example-nginx";
String imageName = "nginx:1.21.6";
String namespace = "default";
// Create an example deployment
V1DeploymentBuilder deploymentBuilder = new V1DeploymentBuilder().withApiVersion("apps/v1").withKind("Deployment").withMetadata(new V1ObjectMeta().name(deploymentName).namespace(namespace)).withSpec(new V1DeploymentSpec().replicas(1).selector(new V1LabelSelector().putMatchLabelsItem("name", deploymentName)).template(new V1PodTemplateSpec().metadata(new V1ObjectMeta().putLabelsItem("name", deploymentName)).spec(new V1PodSpec().containers(Collections.singletonList(new V1Container().name(deploymentName).image(imageName))))));
appsV1Api.createNamespacedDeployment(namespace, deploymentBuilder.build(), null, null, null, null);
// Wait until example deployment is ready
Wait.poll(Duration.ofSeconds(3), Duration.ofSeconds(60), () -> {
try {
System.out.println("Waiting until example deployment is ready...");
return appsV1Api.readNamespacedDeployment(deploymentName, namespace, null).getStatus().getReadyReplicas() > 0;
} catch (ApiException e) {
e.printStackTrace();
return false;
}
});
System.out.println("Created example deployment!");
// Trigger a rollout restart of the example deployment
V1Deployment runningDeployment = appsV1Api.readNamespacedDeployment(deploymentName, namespace, null);
// Explicitly set "restartedAt" annotation with current date/time to trigger rollout when patch
// is applied
runningDeployment.getSpec().getTemplate().getMetadata().putAnnotationsItem("kubectl.kubernetes.io/restartedAt", LocalDateTime.now().toString());
try {
String deploymentJson = client.getJSON().serialize(runningDeployment);
PatchUtils.patch(V1Deployment.class, () -> appsV1Api.patchNamespacedDeploymentCall(deploymentName, namespace, new V1Patch(deploymentJson), null, null, "kubectl-rollout", null, null, null), V1Patch.PATCH_FORMAT_STRATEGIC_MERGE_PATCH, client);
// Wait until deployment has stabilized after rollout restart
Wait.poll(Duration.ofSeconds(3), Duration.ofSeconds(60), () -> {
try {
System.out.println("Waiting until example deployment restarted successfully...");
return appsV1Api.readNamespacedDeployment(deploymentName, namespace, null).getStatus().getReadyReplicas() > 0;
} catch (ApiException e) {
e.printStackTrace();
return false;
}
});
System.out.println("Example deployment restarted successfully!");
} catch (ApiException e) {
e.printStackTrace();
}
}
use of io.kubernetes.client.openapi.ApiException in project java by kubernetes-client.
the class ExpandedExample method getNamespacedPod.
/**
* List pod in specific namespace with label
*
* @param namespace
* @param label
* @return
* @throws ApiException
*/
public static List<String> getNamespacedPod(String namespace, String label) throws ApiException {
V1PodList listNamespacedPod = COREV1_API.listNamespacedPod(namespace, null, null, null, null, label, Integer.MAX_VALUE, null, null, TIME_OUT_VALUE, Boolean.FALSE);
List<String> listPods = listNamespacedPod.getItems().stream().map(v1pod -> v1pod.getMetadata().getName()).collect(Collectors.toList());
return listPods;
}
use of io.kubernetes.client.openapi.ApiException in project java by kubernetes-client.
the class ExpandedExample method scaleDeployment.
/**
* Scale up/down the number of pod in Deployment
*
* @param deploymentName
* @param numberOfReplicas
* @throws ApiException
*/
public static void scaleDeployment(String deploymentName, int numberOfReplicas) throws ApiException {
AppsV1Api appsV1Api = new AppsV1Api();
appsV1Api.setApiClient(COREV1_API.getApiClient());
V1DeploymentList listNamespacedDeployment = appsV1Api.listNamespacedDeployment(DEFAULT_NAME_SPACE, null, null, null, null, null, null, null, null, null, Boolean.FALSE);
List<V1Deployment> appsV1DeploymentItems = listNamespacedDeployment.getItems();
Optional<V1Deployment> findedDeployment = appsV1DeploymentItems.stream().filter((V1Deployment deployment) -> deployment.getMetadata().getName().equals(deploymentName)).findFirst();
findedDeployment.ifPresent((V1Deployment deploy) -> {
try {
V1DeploymentSpec newSpec = deploy.getSpec().replicas(numberOfReplicas);
V1Deployment newDeploy = deploy.spec(newSpec);
appsV1Api.replaceNamespacedDeployment(deploymentName, DEFAULT_NAME_SPACE, newDeploy, null, null, null, null);
} catch (ApiException ex) {
LOGGER.warn("Scale the pod failed for Deployment:" + deploymentName, ex);
}
});
}
use of io.kubernetes.client.openapi.ApiException 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();
}
}
}
Aggregations