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 - } - }