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
  1. Create a ReplicationController and an associated service, for example redis: screen shot 2016-08-15 at 3 18 10 pm
  2. Rolling update the ReplicationController, now the service session is missing. screen shot 2016-08-15 at 3 20 35 pm
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)

Most upvoted comments

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 has app: 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: b labelSelector: label-1: a

Result will be false because matching labelSelector against label-2: b will be invalid.

On the other hand if we have.

selector: label-1: a labelSelector: label-1: a, label-2: b

It 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.