import ( "k8s.io/kubernetes/pkg/api/unversioned" "k8s.io/kubernetes/pkg/runtime" ) func myConversionFunc(in interface{}) (interface{}, error) { // perform label conversion here } // ... // create a new schema for the Kubernetes API object schema := runtime.NewScheme() // add our conversion function to the schema schema.AddFieldLabelConversionFunc("v1", "Pod", myConversionFunc) // create a new unversioned API object with a label obj := &unversioned.LabelSelector{ Labels: map[string]string{ "app": "myapp", }, } // convert the label in the object using our custom conversion function convertedObj, err := runtime.FieldLabelConversionFunc(schema)(obj, "") // ...In this example, we create a new schema for the Kubernetes API object using `NewScheme`. We then use `AddFieldLabelConversionFunc` to add our custom label conversion function to the schema for the `v1` version of the `Pod` object. We then create a new instance of the `unversioned.LabelSelector` API object with a label `"app": "myapp"`. We convert the label in the object using our custom conversion function using `FieldLabelConversionFunc`. The `runtime` package provides a set of tools to work with objects that are serialized and deserialized at runtime.