diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
index 18308defdbd17a8bd5837fef98d92d04e0014ed4..29abf999564110a0d6aca109f55f439c72b7031c 100644
--- a/.settings/org.eclipse.core.resources.prefs
+++ b/.settings/org.eclipse.core.resources.prefs
@@ -1,6 +1,6 @@
 eclipse.preferences.version=1
-encoding//src/main/java=utf-8
-encoding//src/main/resources=utf-8
-encoding//src/test/java=utf-8
-encoding//src/test/resources=utf-8
+encoding//src/main/java=UTF-8
+encoding//src/main/resources=UTF-8
+encoding//src/test/java=UTF-8
+encoding//src/test/resources=UTF-8
 encoding/<project>=UTF-8
diff --git a/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceOperator.java b/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceOperator.java
index 91411720523338e30930fc66e946d2932aed80ef..f290bae9ddccab5357513757a71f0d1169a2f11a 100644
--- a/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceOperator.java
+++ b/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceOperator.java
@@ -371,8 +371,15 @@ public class SylvaMDResourceOperator {
     createEmptyFile(deploymentFolder + "/secrets.yaml");
 
     // Step 3: Modify values.yaml using SylvaMDResourceSpec
-    populateAndModifyValuesYaml(namespace, "values.sylvamd.configmaps.osl.etsi.org",
-        deploymentFolder + "/values.yaml", resourceClone.getSpec());
+    
+    if ( resourceClone.getSpec().getValuesyaml() != null ) {
+      populateFileFromText(namespace, resourceClone.getSpec().getValuesyaml(),
+          deploymentFolder + "/values.yaml");      
+    }else {
+      populateAndModifyValuesYaml(namespace, "values.sylvamd.configmaps.osl.etsi.org",
+          deploymentFolder + "/values.yaml", resourceClone.getSpec());      
+    }
+    
 
     // Step 4: Populate kustomization.yaml and secrets.yaml from ConfigMaps
     populateFileFromConfigMap(namespace, "kustomization.sylvamd.configmaps.osl.etsi.org",
@@ -487,6 +494,22 @@ public class SylvaMDResourceOperator {
       log.error("Error writing to file: {}", filePath, e);
     }
   }
+  
+
+  private void populateFileFromText(String namespace, String text, String filePath) {
+    try {
+
+      if (text != null ) {
+        String content = text;
+        Files.write(Paths.get(filePath), content.getBytes());
+        log.info("Populated file {} from text {}", filePath, text);
+      } else {
+        log.error("Failed to write text: {}", text);
+      }
+    } catch (IOException e) {
+      log.error("Error writing to file: {}", filePath, e);
+    }
+  }
 
   // Execute the shell script to apply the workload with the working directory set to
   // /opt/sylva-core
diff --git a/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceSpec.java b/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceSpec.java
index 742740bc34cef9298e74542f89a9342cf79cf534..25d40eb72d9a23f7df8c707e28bdef593847fb0b 100644
--- a/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceSpec.java
+++ b/src/main/java/org/etsi/osl/controllers/sylva/SylvaMDResourceSpec.java
@@ -26,6 +26,7 @@ public class SylvaMDResourceSpec {
 
   private int clusterControlPlaneReplicas;
   private int clusterMd0Replicas;
+  private String valuesyaml;
   
   
 }
diff --git a/src/main/resources/SylvaMDResourceOperator.yaml b/src/main/resources/SylvaMDResourceOperator.yaml
index 6d3308b8fa4a4cdde4453e6f06568d0d853b8f05..46cab1aefb0c40d51f8e80db0107b099da71f321 100644
--- a/src/main/resources/SylvaMDResourceOperator.yaml
+++ b/src/main/resources/SylvaMDResourceOperator.yaml
@@ -20,6 +20,8 @@ spec:
             spec:
               type: object
               properties:
+                valuesyaml:
+                  type: string
                 clusterControlPlaneReplicas:
                   type: string
                 clusterMd0Replicas:
diff --git a/src/main/resources/crorder_example_valuesyaml.yaml b/src/main/resources/crorder_example_valuesyaml.yaml
new file mode 100644
index 0000000000000000000000000000000000000000..5b5c64e7be656dfe1c1b37868448f41a9d1247af
--- /dev/null
+++ b/src/main/resources/crorder_example_valuesyaml.yaml
@@ -0,0 +1,54 @@
+apiVersion: controllers.osl.etsi.org/v1alpha1
+kind: SylvaMDResource
+metadata:
+  name: wc67890-bbccdd
+spec:
+  valuesyaml: |
+    ---
+    cluster:
+
+      capi_providers:
+        infra_provider: capo
+        bootstrap_provider: cabpr
+
+      capo:
+        image_key: ubuntu-jammy-plain-rke2-1-28-8  # OpenStack Glance image (key of image in sylva_diskimagebuilder_images/os_images)
+        ssh_key_name: sylva # OpenStack Nova SSH keypair is provided by runner context in CI
+        network_id: 7b490a0c-0f5c-4475-a436-e4bcbecc7f5e # OpenStack Neutron network id is provided by runner context in CI
+        flavor_name: cpu8.m16384.d40g
+        control_plane_az:
+          - nova
+
+      machine_deployments:
+        md0:
+          replicas: 2
+          capo:
+            failure_domain: nova
+            flavor_name: cpu8.m16384.d40g
+
+      control_plane_replicas: 1
+
+    openstack:
+      control_plane_affinity_policy: soft-anti-affinity
+      storageClass:
+        name: "rbd1"
+        type: "rbd1"
+
+    proxies:
+      http_proxy: ""
+      https_proxy: ""
+      no_proxy: ""
+
+    ntp:
+      enabled: false
+      servers:
+      # - 1.2.3.4
+      # - 1.2.3.5
+
+    sylva_diskimagebuilder_images:
+     ubuntu-jammy-plain-rke2-1-28-8:
+        enabled: true
+
+     ubuntu-jammy-plain-kubeadm-1-28-9:
+        enabled: true
+
diff --git a/src/main/resources/values.sylvamd.configmaps.osl.etsi.org b/src/main/resources/values.sylvamd.configmaps.osl.etsi.org
index 68743f326839754ea9c84c26fdd1d51dab428679..ccc92b3be7f0fa5ee9213e2e7ea9424c1835436e 100644
--- a/src/main/resources/values.sylvamd.configmaps.osl.etsi.org
+++ b/src/main/resources/values.sylvamd.configmaps.osl.etsi.org
@@ -53,42 +53,3 @@ data:
      ubuntu-jammy-plain-kubeadm-1-28-9:
         enabled: true
 
-    units:
-      coredns:
-        kustomization_spec:
-          patches:
-            - target:
-                kind: ConfigMap
-              patch: |
-                - op: replace
-                  path: /data/Corefile
-                  value: |
-                        ${CLUSTER_DOMAIN}:53 {
-                            errors
-                            forward ${CLUSTER_DOMAIN} ${CLUSTER_VIRTUAL_IP}
-                        }
-                        .:53 {
-                            errors
-                            health {
-                               lameduck 5s
-                            }
-                            ready
-                            kubernetes cluster.local in-addr.arpa ip6.arpa {
-                               pods insecure
-                               fallthrough in-addr.arpa ip6.arpa
-                               ttl 30
-                            }
-                            prometheus :9153
-                            forward . /etc/resolv.conf {
-                               max_concurrent 1000
-                            }
-                            cache 60
-                            loop
-                            reload
-                            loadbalance
-                            hosts {
-                              10.1.3.2 glance.pnet nova.pnet neutron.pnet horizon.pnet cinder.pnet novncproxy.pnet keystone.pnet heat-api.pnet
-                              fallthrough
-                              fallthrough
-                            }
-                        }