11package provider
22
33import (
4+ rbacv1 "k8s.io/api/rbac/v1"
5+ metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
46 "k8s.io/apimachinery/pkg/types"
57 "time"
68)
@@ -16,8 +18,31 @@ type Time struct {
1618 time.Time
1719}
1820
21+ func ConvertTime (timestamp metav1.Time ) Time {
22+ return Time {
23+ timestamp .Time ,
24+ }
25+ }
26+
27+ func ConvertTimePtr (timestamp * metav1.Time ) * Time {
28+ return & Time {
29+ timestamp .Time ,
30+ }
31+ }
32+
1933type FieldsV1 struct {
20- Raw []byte `json:"-" protobuf:"bytes,1,opt,name=Raw"`
34+ Raw []byte
35+ }
36+
37+ func ConvertFieldsV1 (raw metav1.FieldsV1 ) FieldsV1 {
38+ return FieldsV1 {
39+ raw .Raw ,
40+ }
41+ }
42+ func ConvertFieldsV1Ptr (raw * metav1.FieldsV1 ) * FieldsV1 {
43+ return & FieldsV1 {
44+ raw .Raw ,
45+ }
2146}
2247
2348type OwnerReference struct {
@@ -29,6 +54,21 @@ type OwnerReference struct {
2954 BlockOwnerDeletion * bool
3055}
3156
57+ func ConvertOwnerReferences (ownerReferences []metav1.OwnerReference ) []OwnerReference {
58+ ownerRefs := make ([]OwnerReference , len (ownerReferences ))
59+ for i , ownerRef := range ownerReferences {
60+ ownerRefs [i ] = OwnerReference {
61+ APIVersion : ownerRef .APIVersion ,
62+ Kind : ownerRef .Kind ,
63+ Name : ownerRef .Name ,
64+ UID : ownerRef .UID ,
65+ Controller : ownerRef .Controller ,
66+ BlockOwnerDeletion : ownerRef .BlockOwnerDeletion ,
67+ }
68+ }
69+ return ownerRefs
70+ }
71+
3272type ManagedFieldsEntry struct {
3373 Manager string
3474 Operation ManagedFieldsOperationType
@@ -39,11 +79,34 @@ type ManagedFieldsEntry struct {
3979 Subresource string
4080}
4181
82+ func ConvertManagedFieldsEntries (managedFieldsEntry []metav1.ManagedFieldsEntry ) []ManagedFieldsEntry {
83+ managedFieldsEntries := make ([]ManagedFieldsEntry , len (managedFieldsEntry ))
84+ for i , entry := range managedFieldsEntry {
85+ managedFieldsEntries [i ] = ManagedFieldsEntry {
86+ Manager : entry .Manager ,
87+ Operation : ManagedFieldsOperationType (entry .Operation ),
88+ APIVersion : entry .APIVersion ,
89+ Time : ConvertTimePtr (entry .Time ),
90+ FieldsType : entry .FieldsType ,
91+ FieldsV1 : ConvertFieldsV1Ptr (entry .FieldsV1 ),
92+ Subresource : entry .Subresource ,
93+ }
94+ }
95+ return managedFieldsEntries
96+ }
97+
4298type TypeMeta struct {
4399 Kind string
44100 APIVersion string
45101}
46102
103+ func ConvertTypeMeta (typeMeta metav1.TypeMeta ) TypeMeta {
104+ return TypeMeta {
105+ Kind : typeMeta .Kind ,
106+ APIVersion : typeMeta .APIVersion ,
107+ }
108+ }
109+
47110type ObjectMeta struct {
48111 Name string
49112 GenerateName string
@@ -62,19 +125,60 @@ type ObjectMeta struct {
62125 ManagedFields []ManagedFieldsEntry
63126}
64127
128+ func ConvertObjectMeta (obj metav1.ObjectMeta ) ObjectMeta {
129+ return ObjectMeta {
130+ Name : obj .GetName (),
131+ GenerateName : obj .GetGenerateName (),
132+ Namespace : obj .GetNamespace (),
133+ SelfLink : obj .GetSelfLink (),
134+ UID : obj .GetUID (),
135+ ResourceVersion : obj .GetResourceVersion (),
136+ Generation : obj .GetGeneration (),
137+ CreationTimestamp : ConvertTime (obj .GetCreationTimestamp ()),
138+ DeletionTimestamp : ConvertTimePtr (obj .GetDeletionTimestamp ()),
139+ DeletionGracePeriodSeconds : obj .GetDeletionGracePeriodSeconds (),
140+ Labels : obj .GetLabels (),
141+ Annotations : obj .GetAnnotations (),
142+ OwnerReferences : ConvertOwnerReferences (obj .GetOwnerReferences ()),
143+ Finalizers : obj .GetFinalizers (),
144+ ManagedFields : ConvertManagedFieldsEntries (obj .GetManagedFields ()),
145+ }
146+ }
147+
65148type Subject struct {
66149 Kind string
67150 APIGroup string
68151 Name string
69152 Namespace string
70153}
71154
155+ func ConvertSubject (srcSubjects []rbacv1.Subject ) []Subject {
156+ subjects := make ([]Subject , len (srcSubjects ))
157+ for i , srcSubject := range srcSubjects {
158+ subjects [i ] = Subject {
159+ Kind : srcSubject .Kind ,
160+ APIGroup : srcSubject .APIGroup ,
161+ Name : srcSubject .Name ,
162+ Namespace : srcSubject .Namespace ,
163+ }
164+ }
165+ return subjects
166+ }
167+
72168type RoleRef struct {
73169 APIGroup string
74170 Kind string
75171 Name string
76172}
77173
174+ func ConvertRoleRef (roleRef rbacv1.RoleRef ) RoleRef {
175+ return RoleRef {
176+ APIGroup : roleRef .APIGroup ,
177+ Kind : roleRef .Kind ,
178+ Name : roleRef .Name ,
179+ }
180+ }
181+
78182type ClusterRoleBinding struct {
79183 TypeMeta
80184 ObjectMeta
0 commit comments