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();
}