openshift / openshift-sdn

Apache License 2.0
69 stars 63 forks source link

nodes don't watch for services in pre-existing namespaces #158

Closed danwinship closed 9 years ago

danwinship commented 9 years ago

@pravisankar

Nothing ever calls watchServicesForNamespace() for namespaces that already exist when the node starts, so we never find out about any new services in those namespaces. In particular, nodes never find out about (non-pre-existing) services in "default".

Fixing this is somewhat complicated due to the jumping back and forth between origin/plugins/osdn.go and openshift-sdn/ovssubnet/common.go, and might be more easily fixed post-merge.

The ready/start stuff seems like it might be especially complicated in this case, since you have both the namespaces and the services within them to consider. Perhaps it would simplify things if we removed the Get() functions from the public APIs, and just had the Watch() functions, which would return (via the passed-in event channel) all pre-existing elements first, and then start returning new elements. Then the "start" info doesn't have to be passed all the way up and down the chain, and we don't have to do as much synchronization...