use of io.kubernetes.client.models.V1Pod in project twister2 by DSC-SPIDAL.
the class WorkerController method buildWorkerList.
/**
* build worker list by getting the pod list from the kubernetes master
*/
private void buildWorkerList() {
String namespace = KubernetesContext.namespace(config);
String servicelabel = KubernetesUtils.createServiceLabelWithApp(jobName);
int basePort = KubernetesContext.workerBasePort(config);
V1PodList list = null;
try {
list = coreApi.listNamespacedPod(namespace, null, null, null, null, servicelabel, null, null, null, null);
} catch (ApiException e) {
String logMessage = "Exception when getting the pod list for the job: " + jobName + "\n" + "exCode: " + e.getCode() + "\n" + "responseBody: " + e.getResponseBody();
LOG.log(Level.SEVERE, logMessage, e);
throw new RuntimeException(e);
}
workerList.clear();
for (V1Pod pod : list.getItems()) {
String podName = pod.getMetadata().getName();
if (!podName.startsWith(jobName)) {
LOG.warning("A pod received that does not belong to this job. PodName: " + podName);
continue;
}
InetAddress podIP = convertStringToIP(pod.getStatus().getPodIP());
for (int i = 0; i < workersPerPod; i++) {
int containerIndex = i;
int workerID = calculateWorkerID(podName, containerIndex);
WorkerNetworkInfo workerNetworkInfo = new WorkerNetworkInfo(podIP, basePort + containerIndex, workerID);
workerList.add(workerNetworkInfo);
}
}
}
Aggregations