diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/ConfigMapReconciler.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/ConfigMapReconciler.java index 340a3cd..754669d 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/ConfigMapReconciler.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/ConfigMapReconciler.java @@ -32,6 +32,9 @@ import java.io.IOException; import java.io.StringWriter; import java.util.Map; import java.util.logging.Logger; +import static org.jdrupes.vmoperator.manager.Constants.APP_NAME; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_NAME; +import org.jdrupes.vmoperator.util.K8s; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; @@ -98,8 +101,8 @@ import org.yaml.snakeyaml.constructor.SafeConstructor; DynamicKubernetesObject newCm) { ListOptions listOpts = new ListOptions(); listOpts.setLabelSelector( - "app.kubernetes.io/managed-by=" + Constants.VM_OP_NAME + "," - + "app.kubernetes.io/name=" + Constants.APP_NAME); + "app.kubernetes.io/managed-by=" + VM_OP_NAME + "," + + "app.kubernetes.io/name=" + APP_NAME); // Get pod, selected by label var podApi = new DynamicKubernetesApi("", "v1", "pods", client); var pods = podApi diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Constants.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Constants.java index d1482b6..dd2774e 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Constants.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Constants.java @@ -23,15 +23,6 @@ package org.jdrupes.vmoperator.manager; */ public class Constants { - /** The Constant VM_OP_NAME. */ - public static final String VM_OP_NAME = "vm-operator"; - - /** The Constant VM_OP_GROUP. */ - public static final String VM_OP_GROUP = "vmoperator.jdrupes.org"; - - /** The Constant VM_OP_KIND_VM. */ - public static final String VM_OP_KIND_VM = "VirtualMachine"; - /** The Constant APP_NAME. */ public static final String APP_NAME = "vm-runner"; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/LoadBalancerReconciler.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/LoadBalancerReconciler.java index a9c0d2b..b8decd8 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/LoadBalancerReconciler.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/LoadBalancerReconciler.java @@ -33,6 +33,8 @@ import java.util.Collections; import java.util.Map; import java.util.Optional; import java.util.logging.Logger; +import org.jdrupes.vmoperator.util.GsonPtr; +import org.jdrupes.vmoperator.util.K8s; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Manager.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Manager.java index 5b55ca8..e26b813 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Manager.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Manager.java @@ -30,7 +30,7 @@ import org.apache.commons.cli.CommandLineParser; import org.apache.commons.cli.DefaultParser; import org.apache.commons.cli.Option; import org.apache.commons.cli.Options; -import static org.jdrupes.vmoperator.manager.Constants.VM_OP_NAME; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_NAME; import org.jdrupes.vmoperator.util.FsdUtils; import org.jgrapes.core.Component; import org.jgrapes.core.Components; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Reconciler.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Reconciler.java index 9777af1..94b79dc 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Reconciler.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/Reconciler.java @@ -43,10 +43,12 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import static org.jdrupes.vmoperator.manager.Constants.VM_OP_GROUP; import org.jdrupes.vmoperator.manager.VmDefChanged.Type; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_GROUP; import org.jdrupes.vmoperator.util.Convertions; import org.jdrupes.vmoperator.util.ExtendedObjectWrapper; +import org.jdrupes.vmoperator.util.GsonPtr; +import org.jdrupes.vmoperator.util.K8s; import org.jgrapes.core.Channel; import org.jgrapes.core.Component; import org.jgrapes.core.annotation.Handler; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/StatefuleSetReconciler.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/StatefuleSetReconciler.java index 6f6d09c..94764ad 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/StatefuleSetReconciler.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/StatefuleSetReconciler.java @@ -29,6 +29,8 @@ import java.io.IOException; import java.io.StringWriter; import java.util.Map; import java.util.logging.Logger; +import org.jdrupes.vmoperator.util.GsonPtr; +import org.jdrupes.vmoperator.util.K8s; import org.yaml.snakeyaml.LoaderOptions; import org.yaml.snakeyaml.Yaml; import org.yaml.snakeyaml.constructor.SafeConstructor; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/VmWatcher.java b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/VmWatcher.java index a304c0b..7ecce4c 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/VmWatcher.java +++ b/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/VmWatcher.java @@ -44,9 +44,11 @@ import java.util.Map; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.logging.Level; -import static org.jdrupes.vmoperator.manager.Constants.VM_OP_GROUP; -import static org.jdrupes.vmoperator.manager.Constants.VM_OP_KIND_VM; +import static org.jdrupes.vmoperator.manager.Constants.APP_NAME; import org.jdrupes.vmoperator.manager.VmDefChanged.Type; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_GROUP; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_KIND_VM; +import static org.jdrupes.vmoperator.util.Constants.VM_OP_NAME; import org.jgrapes.core.Channel; import org.jgrapes.core.Component; import org.jgrapes.core.Components; @@ -132,7 +134,7 @@ public class VmWatcher extends Component { for (var version : vmOpApiVersions) { coa.getAPIResources(VM_OP_GROUP, version) .getResources().stream() - .filter(r -> Constants.VM_OP_KIND_VM.equals(r.getKind())) + .filter(r -> VM_OP_KIND_VM.equals(r.getKind())) .findFirst() .ifPresent(crd -> watchVmDefs(crd, version)); } @@ -148,15 +150,15 @@ public class VmWatcher extends Component { // Get all known CR instances. coa.getAPIResources(VM_OP_GROUP, version) .getResources().stream() - .filter(r -> Constants.VM_OP_KIND_VM.equals(r.getKind())) + .filter(r -> VM_OP_KIND_VM.equals(r.getKind())) .findFirst() .ifPresent(crd -> known.addAll(getKnown(client, crd, version))); } ListOptions opts = new ListOptions(); opts.setLabelSelector( - "app.kubernetes.io/managed-by=" + Constants.VM_OP_NAME + "," - + "app.kubernetes.io/name=" + Constants.APP_NAME); + "app.kubernetes.io/managed-by=" + VM_OP_NAME + "," + + "app.kubernetes.io/name=" + APP_NAME); for (String resource : List.of("apps/v1/statefulsets", "v1/configmaps", "v1/secrets")) { var resParts = new LinkedList<>(List.of(resource.split("/"))); diff --git a/org.jdrupes.vmoperator.util/.settings/org.eclipse.jdt.core.prefs b/org.jdrupes.vmoperator.util/.settings/org.eclipse.jdt.core.prefs index 4250f30..17fc9079 100644 --- a/org.jdrupes.vmoperator.util/.settings/org.eclipse.jdt.core.prefs +++ b/org.jdrupes.vmoperator.util/.settings/org.eclipse.jdt.core.prefs @@ -1,5 +1,5 @@ # -#Fri Sep 01 16:56:14 CEST 2023 +#Thu Sep 14 09:53:57 CEST 2023 org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert diff --git a/org.jdrupes.vmoperator.util/build.gradle b/org.jdrupes.vmoperator.util/build.gradle index 0dac0c5..f20afcb 100644 --- a/org.jdrupes.vmoperator.util/build.gradle +++ b/org.jdrupes.vmoperator.util/build.gradle @@ -10,4 +10,5 @@ plugins { dependencies { implementation 'org.freemarker:freemarker:[2.3.32,2.4)' + implementation 'io.kubernetes:client-java:[18.0.0,19)' } diff --git a/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/Constants.java b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/Constants.java new file mode 100644 index 0000000..14fad65 --- /dev/null +++ b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/Constants.java @@ -0,0 +1,37 @@ +/* + * VM-Operator + * Copyright (C) 2023 Michael N. Lipp + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +package org.jdrupes.vmoperator.util; + +/** + * Some constants. + */ +public class Constants { + + /** The Constant VM_OP_NAME. */ + public static final String VM_OP_NAME = "vm-operator"; + + /** The Constant VM_OP_GROUP. */ + public static final String VM_OP_GROUP = "vmoperator.jdrupes.org"; + + /** The Constant VM_OP_CRD_NAME. */ + public static final String VM_OP_CRD_NAME = "vms." + VM_OP_GROUP; + + /** The Constant VM_OP_KIND_VM. */ + public static final String VM_OP_KIND_VM = "VirtualMachine"; +} diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/GsonPtr.java b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/GsonPtr.java similarity index 99% rename from org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/GsonPtr.java rename to org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/GsonPtr.java index 7d0f403..22a76f3 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/GsonPtr.java +++ b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/GsonPtr.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.jdrupes.vmoperator.manager; +package org.jdrupes.vmoperator.util; import com.google.gson.JsonArray; import com.google.gson.JsonElement; diff --git a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/K8s.java b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/K8s.java similarity index 99% rename from org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/K8s.java rename to org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/K8s.java index efc304e..539a870 100644 --- a/org.jdrupes.vmoperator.manager/src/org/jdrupes/vmoperator/manager/K8s.java +++ b/org.jdrupes.vmoperator.util/src/org/jdrupes/vmoperator/util/K8s.java @@ -16,7 +16,7 @@ * along with this program. If not, see . */ -package org.jdrupes.vmoperator.manager; +package org.jdrupes.vmoperator.util; import io.kubernetes.client.common.KubernetesListObject; import io.kubernetes.client.common.KubernetesObject;