ServiceDiscovery discovery = ServiceDiscovery.create(globals.getVertx()); if(new File("/var/run/secrets/kubernetes.io/serviceaccount/token").exists()) discovery.getDelegate().registerServiceImporter(new KubernetesServiceImporter(), new JsonObject()); globals.setGlobal(ServiceDiscovery.class, discovery);
@Test public void testInitialRetrieval(TestContext tc) { Async async = tc.async(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "default"), ar -> { if (ar.failed()) { tc.fail(ar.cause()); } else { discovery.getRecords(s -> true, res -> { if (res.failed()) { tc.fail(res.cause()); } else { tc.assertEquals(2, res.result().size()); async.complete(); } }); } }); }
@Test public void testInitialRetrieval(TestContext tc) { Async async = tc.async(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "default"), ar -> { if (ar.failed()) { tc.fail(ar.cause()); } else { discovery.getRecords(s -> true, res -> { if (res.failed()) { tc.fail(res.cause()); } else { tc.assertEquals(2, res.result().size()); async.complete(); } }); } }); }
/** * Reproduce issue https://github.com/vert-x3/vertx-service-discovery/issues/96. */ @Test public void testWatchWithDeletion() { AtomicBoolean done = new AtomicBoolean(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "issue96"), ar -> done.set(ar.succeeded())); await().untilAtomic(done, is(true)); await().until(() -> { List<Record> records = getRecordsBlocking(discovery); try { assertThatListDoesNotContain(records, "hello-minikube"); return true; } catch (Throwable e) { return false; } }); }
/** * Reproduce issue https://github.com/vert-x3/vertx-service-discovery/issues/96. */ @Test public void testWatchWithDeletion() { AtomicBoolean done = new AtomicBoolean(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "issue96"), ar -> done.set(ar.succeeded())); await().untilAtomic(done, is(true)); await().until(() -> { List<Record> records = getRecordsBlocking(discovery); try { assertThatListDoesNotContain(records, "hello-minikube"); return true; } catch (Throwable e) { return false; } }); }
@Test public void testWatch() { AtomicBoolean done = new AtomicBoolean(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "default"), ar -> done.set(ar.succeeded())); await().untilAtomic(done, is(true)); await().until(() -> { List<Record> records = getRecordsBlocking(discovery); try { assertThatListContains(records, "service3"); assertThatListDoesNotContain(records, "my-service"); assertThatListContains(records, "my-http-service"); return true; } catch (Throwable e) { return false; } }); }
@Test public void testWatch() { AtomicBoolean done = new AtomicBoolean(); ServiceDiscovery discovery = ServiceDiscovery.create(vertx, new ServiceDiscoveryOptions().setAutoRegistrationOfImporters(false)); discovery.registerServiceImporter(new KubernetesServiceImporter(), config().copy().put("namespace", "default"), ar -> done.set(ar.succeeded())); await().untilAtomic(done, is(true)); await().until(() -> { List<Record> records = getRecordsBlocking(discovery); try { assertThatListContains(records, "service3"); assertThatListDoesNotContain(records, "my-service"); assertThatListContains(records, "my-http-service"); return true; } catch (Throwable e) { return false; } }); }