diff --git a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPodEvent.java b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPodEvent.java
index a6b8d4f..a0d972c 100644
--- a/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPodEvent.java
+++ b/apps/k8s-networking/api/src/main/java/org/onosproject/k8snetworking/api/K8sPodEvent.java
@@ -46,6 +46,46 @@
         K8S_POD_UPDATED,
 
         /**
+         * Signifies that the kubernetes pod is in Pending phase.
+         */
+        K8S_POD_PENDING,
+
+        /**
+         * Signifies that the kubernetes pod is in Running phase.
+         */
+        K8S_POD_RUNNING,
+
+        /**
+         * Signifies that the kubernetes pod is in Succeeded phase.
+         */
+        K8S_POD_SUCCEEDED,
+
+        /**
+         * Signifies that the kubernetes pod is in Failed phase.
+         */
+        K8S_POD_FAILED,
+
+        /**
+         * Signifies that the kubernetes pod is in Unknown phase.
+         */
+        K8S_POD_UNKNOWN,
+
+        /**
+         * Signifies that the kubernetes pod is in Completed phase.
+         */
+        K8S_POD_COMPLETED,
+
+        /**
+         * Signifies that the kubernetes pod is in CrashLoopBackOff phase.
+         */
+        K8S_POD_CRASH_LOOP_BACK_OFF,
+
+        /**
+         * Signifies that the kubernetes pod annotation is added.
+         */
+        K8S_POD_ANNOTATION_ADDED,
+
+        /**
          * Signifies that the kubernetes pod is removed.
          */
         K8S_POD_REMOVED,
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/DistributedK8sPodStore.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/DistributedK8sPodStore.java
index 138555b..65921dc 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/DistributedK8sPodStore.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/DistributedK8sPodStore.java
@@ -96,14 +96,23 @@
 
 import java.util.Collection;
 import java.util.LinkedHashMap;
+import java.util.Map;
 import java.util.Set;
 import java.util.concurrent.ExecutorService;
 
 import static com.google.common.base.Preconditions.checkArgument;
 import static java.util.concurrent.Executors.newSingleThreadExecutor;
 import static org.onlab.util.Tools.groupedThreads;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_ANNOTATION_ADDED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_COMPLETED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_CRASH_LOOP_BACK_OFF;
 import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_CREATED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_FAILED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_PENDING;
 import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_REMOVED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_RUNNING;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_SUCCEEDED;
+import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_UNKNOWN;
 import static org.onosproject.k8snetworking.api.K8sPodEvent.Type.K8S_POD_UPDATED;
 import static org.slf4j.LoggerFactory.getLogger;
 
@@ -121,6 +130,14 @@
     private static final String ERR_DUPLICATE = " already exists";
     private static final String APP_ID = "org.onosproject.k8snetwork";
 
+    private static final String PENDING = "Pending";
+    private static final String RUNNING = "Running";
+    private static final String SUCCEEDED = "Succeeded";
+    private static final String FAILED = "Failed";
+    private static final String UNKNOWN = "Unknown";
+    private static final String COMPLETED = "Completed";
+    private static final String CRASH_LOOP_BACK_OFF = "CrashLoopBackOff";
+
     private static final KryoNamespace
             SERIALIZER_K8S_POD = KryoNamespace.newBuilder()
             .register(KryoNamespaces.API)
@@ -275,9 +292,7 @@
                     break;
                 case UPDATE:
                     log.debug("Kubernetes pod updated {}", event.newValue());
-                    eventExecutor.execute(() ->
-                            notifyDelegate(new K8sPodEvent(
-                                    K8S_POD_UPDATED, event.newValue().value())));
+                    eventExecutor.execute(() -> processUpdate(event));
                     break;
                 case REMOVE:
                     log.debug("Kubernetes pod removed {}", event.oldValue());
@@ -290,5 +305,56 @@
                     break;
             }
         }
+
+        private void processUpdate(MapEvent<String, Pod> event) {
+            notifyDelegate(new K8sPodEvent(
+                    K8S_POD_UPDATED, event.newValue().value()));
+
+            String oldPhase = event.oldValue().value().getStatus().getPhase();
+            String newPhase = event.newValue().value().getStatus().getPhase();
+
+            if (!PENDING.equals(oldPhase) && PENDING.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_PENDING, event.newValue().value()));
+            }
+
+            if (!RUNNING.equals(oldPhase) && RUNNING.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_RUNNING, event.newValue().value()));
+            }
+
+            if (!SUCCEEDED.equals(oldPhase) && SUCCEEDED.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_SUCCEEDED, event.newValue().value()));
+            }
+
+            if (!FAILED.equals(oldPhase) && FAILED.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_FAILED, event.newValue().value()));
+            }
+
+            if (!UNKNOWN.equals(oldPhase) && UNKNOWN.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_UNKNOWN, event.newValue().value()));
+            }
+
+            if (!COMPLETED.equals(oldPhase) && COMPLETED.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_COMPLETED, event.newValue().value()));
+            }
+
+            if (!CRASH_LOOP_BACK_OFF.equals(oldPhase) && CRASH_LOOP_BACK_OFF.equals(newPhase)) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_CRASH_LOOP_BACK_OFF, event.newValue().value()));
+            }
+
+            Map<String, String> oldAnnot = event.oldValue().value().getMetadata().getAnnotations();
+            Map<String, String> newAnnot = event.newValue().value().getMetadata().getAnnotations();
+
+            if (oldAnnot == null && newAnnot != null) {
+                notifyDelegate(new K8sPodEvent(
+                        K8S_POD_ANNOTATION_ADDED, event.newValue().value()));
+            }
+        }
     }
 }
diff --git a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceHandler.java b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceHandler.java
index 791cbc9..6a5f942 100644
--- a/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceHandler.java
+++ b/apps/k8s-networking/app/src/main/java/org/onosproject/k8snetworking/impl/K8sServiceHandler.java
@@ -788,8 +788,8 @@
         @Override
         public void event(K8sPodEvent event) {
             switch (event.type()) {
-                case K8S_POD_UPDATED:
-                    eventExecutor.execute(() -> processPodUpdate(event.subject()));
+                case K8S_POD_ANNOTATION_ADDED:
+                    eventExecutor.execute(() -> processPodAnnotAddition(event.subject()));
                     break;
                 case K8S_POD_REMOVED:
                     eventExecutor.execute(() -> processPodRemoval(event.subject()));
@@ -799,7 +799,7 @@
             }
         }
 
-        private void processPodUpdate(Pod pod) {
+        private void processPodAnnotAddition(Pod pod) {
             if (!isRelevantHelper()) {
                 return;
             }
diff --git a/apps/k8s-networking/app/src/test/java/org/onosproject/k8snetworking/impl/K8sPodManagerTest.java b/apps/k8s-networking/app/src/test/java/org/onosproject/k8snetworking/impl/K8sPodManagerTest.java
index 3894f9c..06572d0 100644
--- a/apps/k8s-networking/app/src/test/java/org/onosproject/k8snetworking/impl/K8sPodManagerTest.java
+++ b/apps/k8s-networking/app/src/test/java/org/onosproject/k8snetworking/impl/K8sPodManagerTest.java
@@ -19,6 +19,7 @@
 import com.google.common.util.concurrent.MoreExecutors;
 import io.fabric8.kubernetes.api.model.ObjectMeta;
 import io.fabric8.kubernetes.api.model.Pod;
+import io.fabric8.kubernetes.api.model.PodStatus;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -181,10 +182,14 @@
         meta.setUid(uid);
         meta.setName(name);
 
+        PodStatus status = new PodStatus();
+        status.setPhase("Running");
+
         Pod pod = new Pod();
         pod.setApiVersion("v1");
         pod.setKind("pod");
         pod.setMetadata(meta);
+        pod.setStatus(status);
 
         return pod;
     }
