@@ -11,10 +11,12 @@ import (
11
11
"github.com/spf13/cobra"
12
12
13
13
rbacv1 "k8s.io/api/rbac/v1"
14
+ "k8s.io/apimachinery/pkg/util/sets"
14
15
"k8s.io/kubernetes/pkg/api/legacyscheme"
15
16
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
16
17
kprinters "k8s.io/kubernetes/pkg/printers"
17
18
19
+ "github.com/openshift/origin/pkg/api/latest"
18
20
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
19
21
templateapi "github.com/openshift/origin/pkg/template/apis/template"
20
22
)
@@ -91,28 +93,37 @@ func (o CreateBootstrapPolicyFileOptions) CreateBootstrapPolicyFile() error {
91
93
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
92
94
}
93
95
94
- for namespace , roles := range policy .Roles {
96
+ // iterate in a defined order
97
+ for _ , namespace := range sets .StringKeySet (policy .Roles ).List () {
98
+ roles := policy .Roles [namespace ]
95
99
for i := range roles {
96
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy. Roles [ namespace ] [i ], rbacv1 .SchemeGroupVersion )
100
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& roles [i ], rbacv1 .SchemeGroupVersion )
97
101
if err != nil {
98
102
return err
99
103
}
100
104
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
101
105
}
102
106
}
103
107
104
- for namespace , rbs := range policy .RoleBindings {
105
- for i := range rbs {
106
- versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& policy.RoleBindings [namespace ][i ], rbacv1 .SchemeGroupVersion )
108
+ // iterate in a defined order
109
+ for _ , namespace := range sets .StringKeySet (policy .RoleBindings ).List () {
110
+ roleBindings := policy .RoleBindings [namespace ]
111
+ for i := range roleBindings {
112
+ versionedObject , err := legacyscheme .Scheme .ConvertToVersion (& roleBindings [i ], rbacv1 .SchemeGroupVersion )
107
113
if err != nil {
108
114
return err
109
115
}
110
116
policyTemplate .Objects = append (policyTemplate .Objects , versionedObject )
111
117
}
112
118
}
113
119
120
+ versionedPolicyTemplate , err := legacyscheme .Scheme .ConvertToVersion (policyTemplate , latest .Version )
121
+ if err != nil {
122
+ return err
123
+ }
124
+
114
125
buffer := & bytes.Buffer {}
115
- (& kprinters.JSONPrinter {}).PrintObj (policyTemplate , buffer )
126
+ (& kprinters.JSONPrinter {}).PrintObj (versionedPolicyTemplate , buffer )
116
127
117
128
if err := ioutil .WriteFile (o .File , buffer .Bytes (), 0644 ); err != nil {
118
129
return err
0 commit comments