@@ -10,14 +10,11 @@ import (
10
10
11
11
"github.com/spf13/cobra"
12
12
13
- "k8s.io/apimachinery/pkg/util/sets "
13
+ rbacv1 "k8s.io/api/rbac/v1 "
14
14
"k8s.io/kubernetes/pkg/api/legacyscheme"
15
- "k8s.io/kubernetes/pkg/apis/rbac"
16
15
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
17
16
kprinters "k8s.io/kubernetes/pkg/printers"
18
17
19
- "github.com/openshift/origin/pkg/api/latest"
20
- authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization"
21
18
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
22
19
templateapi "github.com/openshift/origin/pkg/template/apis/template"
23
20
)
@@ -30,8 +27,6 @@ const (
30
27
31
28
type CreateBootstrapPolicyFileOptions struct {
32
29
File string
33
-
34
- OpenShiftSharedResourcesNamespace string
35
30
}
36
31
37
32
func NewCommandCreateBootstrapPolicyFile (commandName string , fullName string , out io.Writer ) * cobra.Command {
@@ -54,8 +49,6 @@ func NewCommandCreateBootstrapPolicyFile(commandName string, fullName string, ou
54
49
flags := cmd .Flags ()
55
50
56
51
flags .StringVar (& options .File , "filename" , DefaultPolicyFile , "The policy template file that will be written with roles and bindings." )
57
- flags .StringVar (& options .OpenShiftSharedResourcesNamespace , "openshift-namespace" , "openshift" , "Namespace for shared resources." )
58
- flags .MarkDeprecated ("openshift-namespace" , "this field is no longer supported and using it can lead to undefined behavior" )
59
52
60
53
// autocompletion hints
61
54
cmd .MarkFlagFilename ("filename" )
@@ -70,9 +63,6 @@ func (o CreateBootstrapPolicyFileOptions) Validate(args []string) error {
70
63
if len (o .File ) == 0 {
71
64
return errors .New ("filename must be provided" )
72
65
}
73
- if len (o .OpenShiftSharedResourcesNamespace ) == 0 {
74
- return errors .New ("openshift-namespace must be provided" )
75
- }
76
66
77
67
return nil
78
68
}
@@ -86,96 +76,43 @@ func (o CreateBootstrapPolicyFileOptions) CreateBootstrapPolicyFile() error {
86
76
policy := bootstrappolicy .Policy ()
87
77
88
78
for i := range policy .ClusterRoles {
89
- originObject := & authorizationapi.ClusterRole {}
90
- if err := legacyscheme .Scheme .Convert (& policy .ClusterRoles [i ], originObject , nil ); err != nil {
91
- return err
92
- }
93
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (originObject , latest .Version )
79
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy .ClusterRoles [i ], rbacv1 .SchemeGroupVersion )
94
80
if err != nil {
95
81
return err
96
82
}
97
83
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
98
84
}
99
85
100
86
for i := range policy .ClusterRoleBindings {
101
- originObject := & authorizationapi.ClusterRoleBinding {}
102
- if err := legacyscheme .Scheme .Convert (& policy .ClusterRoleBindings [i ], originObject , nil ); err != nil {
103
- return err
104
- }
105
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (originObject , latest .Version )
87
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy .ClusterRoleBindings [i ], rbacv1 .SchemeGroupVersion )
106
88
if err != nil {
107
89
return err
108
90
}
109
91
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
110
92
}
111
93
112
- openshiftRoles := map [string ][]rbac.Role {}
113
94
for namespace , roles := range policy .Roles {
114
- if namespace == bootstrappolicy .DefaultOpenShiftSharedResourcesNamespace {
115
- r := make ([]rbac.Role , len (roles ))
116
- for i := range roles {
117
- r [i ] = roles [i ]
118
- r [i ].Namespace = o .OpenShiftSharedResourcesNamespace
119
- }
120
- openshiftRoles [o .OpenShiftSharedResourcesNamespace ] = r
121
- } else {
122
- openshiftRoles [namespace ] = roles
123
- }
124
- }
125
-
126
- // iterate in a defined order
127
- for _ , namespace := range sets .StringKeySet (openshiftRoles ).List () {
128
- roles := openshiftRoles [namespace ]
129
95
for i := range roles {
130
- originObject := & authorizationapi.Role {}
131
- if err := legacyscheme .Scheme .Convert (& roles [i ], originObject , nil ); err != nil {
132
- return err
133
- }
134
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (originObject , latest .Version )
96
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy.Roles [namespace ][i ], rbacv1 .SchemeGroupVersion )
135
97
if err != nil {
136
98
return err
137
99
}
138
100
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
139
101
}
140
102
}
141
103
142
- openshiftRoleBindings := map [string ][]rbac.RoleBinding {}
143
- for namespace , roleBindings := range policy .RoleBindings {
144
- if namespace == bootstrappolicy .DefaultOpenShiftSharedResourcesNamespace {
145
- rb := make ([]rbac.RoleBinding , len (roleBindings ))
146
- for i := range roleBindings {
147
- rb [i ] = roleBindings [i ]
148
- rb [i ].Namespace = o .OpenShiftSharedResourcesNamespace
149
- }
150
- openshiftRoleBindings [o .OpenShiftSharedResourcesNamespace ] = rb
151
- } else {
152
- openshiftRoleBindings [namespace ] = roleBindings
153
- }
154
- }
155
-
156
- // iterate in a defined order
157
- for _ , namespace := range sets .StringKeySet (openshiftRoleBindings ).List () {
158
- roleBindings := openshiftRoleBindings [namespace ]
159
- for i := range roleBindings {
160
- originObject := & authorizationapi.RoleBinding {}
161
- if err := legacyscheme .Scheme .Convert (& roleBindings [i ], originObject , nil ); err != nil {
162
- return err
163
- }
164
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (originObject , latest .Version )
104
+ for namespace , rbs := range policy .RoleBindings {
105
+ for i := range rbs {
106
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy.RoleBindings [namespace ][i ], rbacv1 .SchemeGroupVersion )
165
107
if err != nil {
166
108
return err
167
109
}
168
110
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
169
111
}
170
112
}
171
113
172
- versionedPolicyTemplate , err := legacyscheme .Scheme .ConvertToVersion (policyTemplate , latest .Version )
173
- if err != nil {
174
- return err
175
- }
176
-
177
114
buffer := & bytes.Buffer {}
178
- (& kprinters.JSONPrinter {}).PrintObj (versionedPolicyTemplate , buffer )
115
+ (& kprinters.JSONPrinter {}).PrintObj (policyTemplate , buffer )
179
116
180
117
if err := ioutil .WriteFile (o .File , buffer .Bytes (), 0644 ); err != nil {
181
118
return err
0 commit comments