private Watch<V1Pod> getWatch(ApiClient apiClient, String namespace, String latestPodSelector)
            throws HyscaleException {
        CoreV1Api api = new CoreV1Api(apiClient);
        try {
            return Watch.createWatch(
                    apiClient, api.listNamespacedPodCall(namespace, null, false, null, null, latestPodSelector, null,
                            null, POD_WATCH_TIMEOUT_IN_SEC, Boolean.TRUE, null),
                    new TypeToken<Watch.Response<V1Pod>>() {
                    }.getType());
        } catch (ApiException e) {
            LOGGER.error("Failed to watch pod events ", e);
            throw new HyscaleException(DeployerErrorCodes.FAILED_TO_RETRIEVE_POD);
        }
    }
It will fetch pod parent by using of servicename and namespace, based on pod parent it will get  latestpodselector.
Now it will start watching pod event changes on cluster based on namespace and latestpodselector.
While watching pods it is reading status, here we are mainly reading three status (initialization, creations and readiness),
after completion of each status we are showing status done message, whenever we get any pod has failed status immediately come out from watch
and show deployment fail message.

@param apiClient
@param appName
@param serviceName
@param namespace
deployer/deployer-services/src/main/java/io/hyscale/deployer/services/handler/impl/V1PodHandler.java