Fix: add ProjectedVolumneSource to kryo registry
Only listen on POD events from default namespace
Change-Id: I2ed74fce76bb9ca33f966688e6a9f71297a55507
(cherry picked from commit 880d4141fcc1102b7c9f20b5e56ecf181e4099d0)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/DistributedKubevirtPodStore.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/DistributedKubevirtPodStore.java
index 1ef99f6..bf149e2 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/DistributedKubevirtPodStore.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/DistributedKubevirtPodStore.java
@@ -20,6 +20,7 @@
import io.fabric8.kubernetes.api.model.Capabilities;
import io.fabric8.kubernetes.api.model.ConfigMapEnvSource;
import io.fabric8.kubernetes.api.model.ConfigMapKeySelector;
+import io.fabric8.kubernetes.api.model.ConfigMapProjection;
import io.fabric8.kubernetes.api.model.ConfigMapVolumeSource;
import io.fabric8.kubernetes.api.model.Container;
import io.fabric8.kubernetes.api.model.ContainerPort;
@@ -28,6 +29,7 @@
import io.fabric8.kubernetes.api.model.ContainerStateTerminated;
import io.fabric8.kubernetes.api.model.ContainerStateWaiting;
import io.fabric8.kubernetes.api.model.ContainerStatus;
+import io.fabric8.kubernetes.api.model.DownwardAPIProjection;
import io.fabric8.kubernetes.api.model.DownwardAPIVolumeFile;
import io.fabric8.kubernetes.api.model.DownwardAPIVolumeSource;
import io.fabric8.kubernetes.api.model.EmptyDirVolumeSource;
@@ -66,6 +68,7 @@
import io.fabric8.kubernetes.api.model.PodStatus;
import io.fabric8.kubernetes.api.model.PreferredSchedulingTerm;
import io.fabric8.kubernetes.api.model.Probe;
+import io.fabric8.kubernetes.api.model.ProjectedVolumeSource;
import io.fabric8.kubernetes.api.model.Quantity;
import io.fabric8.kubernetes.api.model.ResourceFieldSelector;
import io.fabric8.kubernetes.api.model.ResourceRequirements;
@@ -73,13 +76,16 @@
import io.fabric8.kubernetes.api.model.SeccompProfile;
import io.fabric8.kubernetes.api.model.SecretEnvSource;
import io.fabric8.kubernetes.api.model.SecretKeySelector;
+import io.fabric8.kubernetes.api.model.SecretProjection;
import io.fabric8.kubernetes.api.model.SecretVolumeSource;
import io.fabric8.kubernetes.api.model.SecurityContext;
+import io.fabric8.kubernetes.api.model.ServiceAccountTokenProjection;
import io.fabric8.kubernetes.api.model.TCPSocketAction;
import io.fabric8.kubernetes.api.model.Toleration;
import io.fabric8.kubernetes.api.model.Volume;
import io.fabric8.kubernetes.api.model.VolumeDevice;
import io.fabric8.kubernetes.api.model.VolumeMount;
+import io.fabric8.kubernetes.api.model.VolumeProjection;
import io.fabric8.kubernetes.api.model.WeightedPodAffinityTerm;
import org.onlab.util.KryoNamespace;
import org.onosproject.core.ApplicationId;
@@ -193,6 +199,17 @@
.register(IntOrString.class)
.register(Toleration.class)
.register(PersistentVolumeClaimVolumeSource.class)
+ .register(ProjectedVolumeSource.class)
+ .register(VolumeProjection.class)
+ .register(ConfigMapProjection.class)
+ .register(KeyToPath.class)
+ .register(DownwardAPIProjection.class)
+ .register(DownwardAPIVolumeFile.class)
+ .register(ObjectFieldSelector.class)
+ .register(ResourceFieldSelector.class)
+ .register(SecretProjection.class)
+ .register(Quantity.class)
+ .register(ServiceAccountTokenProjection.class)
.register(SecretVolumeSource.class)
.register(EmptyDirVolumeSource.class)
.register(Quantity.class)
diff --git a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodWatcher.java b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodWatcher.java
index c24356f..e92808d 100644
--- a/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodWatcher.java
+++ b/apps/kubevirt-networking/app/src/main/java/org/onosproject/kubevirtnetworking/impl/KubevirtPodWatcher.java
@@ -169,7 +169,7 @@
}
private void processAddition(Pod pod) {
- if (!isMaster()) {
+ if (!isMaster() || !isDefaultNs(pod)) {
return;
}
@@ -182,7 +182,7 @@
}
private void processModification(Pod pod) {
- if (!isMaster()) {
+ if (!isMaster() || !isDefaultNs(pod)) {
return;
}
@@ -195,7 +195,7 @@
}
private void processDeletion(Pod pod) {
- if (!isMaster()) {
+ if (!isMaster() || !isDefaultNs(pod)) {
return;
}
@@ -208,5 +208,9 @@
private boolean isMaster() {
return Objects.equals(localNodeId, leadershipService.getLeader(appId.name()));
}
+
+ private boolean isDefaultNs(Pod pod) {
+ return pod.getMetadata().getNamespace().equals("default");
+ }
}
}