From e447a944dce88e3eb0704549ce0e30dca3fdff09 Mon Sep 17 00:00:00 2001 From: "Michael N. Lipp" Date: Thu, 30 Jan 2025 16:55:54 +0100 Subject: [PATCH] Generate metaData even if only cloudInit is specified. --- .../vmoperator/manager/runnerConfig.ftl.yaml | 6 +----- .../org/jdrupes/vmoperator/manager/Reconciler.java | 13 +++++++------ 2 files changed, 8 insertions(+), 11 deletions(-) diff --git a/org.jdrupes.vmoperator.manager/resources/org/jdrupes/vmoperator/manager/runnerConfig.ftl.yaml b/org.jdrupes.vmoperator.manager/resources/org/jdrupes/vmoperator/manager/runnerConfig.ftl.yaml index 214b5b8d0..8a50a5e74 100644 --- a/org.jdrupes.vmoperator.manager/resources/org/jdrupes/vmoperator/manager/runnerConfig.ftl.yaml +++ b/org.jdrupes.vmoperator.manager/resources/org/jdrupes/vmoperator/manager/runnerConfig.ftl.yaml @@ -58,11 +58,7 @@ data: # Forward the cloud-init data if provided <#if spec.cloudInit??> cloudInit: - <#if spec.cloudInit.metaData??> - metaData: ${ toJson(adjustCloudInitMeta(spec.cloudInit.metaData, cr.metadata())) } - <#else> - metaData: {} - + metaData: ${ toJson(adjustCloudInitMeta(spec.cloudInit.metaData!{}, cr.metadata())) } <#if spec.cloudInit.userData??> userData: ${ toJson(spec.cloudInit.userData) } <#else> 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 3fa2ffe3d..641247a2d 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 @@ -29,7 +29,9 @@ import freemarker.template.TemplateExceptionHandler; import freemarker.template.TemplateHashModel; import freemarker.template.TemplateMethodModelEx; +import freemarker.template.TemplateModel; import freemarker.template.TemplateModelException; +import freemarker.template.utility.DeepUnwrap; import io.kubernetes.client.custom.Quantity; import io.kubernetes.client.openapi.ApiException; import io.kubernetes.client.openapi.models.V1ObjectMeta; @@ -53,7 +55,6 @@ import org.jdrupes.vmoperator.manager.events.ResetVm; import org.jdrupes.vmoperator.manager.events.VmChannel; import org.jdrupes.vmoperator.manager.events.VmDefChanged; -import org.jdrupes.vmoperator.util.DataPath; import org.jdrupes.vmoperator.util.ExtendedObjectWrapper; import org.jgrapes.core.Channel; import org.jgrapes.core.Component; @@ -354,8 +355,9 @@ public Object exec(@SuppressWarnings("rawtypes") List arguments) return ""; } try { - var imageUri = new URI("file://" + Constants.IMAGE_REPO_PATH - + "/").resolve(image); + var imageUri + = new URI("file://" + Constants.IMAGE_REPO_PATH + "/") + .resolve(image); if ("file".equals(imageUri.getScheme())) { return imageUri.getPath(); } @@ -374,9 +376,8 @@ public Object exec(@SuppressWarnings("rawtypes") List arguments) public Object exec(@SuppressWarnings("rawtypes") List arguments) throws TemplateModelException { @SuppressWarnings("unchecked") - var res = (Map) DataPath - .deepCopy(((AdapterTemplateModel) arguments.get(0)) - .getAdaptedObject(Object.class)); + var res = new HashMap<>((Map) DeepUnwrap + .unwrap((TemplateModel) arguments.get(0))); var metadata = (V1ObjectMeta) ((AdapterTemplateModel) arguments.get(1)) .getAdaptedObject(Object.class);