public void start() throws Exception { SchemaApi schemaApi = KubeSchemaApi.create(openShiftClient, openShiftClient.getNamespace(), isOpenShift(openShiftClient)); CachingSchemaProvider schemaProvider = new CachingSchemaProvider(); schemaApi.watchSchema(schemaProvider, options.getResyncInterval()); Kubernetes kubernetes = new KubernetesHelper(openShiftClient, options.getTemplateDir(), options.getInfraUuid()); BrokerSetGenerator clusterGenerator = new TemplateBrokerSetGenerator(kubernetes, options); EventLogger eventLogger = options.isEnableEventLogger() ? new KubeEventLogger(openShiftClient, openShiftClient.getNamespace(), Clock.systemUTC(), "standard-controller") : new LogEventLogger(); Metrics metrics = new Metrics(); Vertx vertx = Vertx.vertx(); BrokerClientFactory brokerClientFactory = new MutualTlsBrokerClientFactory(vertx, options.getCertDir()); addressController = new AddressController( options, new ConfigMapAddressApi(openShiftClient, options.getInfraUuid()), kubernetes, clusterGenerator, eventLogger, schemaProvider, vertx, metrics, new RandomBrokerIdGenerator(), brokerClientFactory); log.info("Starting standard controller for " + options.getAddressSpace()); addressController.start(); httpServer = new HTTPServer( 8889, metrics); httpServer.start(); }