This is astonishingly complex and counterintuitive. I cannot fathom why they made it like this.

I wonder if the reason Service specifies labels directly under selector: instead of under matchLabels, is that it doesn’t even support matchExpressions, thus there’s no need for disambiguation? As opposed to this example for instance:

selector:
matchLabels:
component: redis
matchExpressions:
- {key: tier, operator: In, values: [cache]}
- {key: environment, operator: NotIn, values: [dev]}

Advocate of Score Voting and Approval Voting. Software engineer. Father. Husband. American.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store