mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-07 03:03:59 +00:00
services fielse selector for type
Change-Id: I57e934c520713713d4b0616a52519ec51c49e0fc
This commit is contained in:
parent
7d78fb791d
commit
8f306d8046
@ -497,7 +497,8 @@ func AddFieldLabelConversionsForService(scheme *runtime.Scheme) error {
|
|||||||
switch label {
|
switch label {
|
||||||
case "metadata.namespace",
|
case "metadata.namespace",
|
||||||
"metadata.name",
|
"metadata.name",
|
||||||
"spec.clusterIP":
|
"spec.clusterIP",
|
||||||
|
"spec.type":
|
||||||
return label, value, nil
|
return label, value, nil
|
||||||
default:
|
default:
|
||||||
return "", "", fmt.Errorf("field label not supported: %s", label)
|
return "", "", fmt.Errorf("field label not supported: %s", label)
|
||||||
|
@ -194,6 +194,7 @@ func SelectableFields(service *api.Service) fields.Set {
|
|||||||
objectMetaFieldsSet := generic.ObjectMetaFieldsSet(&service.ObjectMeta, true)
|
objectMetaFieldsSet := generic.ObjectMetaFieldsSet(&service.ObjectMeta, true)
|
||||||
serviceSpecificFieldsSet := fields.Set{
|
serviceSpecificFieldsSet := fields.Set{
|
||||||
"spec.clusterIP": service.Spec.ClusterIP,
|
"spec.clusterIP": service.Spec.ClusterIP,
|
||||||
|
"spec.type": string(service.Spec.Type),
|
||||||
}
|
}
|
||||||
return generic.MergeFieldsSets(objectMetaFieldsSet, serviceSpecificFieldsSet)
|
return generic.MergeFieldsSets(objectMetaFieldsSet, serviceSpecificFieldsSet)
|
||||||
}
|
}
|
||||||
|
@ -844,6 +844,22 @@ func TestMatchService(t *testing.T) {
|
|||||||
fieldSelector: fields.ParseSelectorOrDie("metadata.namespace=nomatch"),
|
fieldSelector: fields.ParseSelectorOrDie("metadata.namespace=nomatch"),
|
||||||
expectMatch: false,
|
expectMatch: false,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "match on loadbalancer type service",
|
||||||
|
in: &api.Service{
|
||||||
|
Spec: api.ServiceSpec{Type: api.ServiceTypeLoadBalancer},
|
||||||
|
},
|
||||||
|
fieldSelector: fields.ParseSelectorOrDie("spec.type=LoadBalancer"),
|
||||||
|
expectMatch: true,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
name: "no match on nodeport type service",
|
||||||
|
in: &api.Service{
|
||||||
|
Spec: api.ServiceSpec{Type: api.ServiceTypeNodePort},
|
||||||
|
},
|
||||||
|
fieldSelector: fields.ParseSelectorOrDie("spec.type=LoadBalancer"),
|
||||||
|
expectMatch: false,
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "match on headless service",
|
name: "match on headless service",
|
||||||
in: &api.Service{
|
in: &api.Service{
|
||||||
|
Loading…
Reference in New Issue
Block a user