@Override
    public ServiceAddress getServiceAddress(DeploymentContext context) throws HyscaleException {
        ServiceAddress serviceAddress;
        try {
            ApiClient apiClient = clientProvider.get((K8sAuthorisation) context.getAuthConfig());
            String selector = ResourceSelectorUtil.getServiceSelector(context.getAppName(), context.getServiceName());
            PodParent podParent = podParentProvider.getPodParent(apiClient, context.getAppName(), context.getServiceName(), context.getNamespace());
            LoadBalancer loadBalancer = PodParentUtil.getLoadBalancerSpec(podParent);
            if (loadBalancer != null) {
                return K8sServiceUtil.getLBServiceAddress(context.isWaitForReadiness(), loadBalancer, apiClient, selector, context.getNamespace());
            }
            V1ServiceHandler v1ServiceHandler = (V1ServiceHandler) ResourceHandlers
                    .getHandlerOf(ResourceKind.SERVICE.getKind());
            serviceAddress = v1ServiceHandler.getServiceAddress(apiClient, selector, context.getNamespace(),
                    context.isWaitForReadiness());
        } catch (HyscaleException e) {
            logger.error("Error while getting service address, error {} ", e.toString());
            throw e;
        }
        return serviceAddress;
    }
Wait for Pod scheduled, creation and Readiness state
deployer/deployer-services/src/main/java/io/hyscale/deployer/services/deployer/impl/KubernetesDeployer.java