diff --git a/pkg/apis/certificates/v1alpha1/conversion.go b/pkg/apis/certificates/v1alpha1/conversion.go index ba2f3c37235..5275811b889 100644 --- a/pkg/apis/certificates/v1alpha1/conversion.go +++ b/pkg/apis/certificates/v1alpha1/conversion.go @@ -16,9 +16,24 @@ limitations under the License. package v1alpha1 -import "k8s.io/kubernetes/pkg/runtime" +import ( + "fmt" + + "k8s.io/kubernetes/pkg/api" + "k8s.io/kubernetes/pkg/runtime" +) func addConversionFuncs(scheme *runtime.Scheme) error { // Add non-generated conversion functions here. Currently there are none. - return nil + + return api.Scheme.AddFieldLabelConversionFunc(SchemeGroupVersion.String(), "CertificateSigningRequest", + func(label, value string) (string, string, error) { + switch label { + case "metadata.name": + return label, value, nil + default: + return "", "", fmt.Errorf("field label not supported: %s", label) + } + }, + ) } diff --git a/pkg/client/restclient/request.go b/pkg/client/restclient/request.go index 1ec02b54f7e..a3065f5b85f 100644 --- a/pkg/client/restclient/request.go +++ b/pkg/client/restclient/request.go @@ -339,16 +339,16 @@ func (r resourceTypeToFieldMapping) filterField(resourceType, field, value strin type versionToResourceToFieldMapping map[unversioned.GroupVersion]resourceTypeToFieldMapping +// filterField transforms the given field/value selector for the given groupVersion and resource func (v versionToResourceToFieldMapping) filterField(groupVersion *unversioned.GroupVersion, resourceType, field, value string) (newField, newValue string, err error) { rMapping, ok := v[*groupVersion] if !ok { - glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", groupVersion, resourceType, field, value) + // no groupVersion overrides registered, default to identity mapping return field, value, nil } newField, newValue, err = rMapping.filterField(resourceType, field, value) if err != nil { - // This is only a warning until we find and fix all of the client's usages. - glog.Warningf("Field selector: %v - %v - %v - %v: need to check if this is versioned correctly.", groupVersion, resourceType, field, value) + // no groupVersionResource overrides registered, default to identity mapping return field, value, nil } return newField, newValue, nil diff --git a/pkg/registry/certificates/strategy.go b/pkg/registry/certificates/strategy.go index 3928a4131b0..e5a630c9b8e 100644 --- a/pkg/registry/certificates/strategy.go +++ b/pkg/registry/certificates/strategy.go @@ -184,5 +184,5 @@ func Matcher(label labels.Selector, field fields.Selector) *generic.SelectionPre // SelectableFields returns a field set that can be used for filter selection func SelectableFields(obj *certificates.CertificateSigningRequest) fields.Set { - return nil + return generic.ObjectMetaFieldsSet(obj.ObjectMeta, false) }