You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2022/05/13 05:27:33 UTC
[camel] branch main updated: Fixed login for Openshift and Minikube (#7608)
This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 67d17887368 Fixed login for Openshift and Minikube (#7608)
67d17887368 is described below
commit 67d17887368b78e70d720c7cb73fb62298c29cb8
Author: Marat Gubaidullin <ma...@gmail.com>
AuthorDate: Fri May 13 01:27:21 2022 -0400
Fixed login for Openshift and Minikube (#7608)
---
.../camel/dsl/jbang/core/commands/Deploy.java | 19 +++++++++--------
.../camel/dsl/jbang/core/commands/Image.java | 22 ++++++++------------
.../dsl/jbang/core/commands/KubernetesHelper.java | 24 ++++++++++++++++++++++
.../camel/dsl/jbang/core/commands/Undeploy.java | 17 ++++++++-------
4 files changed, 54 insertions(+), 28 deletions(-)
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Deploy.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Deploy.java
index d0a34a7826a..a88072e5a1c 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Deploy.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Deploy.java
@@ -27,8 +27,6 @@ import io.fabric8.kubernetes.client.KubernetesClientException;
import io.fabric8.openshift.api.model.Route;
import io.fabric8.openshift.client.DefaultOpenShiftClient;
import io.fabric8.openshift.client.OpenShiftClient;
-import io.fabric8.openshift.client.OpenShiftConfig;
-import io.fabric8.openshift.client.OpenShiftConfigBuilder;
import picocli.CommandLine;
@CommandLine.Command(name = "deploy", description = "Deploy resources to Kubernetes, OpenShift, Minikube")
@@ -60,6 +58,10 @@ public class Deploy implements Callable<Integer> {
private String server;
@CommandLine.Option(names = { "--token" }, description = "Token")
private String token;
+ @CommandLine.Option(names = { "-u", "--username" }, description = "Username")
+ private String username;
+ @CommandLine.Option(names = { "-p", "--password" }, description = "Password")
+ private String password;
@Override
public Integer call() throws Exception {
@@ -76,9 +78,8 @@ public class Deploy implements Callable<Integer> {
System.out.println("Generating Route...");
Route route = KubernetesHelper.createRoute(namespace, name, version, containerPort);
- OpenShiftConfig config
- = new OpenShiftConfigBuilder().withMasterUrl(server).withOauthToken(token).withTrustCerts(true).build();
- try (OpenShiftClient client = new DefaultOpenShiftClient(config)) {
+ try (OpenShiftClient client
+ = new DefaultOpenShiftClient(KubernetesHelper.getOpenShiftConfig(server, username, password, token))) {
System.out.println("Creating Deployment in Openshift");
client.apps().deployments().inNamespace(namespace).createOrReplace(deployment);
client.services().inNamespace(namespace).delete(service);
@@ -96,13 +97,14 @@ public class Deploy implements Callable<Integer> {
}
}
} else {
- System.out.println("Generating Deployment...");
+ System.out.println("Generating Deployment for " + (minikube ? "Minikube" : "Kubernetes"));
Deployment deployment = KubernetesHelper.createDeployment(namespace, name, image, version, containerPort, replicas);
- System.out.println("Generating Service...");
+ System.out.println("Generating Service " + (minikube ? "Minikube" : "Kubernetes"));
Service service
= KubernetesHelper.createService(namespace, name, version, servicePort, containerPort, minikube, nodePort);
- try (KubernetesClient client = new DefaultKubernetesClient()) {
+ try (KubernetesClient client
+ = new DefaultKubernetesClient(KubernetesHelper.getConfig(server, username, password, token))) {
System.out.println("Creating Deployment in " + (minikube ? "Minikube" : "Kubernetes"));
client.apps().deployments().inNamespace(namespace).createOrReplace(deployment);
client.services().inNamespace(namespace).delete(service);
@@ -110,6 +112,7 @@ public class Deploy implements Callable<Integer> {
client.services().inNamespace(namespace).createOrReplace(service);
} catch (Exception ex) {
System.out.println("ERROR: " + ex.getMessage());
+ ex.printStackTrace();
}
}
return 0;
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Image.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Image.java
index 8708f6bfbdb..8232e7f7c01 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Image.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Image.java
@@ -40,8 +40,6 @@ import io.fabric8.openshift.api.model.BuildConfig;
import io.fabric8.openshift.api.model.ImageStream;
import io.fabric8.openshift.client.DefaultOpenShiftClient;
import io.fabric8.openshift.client.OpenShiftClient;
-import io.fabric8.openshift.client.OpenShiftConfig;
-import io.fabric8.openshift.client.OpenShiftConfigBuilder;
import picocli.CommandLine;
@CommandLine.Command(name = "image", description = "Create Docker and OCI container images")
@@ -67,6 +65,8 @@ public class Image implements Callable<Integer> {
private boolean openshift;
@CommandLine.Option(names = { "--build-config" }, description = "Build in OpenShift using BuildConfig")
private boolean buildConfig;
+ @CommandLine.Option(names = { "--image" }, description = "Image name")
+ private String image;
@CommandLine.Option(names = { "--server" }, description = "Master URL")
private String server;
@CommandLine.Option(names = { "--token" }, description = "Token")
@@ -84,11 +84,12 @@ public class Image implements Callable<Integer> {
@Override
public Integer call() throws Exception {
File jarFile = Paths.get(jar).toFile();
+ image = image == null ? namespace + "/" + name + ":" + version : image;
if (openshift && buildConfig) {
buildInOpenshiftWithBuildConfig(jarFile);
} else {
String host = openshift ? getOpenshiftRegistryHost() : registry;
- String imageReference = host + "/" + namespace + "/" + name + ":" + version;
+ String imageReference = host + "/" + image;
Jib.from(from)
.addLayer(Arrays.asList(Paths.get(jar)), "/deployments/")
.setWorkingDirectory(AbsoluteUnixPath.get("/deployments"))
@@ -99,21 +100,16 @@ public class Image implements Callable<Integer> {
}
private String getOpenshiftRegistryHost() {
- OpenShiftConfig config
- = new OpenShiftConfigBuilder().withMasterUrl(server).withOauthToken(token).withNamespace(namespace)
- .withTrustCerts(true).build();
- try (OpenShiftClient client = new DefaultOpenShiftClient(config)) {
- String host = client.routes().inNamespace("openshift-image-registry").list().getItems().get(0).getSpec().getHost();
- return host + "/" + namespace + "/" + name + ":" + version;
+ try (OpenShiftClient client
+ = new DefaultOpenShiftClient(KubernetesHelper.getOpenShiftConfig(server, username, password, token))) {
+ return client.routes().inNamespace("openshift-image-registry").list().getItems().get(0).getSpec().getHost();
}
}
private void buildInOpenshiftWithBuildConfig(File jarFile) throws InvalidImageReferenceException {
System.out.println("Generating resources...");
- OpenShiftConfig config
- = new OpenShiftConfigBuilder().withMasterUrl(server).withOauthToken(token).withNamespace(namespace)
- .withTrustCerts(true).build();
- try (OpenShiftClient client = new DefaultOpenShiftClient(config)) {
+ try (OpenShiftClient client
+ = new DefaultOpenShiftClient(KubernetesHelper.getOpenShiftConfig(server, username, password, token))) {
ImageStream imageStream = KubernetesHelper.createImageStream(namespace, name, version);
BuildConfig buildConfig
= KubernetesHelper.createBuildConfig(namespace, name, version, jarFile.getName(), sourceImage);
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/KubernetesHelper.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/KubernetesHelper.java
index d79c2e870d4..5cb7327b3cb 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/KubernetesHelper.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/KubernetesHelper.java
@@ -27,6 +27,8 @@ import io.fabric8.kubernetes.api.model.ServicePortBuilder;
import io.fabric8.kubernetes.api.model.ServiceSpecBuilder;
import io.fabric8.kubernetes.api.model.apps.Deployment;
import io.fabric8.kubernetes.api.model.apps.DeploymentBuilder;
+import io.fabric8.kubernetes.client.Config;
+import io.fabric8.kubernetes.client.ConfigBuilder;
import io.fabric8.openshift.api.model.BinaryBuildSource;
import io.fabric8.openshift.api.model.BuildConfig;
import io.fabric8.openshift.api.model.BuildConfigBuilder;
@@ -35,6 +37,8 @@ import io.fabric8.openshift.api.model.ImageStreamBuilder;
import io.fabric8.openshift.api.model.Route;
import io.fabric8.openshift.api.model.RouteBuilder;
import io.fabric8.openshift.api.model.RoutePortBuilder;
+import io.fabric8.openshift.client.OpenShiftConfig;
+import io.fabric8.openshift.client.OpenShiftConfigBuilder;
public final class KubernetesHelper {
@@ -214,4 +218,24 @@ public final class KubernetesHelper {
"app.kubernetes.io/name", name,
"app.kubernetes.io/version", version);
}
+
+ public static OpenShiftConfig getOpenShiftConfig(String server, String username, String password, String token) {
+ if (token != null) {
+ return new OpenShiftConfigBuilder().withMasterUrl(server).withOauthToken(token).withTrustCerts(true).build();
+ } else {
+ return new OpenShiftConfigBuilder().withMasterUrl(server).withUsername(username).withPassword(password)
+ .withTrustCerts(true).build();
+ }
+ }
+
+ public static Config getConfig(String server, String username, String password, String token) {
+ if (token != null && server != null) {
+ return new ConfigBuilder().withMasterUrl(server).withOauthToken(token).withTrustCerts(true).build();
+ } else if (username != null && token != null && server != null) {
+ return new ConfigBuilder().withMasterUrl(server).withUsername(username).withPassword(password).withTrustCerts(true)
+ .build();
+ } else {
+ return new ConfigBuilder().build();
+ }
+ }
}
diff --git a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Undeploy.java b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Undeploy.java
index 03ad0a82203..21effdf524a 100644
--- a/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Undeploy.java
+++ b/dsl/camel-jbang/camel-jbang-core/src/main/java/org/apache/camel/dsl/jbang/core/commands/Undeploy.java
@@ -23,8 +23,6 @@ import io.fabric8.kubernetes.client.DefaultKubernetesClient;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.openshift.client.DefaultOpenShiftClient;
import io.fabric8.openshift.client.OpenShiftClient;
-import io.fabric8.openshift.client.OpenShiftConfig;
-import io.fabric8.openshift.client.OpenShiftConfigBuilder;
import picocli.CommandLine;
@CommandLine.Command(name = "undeploy", description = "Undeploy resources from Kubernetes, OpenShift, Minikube")
@@ -44,14 +42,17 @@ public class Undeploy implements Callable<Integer> {
private String server;
@CommandLine.Option(names = { "--token" }, description = "Token")
private String token;
+ @CommandLine.Option(names = { "-u", "--username" }, description = "Username")
+ private String username;
+ @CommandLine.Option(names = { "-p", "--password" }, description = "Password")
+ private String password;
@Override
public Integer call() throws Exception {
Map labels = KubernetesHelper.getLabels(name, version);
if (openshift) {
- OpenShiftConfig config
- = new OpenShiftConfigBuilder().withMasterUrl(server).withOauthToken(token).withTrustCerts(true).build();
- try (OpenShiftClient client = new DefaultOpenShiftClient(config)) {
+ try (OpenShiftClient client
+ = new DefaultOpenShiftClient(KubernetesHelper.getOpenShiftConfig(server, username, password, token))) {
System.out.println("Deleting Routes...");
client.routes().inNamespace(namespace).withLabels(labels).delete();
System.out.println("Deleting Service...");
@@ -64,13 +65,15 @@ public class Undeploy implements Callable<Integer> {
client.buildConfigs().inNamespace(namespace).withLabels(labels).delete();
}
} else {
- try (KubernetesClient client = new DefaultKubernetesClient()) {
+ try (KubernetesClient client
+ = new DefaultKubernetesClient(KubernetesHelper.getConfig(server, username, password, token))) {
System.out.println("Deleting Service...");
client.services().inNamespace(namespace).withLabels(labels).delete();
System.out.println("Deleting Deployment...");
client.apps().deployments().inNamespace(namespace).withLabels(labels).delete();
} catch (Exception ex) {
- System.out.println("Error Undeploying " + ex.getMessage());
+ System.out.println("Error undeploy " + ex.getMessage());
+ ex.printStackTrace();
}
}
return 0;