diff --git a/src/kubernetes-api/config/crd/bases/l2sm.l2sm.k8s.local_networkedgedevices.yaml b/src/kubernetes-api/config/crd/bases/l2sm.l2sm.k8s.local_networkedgedevices.yaml
index f2f053c97a18ee1fc07987ade772ca1753025a2b..03cb2988ee922d2603644806652b3b7a29b52bd0 100644
--- a/src/kubernetes-api/config/crd/bases/l2sm.l2sm.k8s.local_networkedgedevices.yaml
+++ b/src/kubernetes-api/config/crd/bases/l2sm.l2sm.k8s.local_networkedgedevices.yaml
@@ -83,6 +83,17 @@ spec:
                 - domain
                 - name
                 type: object
+              nodeConfig:
+                description: Node Configuration
+                properties:
+                  ipAddress:
+                    type: string
+                  nodeName:
+                    type: string
+                required:
+                - ipAddress
+                - nodeName
+                type: object
               switchTemplate:
                 description: Template describes the virtual switch pod that will be
                   created.
@@ -4542,6 +4553,7 @@ spec:
                 type: object
             required:
             - networkController
+            - nodeConfig
             - switchTemplate
             type: object
           status:
diff --git a/src/kubernetes-api/internal/controller/networkedgedevice_controller.go b/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
index 0a25f0c2981f6b0c540a455dfbe426d33c5f9f40..943f23a47ef820fedecc39ba741df676b022e956 100644
--- a/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
+++ b/src/kubernetes-api/internal/controller/networkedgedevice_controller.go
@@ -94,11 +94,11 @@ func (r *NetworkEdgeDeviceReconciler) Reconcile(ctx context.Context, req ctrl.Re
 		// The object is being deleted
 		if controllerutil.ContainsFinalizer(netEdgeDevice, l2smFinalizer) {
 			// our finalizer is present, so lets handle any external dependency
-			if err := r.deleteExternalResources(ctx, netEdgeDevice); err != nil {
-				// if fail to delete the external dependency here, return with error
-				// so that it can be retried.
-				return ctrl.Result{}, err
-			}
+			// if err := r.deleteExternalResources(ctx, netEdgeDevice); err != nil {
+			// 	// if fail to delete the external dependency here, return with error
+			// 	// so that it can be retried.
+			// 	return ctrl.Result{}, err
+			// }
 
 			// remove our finalizer from the list and update it.
 			controllerutil.RemoveFinalizer(netEdgeDevice, l2smFinalizer)
@@ -125,11 +125,12 @@ func (r *NetworkEdgeDeviceReconciler) Reconcile(ctx context.Context, req ctrl.Re
 		}
 		log.Info("NED Launched")
 		return ctrl.Result{RequeueAfter: time.Second * 20}, nil
-	} else {
+	}
+	// } else {
 
-		//b, _ := json.Marshal(netEdgeDevice.Spec.Neighbors)
+	// 	//b, _ := json.Marshal(netEdgeDevice.Spec.Neighbors)
 
-	}
+	// }
 
 	return ctrl.Result{}, nil
 }
@@ -159,13 +160,16 @@ func (r *NetworkEdgeDeviceReconciler) SetupWithManager(mgr ctrl.Manager) error {
 		Complete(r)
 }
 
-func (r *NetworkEdgeDeviceReconciler) deleteExternalResources(ctx context.Context, netEdgeDevice *l2smv1.NetworkEdgeDevice) error {
+// func (r *NetworkEdgeDeviceReconciler) deleteExternalResources(ctx context.Context, netEdgeDevice *l2smv1.NetworkEdgeDevice) error {
 
-	return nil
-}
+//		return nil
+//	}
 func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Context, netEdgeDevice *l2smv1.NetworkEdgeDevice) error {
 
-	neighbors := []string{}
+	neighbors := make([]string, len(netEdgeDevice.Spec.Neighbors))
+	for i, neighbor := range netEdgeDevice.Spec.Neighbors {
+		neighbors[i] = neighbor.Domain
+	}
 	nedNeighbors, err := json.Marshal(nedv1.Node{Name: netEdgeDevice.Spec.NodeConfig.NodeName, NodeIP: netEdgeDevice.Spec.NodeConfig.IPAddress, NeighborNodes: neighbors})
 	if err != nil {
 		return err
@@ -198,6 +202,9 @@ func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Contex
 
 	configMap, err := constructConfigMapForNED(netEdgeDevice)
 
+	if err != nil {
+		return fmt.Errorf("could not construct the config map for the network edge device: %v", err)
+	}
 	// Create the ConfigMap in Kubernetes
 	if err := r.Client.Create(ctx, configMap); err != nil {
 		return err
@@ -209,7 +216,7 @@ func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Contex
 		// Define volume mounts to be added to each container
 		volumeMounts := []corev1.VolumeMount{
 			{
-				Name:      "neighbors",
+				Name:      "configurations",
 				MountPath: "/etc/l2sm/",
 				ReadOnly:  true,
 			},
@@ -225,7 +232,7 @@ func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Contex
 		// Define the volume using the created ConfigMap
 		volumes := []corev1.Volume{
 			{
-				Name: "neighbors",
+				Name: "configurations",
 				VolumeSource: corev1.VolumeSource{
 					ConfigMap: &corev1.ConfigMapVolumeSource{
 						LocalObjectReference: corev1.LocalObjectReference{
@@ -236,6 +243,10 @@ func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Contex
 								Key:  "neighbors.json",
 								Path: "neighbors.json",
 							},
+							{
+								Key:  "config.json",
+								Path: "config.json",
+							},
 						},
 					},
 				},
@@ -267,6 +278,7 @@ func (r *NetworkEdgeDeviceReconciler) createExternalResources(ctx context.Contex
 						Containers:     containers,
 						Volumes:        volumes,
 						HostNetwork:    netEdgeDevice.Spec.SwitchTemplate.Spec.HostNetwork,
+						NodeName:       netEdgeDevice.Spec.NodeConfig.NodeName,
 					},
 				},
 			},