Skip to content

Commit 288c12f

Browse files
author
Matt Rogers
authored
Merge pull request #1 from enj/enj/h/matt_bootstrap_file/19756
Fix create_bootstrappolicy_file
2 parents a0e846d + 2724e20 commit 288c12f

File tree

2 files changed

+768
-1391
lines changed

2 files changed

+768
-1391
lines changed

pkg/cmd/server/admin/create_bootstrappolicy_file.go

+17-6
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,12 @@ import (
1111
"github.com/spf13/cobra"
1212

1313
rbacv1 "k8s.io/api/rbac/v1"
14+
"k8s.io/apimachinery/pkg/util/sets"
1415
"k8s.io/kubernetes/pkg/api/legacyscheme"
1516
kcmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
1617
kprinters "k8s.io/kubernetes/pkg/printers"
1718

19+
"github.com/openshift/origin/pkg/api/latest"
1820
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
1921
templateapi "github.com/openshift/origin/pkg/template/apis/template"
2022
)
@@ -91,28 +93,37 @@ func (o CreateBootstrapPolicyFileOptions) CreateBootstrapPolicyFile() error {
9193
policyTemplate.Objects = append(policyTemplate.Objects, versionedObject)
9294
}
9395

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]
9599
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)
97101
if err != nil {
98102
return err
99103
}
100104
policyTemplate.Objects = append(policyTemplate.Objects, versionedObject)
101105
}
102106
}
103107

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)
107113
if err != nil {
108114
return err
109115
}
110116
policyTemplate.Objects = append(policyTemplate.Objects, versionedObject)
111117
}
112118
}
113119

120+
versionedPolicyTemplate, err := legacyscheme.Scheme.ConvertToVersion(policyTemplate, latest.Version)
121+
if err != nil {
122+
return err
123+
}
124+
114125
buffer := &bytes.Buffer{}
115-
(&kprinters.JSONPrinter{}).PrintObj(policyTemplate, buffer)
126+
(&kprinters.JSONPrinter{}).PrintObj(versionedPolicyTemplate, buffer)
116127

117128
if err := ioutil.WriteFile(o.File, buffer.Bytes(), 0644); err != nil {
118129
return err

0 commit comments

Comments
 (0)