You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by ma...@apache.org on 2023/03/01 21:52:00 UTC
[camel-karavan] branch main updated: operator: Optimize and use Kubernetes approach for GVK validation in isTektonInstalled func (#667)
This is an automated email from the ASF dual-hosted git repository.
marat pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel-karavan.git
The following commit(s) were added to refs/heads/main by this push:
new 41f0fc03 operator: Optimize and use Kubernetes approach for GVK validation in isTektonInstalled func (#667)
41f0fc03 is described below
commit 41f0fc0358cdb28c601088a5af178b09db6fab4e
Author: Dmitry Volodin <dm...@gmail.com>
AuthorDate: Thu Mar 2 00:51:55 2023 +0300
operator: Optimize and use Kubernetes approach for GVK validation in isTektonInstalled func (#667)
* operator: Optimize and use Kubernetes approach for GVK validation in isTektonInstalled func
Signed-off-by: Dmitry Volodin <dm...@gmail.com>
* Fix small typo in operator Makefile
Signed-off-by: Dmitry Volodin <dm...@gmail.com>
---------
Signed-off-by: Dmitry Volodin <dm...@gmail.com>
---
karavan-operator/Makefile | 2 +-
.../org/apache/camel/karavan/operator/Utils.java | 31 ++++++++++------------
2 files changed, 15 insertions(+), 18 deletions(-)
diff --git a/karavan-operator/Makefile b/karavan-operator/Makefile
index c4c4d627..3d4d999f 100644
--- a/karavan-operator/Makefile
+++ b/karavan-operator/Makefile
@@ -74,7 +74,7 @@ deploy: ## Deploy controller to the K8s cluster specified in ~/.kube/config.
undeploy: ## Undeploy controller from the K8s cluster specified in ~/.kube/config.
kubectl delete -f target/kubernetes/kubernetes.yml
-##@Bundle
+##@ Bundle
.PHONY: bundle
bundle: ## Generate bundle manifests and metadata, then validate generated files.
## marker
diff --git a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Utils.java b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Utils.java
index 5a20f592..425f83d3 100644
--- a/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Utils.java
+++ b/karavan-operator/src/main/java/org/apache/camel/karavan/operator/Utils.java
@@ -16,14 +16,14 @@
*/
package org.apache.camel.karavan.operator;
-import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinition;
-import io.fabric8.kubernetes.api.model.apiextensions.v1.CustomResourceDefinitionList;
+import io.fabric8.kubernetes.api.model.APIResourceList;
import io.fabric8.kubernetes.client.KubernetesClient;
import io.fabric8.openshift.client.OpenShiftClient;
+import io.fabric8.tekton.pipeline.v1beta1.Pipeline;
+import io.fabric8.tekton.pipeline.v1beta1.Task;
import org.eclipse.microprofile.config.ConfigProvider;
import java.util.HashMap;
-import java.util.List;
import java.util.Map;
public class Utils {
@@ -40,20 +40,17 @@ public class Utils {
}
public static boolean isTektonInstalled(KubernetesClient client) {
- CustomResourceDefinitionList list = client.apiextensions().v1().customResourceDefinitions().list();
- if (list != null) {
- List<CustomResourceDefinition> items = list.getItems();
- long crds = items.stream().filter(crd -> crd.getMetadata().getName().equalsIgnoreCase("pipelines.tekton.dev")
- || crd.getMetadata().getName().equalsIgnoreCase("tasks.tekton.dev")
- ).count();
- if (crds == 2) {
- if (isOpenShift(client)) {
- long oper = client.adapt(OpenShiftClient.class).operatorHub().subscriptions().list().getItems().stream()
- .filter(sub -> sub.getMetadata().getName().contains("openshift-pipelines-operator")).count();
- return oper > 0;
- } else {
- return true;
- }
+ Pipeline pipeline = new Pipeline();
+ Task task = new Task();
+ APIResourceList kinds = client.getApiResources(pipeline.getApiVersion());
+ if (kinds != null && kinds.getResources().stream().filter(res -> res.getKind().equalsIgnoreCase(pipeline.getKind())).findAny().isPresent() &&
+ kinds.getResources().stream().filter(res -> res.getKind().equalsIgnoreCase(task.getKind())).findAny().isPresent()) {
+ if (isOpenShift(client)) {
+ long oper = client.adapt(OpenShiftClient.class).operatorHub().subscriptions().list().getItems().stream()
+ .filter(sub -> sub.getMetadata().getName().contains("openshift-pipelines-operator")).count();
+ return oper > 0;
+ } else {
+ return true;
}
}
return false;