Search in sources :

Example 31 with V1Pod

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);
        }
    }
}
Also used : V1PodList(io.kubernetes.client.models.V1PodList) WorkerNetworkInfo(edu.iu.dsc.tws.rsched.bootstrap.WorkerNetworkInfo) V1Pod(io.kubernetes.client.models.V1Pod) InetAddress(java.net.InetAddress) ApiException(io.kubernetes.client.ApiException)

Aggregations

V1Pod (io.kubernetes.client.models.V1Pod)31 Type (java.lang.reflect.Type)14 Test (org.junit.Test)8 ProgressRequestBody (io.kubernetes.client.ProgressRequestBody)7 ProgressResponseBody (io.kubernetes.client.ProgressResponseBody)7 ApiException (io.kubernetes.client.ApiException)2 V1ObjectMeta (io.kubernetes.client.models.V1ObjectMeta)2 V1PodList (io.kubernetes.client.models.V1PodList)2 AtomicBoolean (java.util.concurrent.atomic.AtomicBoolean)2 DomainPresenceInfo (oracle.kubernetes.operator.helpers.DomainPresenceInfo)2 ServerKubernetesObjects (oracle.kubernetes.operator.helpers.ServerKubernetesObjects)2 HttpUserAgentTest (com.meterware.pseudoserver.HttpUserAgentTest)1 WorkerNetworkInfo (edu.iu.dsc.tws.rsched.bootstrap.WorkerNetworkInfo)1 JSON (io.kubernetes.client.JSON)1 V1ConfigMap (io.kubernetes.client.models.V1ConfigMap)1 V1DeleteOptions (io.kubernetes.client.models.V1DeleteOptions)1 V1EnvVar (io.kubernetes.client.models.V1EnvVar)1 V1PersistentVolumeClaimList (io.kubernetes.client.models.V1PersistentVolumeClaimList)1 V1Service (io.kubernetes.client.models.V1Service)1 V1ServiceList (io.kubernetes.client.models.V1ServiceList)1