func AddFieldLabelConversionsForNamespace(scheme *runtime.Scheme) error { return scheme.AddFieldLabelConversionFunc("v1", "Namespace", func(label, value string) (string, string, error) { switch label { case "status.phase", "metadata.name": return label, value, nil default: return "", "", fmt.Errorf("field label not supported: %s", label) } }) }
func addConversionFuncs(scheme *runtime.Scheme) error { return scheme.AddFieldLabelConversionFunc(SchemeGroupVersion.String(), "Cluster", 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) } }, ) }
func AddFieldLabelConversionsForEvent(scheme *runtime.Scheme) error { return scheme.AddFieldLabelConversionFunc("v1", "Event", func(label, value string) (string, string, error) { switch label { case "involvedObject.kind", "involvedObject.namespace", "involvedObject.name", "involvedObject.uid", "involvedObject.apiVersion", "involvedObject.resourceVersion", "involvedObject.fieldPath", "reason", "source", "type", "metadata.namespace", "metadata.name": return label, value, nil default: return "", "", fmt.Errorf("field label not supported: %s", label) } }) }
func addConversionFuncs(scheme *runtime.Scheme) error { // Add non-generated conversion functions err := scheme.AddConversionFuncs( Convert_api_Pod_To_v1_Pod, Convert_api_PodSpec_To_v1_PodSpec, Convert_api_ReplicationControllerSpec_To_v1_ReplicationControllerSpec, Convert_api_ServiceSpec_To_v1_ServiceSpec, Convert_v1_Pod_To_api_Pod, Convert_v1_PodSpec_To_api_PodSpec, Convert_v1_ReplicationControllerSpec_To_api_ReplicationControllerSpec, Convert_v1_Secret_To_api_Secret, Convert_v1_ServiceSpec_To_api_ServiceSpec, Convert_v1_ResourceList_To_api_ResourceList, Convert_v1_ReplicationController_to_extensions_ReplicaSet, Convert_v1_ReplicationControllerSpec_to_extensions_ReplicaSetSpec, Convert_v1_ReplicationControllerStatus_to_extensions_ReplicaSetStatus, Convert_extensions_ReplicaSet_to_v1_ReplicationController, Convert_extensions_ReplicaSetSpec_to_v1_ReplicationControllerSpec, Convert_extensions_ReplicaSetStatus_to_v1_ReplicationControllerStatus, ) if err != nil { return err } // Add field label conversions for kinds having selectable nothing but ObjectMeta fields. for _, k := range []string{ "Endpoints", "ResourceQuota", "PersistentVolumeClaim", "Service", "ServiceAccount", "ConfigMap", } { kind := k // don't close over range variables err = scheme.AddFieldLabelConversionFunc("v1", kind, func(label, value string) (string, string, error) { switch label { case "metadata.namespace", "metadata.name": return label, value, nil default: return "", "", fmt.Errorf("field label %q not supported for %q", label, kind) } }, ) if err != nil { return err } } // Add field conversion funcs. err = scheme.AddFieldLabelConversionFunc("v1", "Pod", func(label, value string) (string, string, error) { switch label { case "metadata.annotations", "metadata.labels", "metadata.name", "metadata.namespace", "spec.nodeName", "spec.restartPolicy", "spec.serviceAccountName", "status.phase", "status.podIP": return label, value, nil // This is for backwards compatibility with old v1 clients which send spec.host case "spec.host": return "spec.nodeName", value, nil default: return "", "", fmt.Errorf("field label not supported: %s", label) } }, ) if err != nil { return err } err = scheme.AddFieldLabelConversionFunc("v1", "Node", func(label, value string) (string, string, error) { switch label { case "metadata.name": return label, value, nil case "spec.unschedulable": return label, value, nil default: return "", "", fmt.Errorf("field label not supported: %s", label) } }, ) if err != nil { return err } err = scheme.AddFieldLabelConversionFunc("v1", "ReplicationController", func(label, value string) (string, string, error) { switch label { case "metadata.name", "metadata.namespace", "status.replicas": return label, value, nil default: return "", "", fmt.Errorf("field label not supported: %s", label) } }) if err != nil { return err } err = scheme.AddFieldLabelConversionFunc("v1", "PersistentVolume", 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) } }, ) if err != nil { return err } if err := AddFieldLabelConversionsForEvent(scheme); err != nil { return err } if err := AddFieldLabelConversionsForNamespace(scheme); err != nil { return err } if err := AddFieldLabelConversionsForSecret(scheme); err != nil { return err } return nil }