/** * Init discovery with provided Kubernetes Client configuration * @param service the service to initialize * @param kubeConfig the kubernetes client configuration */ public void initDiscovery(AbstractVerticle service, Config kubeConfig) { final JsonObject config = service.config(); if (!service.getClass().isAnnotationPresent(K8SDiscovery.class)) return; final K8SDiscovery annotation = service.getClass().getAnnotation(K8SDiscovery.class); updateKubeConfig(kubeConfig, config, annotation); // 1.) Check from K8SDiscovery Annotation // 1.1) read properties and from Annotation or from configuration // 2.) init KubernetesClient KubeDiscovery.resolveBeanAnnotations(service, kubeConfig); }
/** * Resolves discovery annotation in AbstractVerticles * * @param service the service where to resolve the annotations * @param kubeConfig the kubernetes config */ public static void resolveBeanAnnotations(AbstractVerticle service, Config kubeConfig) { final JsonObject env = service.config(); final List<Field> serviceNameFields = findServiceFields(service); if (!env.getBoolean("kube.offline", false)) { // online final DefaultKubernetesClient client = new DefaultKubernetesClient(kubeConfig); // TODO be aware of OpenShiftClient if (!serviceNameFields.isEmpty()) { findServiceEntryAndSetValue(service, serviceNameFields, env, client); } else { // TODO check and handle Endpoints & Pods } } else { // resolve properties offline if (!serviceNameFields.isEmpty()) { resolveServicesOffline(service, serviceNameFields, env); } else { // TODO check and handle Endpoints & Pods } } }
@Override public void initDiscovery(AbstractVerticle service) { final JsonObject config = service.config(); final Vertx vertx = service.getVertx(); if (!service.getClass().isAnnotationPresent(K8SDiscovery.class))
final CustomServerOptions endpointConfig = ConfigurationUtil .getEndpointOptions(config, serviceClass); final HttpServerOptions options = endpointConfig.getServerOptions(registrationObject.config());