diff --git a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sNodeHandler.java b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sNodeHandler.java
index 7e99f47..cec3d2c 100644
--- a/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sNodeHandler.java
+++ b/apps/k8s-node/app/src/main/java/org/onosproject/k8snode/impl/DefaultK8sNodeHandler.java
@@ -354,42 +354,42 @@
         // integration bridge -> external bridge
         PatchDescription brIntExtPatchDesc =
                 DefaultPatchDescription.builder()
-                .deviceId(k8sNode.intgBridgeName())
-                .ifaceName(k8sNode.intgToExtPatchPortName())
-                .peer(k8sNode.extToIntgPatchPortName())
-                .build();
+                        .deviceId(k8sNode.intgBridgeName())
+                        .ifaceName(k8sNode.intgToExtPatchPortName())
+                        .peer(k8sNode.extToIntgPatchPortName())
+                        .build();
 
         // integration bridge -> tunnel bridge
         PatchDescription brIntTunPatchDesc =
                 DefaultPatchDescription.builder()
-                .deviceId(k8sNode.intgBridgeName())
-                .ifaceName(k8sNode.intgToTunPatchPortName())
-                .peer(k8sNode.tunToIntgPatchPortName())
-                .build();
+                        .deviceId(k8sNode.intgBridgeName())
+                        .ifaceName(k8sNode.intgToTunPatchPortName())
+                        .peer(k8sNode.tunToIntgPatchPortName())
+                        .build();
 
         // external bridge -> integration bridge
         PatchDescription brExtIntPatchDesc =
                 DefaultPatchDescription.builder()
-                .deviceId(k8sNode.extBridgeName())
-                .ifaceName(k8sNode.extToIntgPatchPortName())
-                .peer(k8sNode.intgToExtPatchPortName())
-                .build();
+                        .deviceId(k8sNode.extBridgeName())
+                        .ifaceName(k8sNode.extToIntgPatchPortName())
+                        .peer(k8sNode.intgToExtPatchPortName())
+                        .build();
 
         // integration bridge -> local bridge
         PatchDescription brIntLocalPatchDesc =
                 DefaultPatchDescription.builder()
-                .deviceId(k8sNode.intgBridgeName())
-                .ifaceName(k8sNode.intgToLocalPatchPortName())
-                .peer(k8sNode.localToIntgPatchPortName())
-                .build();
+                        .deviceId(k8sNode.intgBridgeName())
+                        .ifaceName(k8sNode.intgToLocalPatchPortName())
+                        .peer(k8sNode.localToIntgPatchPortName())
+                        .build();
 
         // local bridge -> integration bridge
         PatchDescription brLocalIntPatchDesc =
                 DefaultPatchDescription.builder()
-                .deviceId(k8sNode.localBridgeName())
-                .ifaceName(k8sNode.localToIntgPatchPortName())
-                .peer(k8sNode.intgToLocalPatchPortName())
-                .build();
+                        .deviceId(k8sNode.localBridgeName())
+                        .ifaceName(k8sNode.localToIntgPatchPortName())
+                        .peer(k8sNode.intgToLocalPatchPortName())
+                        .build();
 
         InterfaceConfig ifaceConfig = device.as(InterfaceConfig.class);
         ifaceConfig.addPatchMode(k8sNode.intgToExtPatchPortName(), brIntExtPatchDesc);
@@ -402,10 +402,10 @@
             // tunnel bridge -> integration bridge
             PatchDescription brTunIntPatchDesc =
                     DefaultPatchDescription.builder()
-                    .deviceId(k8sNode.tunBridgeName())
-                    .ifaceName(k8sNode.tunToIntgPatchPortName())
-                    .peer(k8sNode.intgToTunPatchPortName())
-                    .build();
+                            .deviceId(k8sNode.tunBridgeName())
+                            .ifaceName(k8sNode.tunToIntgPatchPortName())
+                            .peer(k8sNode.intgToTunPatchPortName())
+                            .build();
 
             ifaceConfig.addPatchMode(k8sNode.tunToIntgPatchPortName(), brTunIntPatchDesc);
         }
