...
1
16
17 package v1alpha1
18
19 import (
20 rbacv1alpha1 "k8s.io/api/rbac/v1alpha1"
21 "k8s.io/apimachinery/pkg/conversion"
22 "k8s.io/apimachinery/pkg/runtime/schema"
23 api "k8s.io/kubernetes/pkg/apis/rbac"
24 )
25
26
27
28 const allAuthenticated = "system:authenticated"
29
30 func Convert_v1alpha1_Subject_To_rbac_Subject(in *rbacv1alpha1.Subject, out *api.Subject, s conversion.Scope) error {
31 if err := autoConvert_v1alpha1_Subject_To_rbac_Subject(in, out, s); err != nil {
32 return err
33 }
34
35
36 switch {
37 case in.Kind == rbacv1alpha1.ServiceAccountKind:
38 out.APIGroup = ""
39 case in.Kind == rbacv1alpha1.UserKind:
40 out.APIGroup = GroupName
41 case in.Kind == rbacv1alpha1.GroupKind:
42 out.APIGroup = GroupName
43 default:
44
45 if gv, err := schema.ParseGroupVersion(in.APIVersion); err == nil {
46 out.APIGroup = gv.Group
47 }
48 }
49
50
51
52
53 if out.Kind == rbacv1alpha1.UserKind && out.APIGroup == GroupName && out.Name == "*" {
54 out.Kind = rbacv1alpha1.GroupKind
55 out.Name = allAuthenticated
56 }
57
58 return nil
59 }
60
61 func Convert_rbac_Subject_To_v1alpha1_Subject(in *api.Subject, out *rbacv1alpha1.Subject, s conversion.Scope) error {
62 if err := autoConvert_rbac_Subject_To_v1alpha1_Subject(in, out, s); err != nil {
63 return err
64 }
65
66 switch {
67 case in.Kind == rbacv1alpha1.ServiceAccountKind && in.APIGroup == "":
68
69 out.APIVersion = "v1"
70 case in.Kind == rbacv1alpha1.UserKind && in.APIGroup == GroupName:
71
72 out.APIVersion = SchemeGroupVersion.String()
73 case in.Kind == rbacv1alpha1.GroupKind && in.APIGroup == GroupName:
74
75 out.APIVersion = SchemeGroupVersion.String()
76 default:
77
78 out.APIVersion = schema.GroupVersion{Group: in.APIGroup}.String()
79 }
80
81 return nil
82 }
83
View as plain text