k8s.io/kubernetes@v1.29.3/pkg/apis/events/v1/conversion.go (about) 1 /* 2 Copyright 2020 The Kubernetes Authors. 3 4 Licensed under the Apache License, Version 2.0 (the "License"); 5 you may not use this file except in compliance with the License. 6 You may obtain a copy of the License at 7 8 http://www.apache.org/licenses/LICENSE-2.0 9 10 Unless required by applicable law or agreed to in writing, software 11 distributed under the License is distributed on an "AS IS" BASIS, 12 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 See the License for the specific language governing permissions and 14 limitations under the License. 15 */ 16 17 package v1 18 19 import ( 20 "fmt" 21 22 v1 "k8s.io/api/events/v1" 23 conversion "k8s.io/apimachinery/pkg/conversion" 24 "k8s.io/apimachinery/pkg/runtime" 25 k8s_api "k8s.io/kubernetes/pkg/apis/core" 26 k8s_api_v1 "k8s.io/kubernetes/pkg/apis/core/v1" 27 ) 28 29 func Convert_v1_Event_To_core_Event(in *v1.Event, out *k8s_api.Event, s conversion.Scope) error { 30 if err := autoConvert_v1_Event_To_core_Event(in, out, s); err != nil { 31 return err 32 } 33 if err := k8s_api_v1.Convert_v1_ObjectReference_To_core_ObjectReference(&in.Regarding, &out.InvolvedObject, s); err != nil { 34 return err 35 } 36 if err := k8s_api_v1.Convert_v1_EventSource_To_core_EventSource(&in.DeprecatedSource, &out.Source, s); err != nil { 37 return err 38 } 39 out.Message = in.Note 40 out.FirstTimestamp = in.DeprecatedFirstTimestamp 41 out.LastTimestamp = in.DeprecatedLastTimestamp 42 out.Count = in.DeprecatedCount 43 return nil 44 } 45 46 func Convert_core_Event_To_v1_Event(in *k8s_api.Event, out *v1.Event, s conversion.Scope) error { 47 if err := autoConvert_core_Event_To_v1_Event(in, out, s); err != nil { 48 return err 49 } 50 if err := k8s_api_v1.Convert_core_ObjectReference_To_v1_ObjectReference(&in.InvolvedObject, &out.Regarding, s); err != nil { 51 return err 52 } 53 if err := k8s_api_v1.Convert_core_EventSource_To_v1_EventSource(&in.Source, &out.DeprecatedSource, s); err != nil { 54 return err 55 } 56 out.Note = in.Message 57 out.DeprecatedFirstTimestamp = in.FirstTimestamp 58 out.DeprecatedLastTimestamp = in.LastTimestamp 59 out.DeprecatedCount = in.Count 60 return nil 61 } 62 63 func AddFieldLabelConversionsForEvent(scheme *runtime.Scheme) error { 64 mapping := map[string]string{ 65 "reason": "reason", 66 "regarding.kind": "involvedObject.kind", // map events.k8s.io field to fieldset returned by ToSelectableFields 67 "regarding.namespace": "involvedObject.namespace", // map events.k8s.io field to fieldset returned by ToSelectableFields 68 "regarding.name": "involvedObject.name", // map events.k8s.io field to fieldset returned by ToSelectableFields 69 "regarding.uid": "involvedObject.uid", // map events.k8s.io field to fieldset returned by ToSelectableFields 70 "regarding.apiVersion": "involvedObject.apiVersion", // map events.k8s.io field to fieldset returned by ToSelectableFields 71 "regarding.resourceVersion": "involvedObject.resourceVersion", // map events.k8s.io field to fieldset returned by ToSelectableFields 72 "regarding.fieldPath": "involvedObject.fieldPath", // map events.k8s.io field to fieldset returned by ToSelectableFields 73 "reportingController": "reportingComponent", // map events.k8s.io field to fieldset returned by ToSelectableFields 74 "type": "type", 75 "metadata.namespace": "metadata.namespace", 76 "metadata.name": "metadata.name", 77 } 78 return scheme.AddFieldLabelConversionFunc(SchemeGroupVersion.WithKind("Event"), 79 func(label, value string) (string, string, error) { 80 mappedLabel, ok := mapping[label] 81 if !ok { 82 return "", "", fmt.Errorf("field label not supported: %s", label) 83 } 84 return mappedLabel, value, nil 85 }, 86 ) 87 }