Kubernetes matchExpressions is een type selector dat uitgebreidere conditionele opties heeft dan een matchLabel selector. Een matchLabel kan alleen gebruikt worden voor gevallen waar labels exact overeen moeten komen, een matchExpression kan een of meer voorwaarden stellen. Een matchExpression selector ziet er bijvoorbeeld als volgt uit:
selector:
matchExpressions:
- {key: name, operator: In, values: [hr, web]}
- {key: environment, operator: NotIn, values: [dev]}
Iedere expressie moet een key, operator en een lijst van één of meer values bevatten. Er zijn vier operators beschikbaar:
- In: De value van een label van een ander object moet overeenkomen met de hier opgegeven value.
- NotIn: De value van een label van een ander object mag niet overeenkomen met de hier opgegeven value.
- Exists: De key van een label van een ander object moet overeenkomen met de hier opgegeven key. De value maakt niet uit en laat je leeg.
- DoesNotExist: De key van een label van een ander object mag niet overeenkomen met de hier opgegeven key. De value maakt niet uit en laat je leeg hier onder matchExpressions.
Als er meerdere expressies zijn opgegeven, moeten alle expressies geëvalueerd zijn en aan voldaan worden, voor een resource matched.