dashboard: ReplicationController Detail page: Service session missing after rolling update
Issue details
After rolling update, service session in ReplicationController detail page is missing.
Environment
Dashboard version: 1.1.1
Kubernetes version: 1.3.2
Operating system: CoreOS
Node.js version: v6.2.2
Go version: 1.6.2
Steps to reproduce
- Create a ReplicationController and an associated service, for example
redis:
- Rolling update the ReplicationController, now the service session is missing.

Observed result
Service session is missing, and new label was added to the RC
Expected result
Service session must be displayed
Comments
A new label “deployment: xxxxxxxxxxxxxxxx” was added to the RC, which causes function IsSelectorMatching in types.go return false.
About this issue
- Original URL
- State: closed
- Created 8 years ago
- Comments: 20 (18 by maintainers)
Situation: I have a deployment that targets labels
app: my-app, env:prod. I also have a service with the same target. Then I do a rolling update, which results in a new RC that hasapp: my-app, env:prod, pod-template-hash: 12345. Current code will show the service, because because it has subset label selector.If we went with “succeed at the first similarity”, we’ll also show services that target completely different apps, but in
env:prod. This must be a subset matching, otherwise it does not make sense.Let’s look at this example:
selector:
label-1: a, label-2: blabelSelector:label-1: aResult will be
falsebecause matching labelSelector againstlabel-2: bwill be invalid.On the other hand if we have.
selector:
label-1: alabelSelector:label-1: a, label-2: bIt will return true because selector matches subset of expected labelSelector.
The question is if we should allow first situation to also pass. Expected selector is a subset of given selector and matches only part of it, but still we’ll get false.