use of io.fabric8.kubernetes.client.Client in project vertx-openshift-it by cescoffier.
the class MqttIT method initialize.
@BeforeClass
public static void initialize() throws IOException {
File template = new File("target/classes/META-INF/fabric8/openshift.yml");
ensureThat(String.format("template file %s can be deployed", template), () -> deploymentAssistant.deploy("mqtt-broker", template));
ensureThat("the mqtt server is up and running", () -> await("Waiting for the mqtt server to be ready..").atMost(5, TimeUnit.MINUTES).untilAsserted(() -> {
Service service = client.services().withName("mqtt-secured-service").get();
assertThat(service).isNotNull();
assertThat(client.deploymentConfigs().withName("vertx-mqtt-it").isReady()).isTrue();
}));
mqttRoute = securedUrlForRoute(client.routes().withName("mqtt-secured-route").get()).getHost();
/* on OSO, the only way to test the insecure MQTT client connecting to server running in OpenShift
is through port forwarding. */
String pod = OC.executeWithQuotes(false, "get", "po", "--selector", "app=vertx-mqtt-it", "-o", "jsonpath='{.items[0].metadata.name}'").replace("'", "");
p1 = Runtime.getRuntime().exec("oc port-forward " + pod + " :1883");
BufferedReader reader = new BufferedReader(new InputStreamReader(p1.getInputStream()));
Pattern pattern = Pattern.compile(".*:(\\d+)");
Matcher matcher = pattern.matcher(reader.readLine());
String podString = "";
while (matcher.find()) {
podString = matcher.group(1);
}
port = Integer.parseInt(podString);
vertx = Vertx.vertx();
mqttSecuredClient = clientSetup(MqttClient.create(vertx, mqttClientOptions));
mqttInsecureClient = clientSetup(MqttClient.create(vertx));
}
use of io.fabric8.kubernetes.client.Client in project vertx-openshift-it by cescoffier.
the class ServiceDiscoveryIT method initialize.
@BeforeClass
public static void initialize() throws IOException {
initializeServiceAccount();
deploymentAssistant.deploy("database", new File("src/test/resources/templates/database.yml"));
deploymentAssistant.awaitPodReadinessOrFail(pod -> "my-database".equals(pod.getMetadata().getLabels().get("app")));
SortedMap<String, File> dependencies = new TreeMap<>();
dependencies.put("A-Endpoints", new File("../some-http-services/target/classes/META-INF/fabric8/openshift.yml"));
dependencies.put("B-Gateway", new File("../discovery-gateway/target/classes/META-INF/fabric8/openshift.yml"));
dependencies.forEach((name, template) -> ensureThat(String.format("template file %s can be deployed", template), () -> deploymentAssistant.deploy(name, template)));
ensureThat("the gateway is up and running", () -> await().atMost(5, TimeUnit.MINUTES).catchUncaughtExceptions().untilAsserted(() -> {
Service service = client.services().withName("discovery-gateway").get();
assertThat(service).isNotNull();
route = client.routes().withName("discovery-gateway").get();
assertThat(route).isNotNull();
get(urlForRoute(route, "/health")).then().statusCode(200);
}));
someServiceHelper = new OpenShiftHelper(client, "some-http-services");
}
use of io.fabric8.kubernetes.client.Client in project vertx-openshift-it by cescoffier.
the class MapsIT method initialize.
@BeforeClass
public static void initialize() throws IOException {
initializeServiceAccount();
SortedMap<String, File> dependencies = new TreeMap<>();
dependencies.put("A-Maps", new File("../" + APPLICATION_NAME + "/target/classes/META-INF/fabric8/openshift.yml"));
dependencies.forEach((name, template) -> Ensure.ensureThat(String.format("template file %s can be deployed", template), () -> deploymentAssistant.deploy(name, template)));
Ensure.ensureThat("The maps app is up and running", () -> await().atMost(5, TimeUnit.MINUTES).catchUncaughtExceptions().untilAsserted(() -> {
Service service = client.services().withName(APPLICATION_NAME).get();
Assertions.assertThat(service).isNotNull();
route = client.routes().withName(APPLICATION_NAME).get();
Assertions.assertThat(route).isNotNull();
get(Kube.urlForRoute(route, "/health")).then().statusCode(200);
}));
clusterMapsHelper = new OpenShiftHelper(client, APPLICATION_NAME);
}
use of io.fabric8.kubernetes.client.Client in project vertx-openshift-it by cescoffier.
the class WebSessionIT method initialize.
@BeforeClass
public static void initialize() throws IOException {
initializeServiceAccount();
SortedMap<String, File> dependencies = new TreeMap<>();
dependencies.put("A-WebSession", new File("../" + APPLICATION_NAME + "/target/classes/META-INF/fabric8/openshift.yml"));
dependencies.forEach((name, template) -> Ensure.ensureThat(String.format("template file %s can be deployed", template), () -> deploymentAssistant.deploy(name, template)));
Ensure.ensureThat("The web-session app is up and running", () -> await().atMost(5, TimeUnit.MINUTES).catchUncaughtExceptions().untilAsserted(() -> {
Service service = client.services().withName(APPLICATION_NAME).get();
Assertions.assertThat(service).isNotNull();
route = client.routes().withName(APPLICATION_NAME).get();
Assertions.assertThat(route).isNotNull();
get(Kube.urlForRoute(route, "/health")).then().statusCode(200);
}));
clusterWebSessionHelper = new OpenShiftHelper(client, APPLICATION_NAME);
}
use of io.fabric8.kubernetes.client.Client in project vertx-openshift-it by cescoffier.
the class Http2IT method testGRPC.
@Test
public void testGRPC() throws Exception {
Assertions.assertThat(client).deployments().pods().isPodReadyForPeriod();
String host = securedUrlForRoute(client.routes().withName("hello").get()).getHost();
System.out.println("Host: " + host);
System.out.println("Port: " + 443);
ManagedChannel channel = VertxChannelBuilder.forAddress(vertx, host, 443).useSsl(options -> options.setSsl(true).setUseAlpn(true).setTrustAll(true)).build();
GreeterGrpc.GreeterVertxStub stub = GreeterGrpc.newVertxStub(channel);
HelloRequest request = HelloRequest.newBuilder().setName("OpenShift").build();
AtomicReference<String> result = new AtomicReference<>();
System.out.println("Sending request...");
stub.sayHello(request, asyncResponse -> {
System.out.println("Got result");
if (asyncResponse.succeeded()) {
System.out.println("Succeeded " + asyncResponse.result().getMessage());
result.set(asyncResponse.result().getMessage());
} else {
asyncResponse.cause().printStackTrace();
}
});
await().atMost(5, TimeUnit.MINUTES).untilAtomic(result, is(notNullValue()));
assertThat(result.get()).contains("Hello OpenShift");
}
Aggregations