Skip to content

Commit e0c3469

Browse files
committed
handle bootstrap openshift namespace roles
1 parent 43bed23 commit e0c3469

File tree

1 file changed

+15
-2
lines changed

1 file changed

+15
-2
lines changed

pkg/cmd/server/origin/ensure.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
"github.com/openshift/origin/pkg/oc/admin/policy"
1818

1919
authorizationapi "github.com/openshift/origin/pkg/authorization/apis/authorization"
20+
"github.com/openshift/origin/pkg/cmd/server/bootstrappolicy"
2021
)
2122

2223
// ensureComponentAuthorizationRules initializes the cluster policies
@@ -52,12 +53,18 @@ func (c *MasterConfig) ensureComponentAuthorizationRules(context genericapiserve
5253
utilruntime.HandleError(fmt.Errorf("unable to convert role.%s/%s in %v: %v", rbac.GroupName, rbacRole.Name, namespace, err))
5354
continue
5455
}
55-
if _, err := c.PrivilegedLoopbackOpenShiftClient.Roles(namespace).Create(role); err != nil {
56+
if _, err := c.PrivilegedLoopbackOpenShiftClient.Roles(namespace).Create(role); err != nil && !kapierror.IsAlreadyExists(err) {
5657
// don't fail on failures, try to create as many as you can
5758
utilruntime.HandleError(fmt.Errorf("unable to reconcile role.%s/%s in %v: %v", rbac.GroupName, role.Name, namespace, err))
5859
}
5960
}
6061
}
62+
for _, role := range bootstrappolicy.GetBootstrapOpenshiftRoles(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace){
63+
if _, err := c.PrivilegedLoopbackOpenShiftClient.Roles(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace).Create(&role); err != nil && !kapierror.IsAlreadyExists(err){
64+
// don't fail on failures, try to create as many as you can
65+
utilruntime.HandleError(fmt.Errorf("unable to reconcile role.%s/%s in %v: %v", rbac.GroupName, role.Name, c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace, err))
66+
}
67+
}
6168

6269
// ensure bootstrap namespaced rolebindings are created or reconciled
6370
for namespace, roleBindings := range kbootstrappolicy.NamespaceRoleBindings() {
@@ -67,12 +74,18 @@ func (c *MasterConfig) ensureComponentAuthorizationRules(context genericapiserve
6774
utilruntime.HandleError(fmt.Errorf("unable to convert rolebinding.%s/%s in %v: %v", rbac.GroupName, rbacRoleBinding.Name, namespace, err))
6875
continue
6976
}
70-
if _, err := c.PrivilegedLoopbackOpenShiftClient.RoleBindings(namespace).Create(roleBinding); err != nil {
77+
if _, err := c.PrivilegedLoopbackOpenShiftClient.RoleBindings(namespace).Create(roleBinding); err != nil && !kapierror.IsAlreadyExists(err){
7178
// don't fail on failures, try to create as many as you can
7279
utilruntime.HandleError(fmt.Errorf("unable to reconcile rolebinding.%s/%s in %v: %v", rbac.GroupName, roleBinding.Name, namespace, err))
7380
}
7481
}
7582
}
83+
for _, roleBinding := range bootstrappolicy.GetBootstrapOpenshiftRoleBindings(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace){
84+
if _, err := c.PrivilegedLoopbackOpenShiftClient.RoleBindings(c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace).Create(&roleBinding); err != nil && !kapierror.IsAlreadyExists(err){
85+
// don't fail on failures, try to create as many as you can
86+
utilruntime.HandleError(fmt.Errorf("unable to reconcile rolebinding.%s/%s in %v: %v", rbac.GroupName, roleBinding.Name, c.Options.PolicyConfig.OpenShiftSharedResourcesNamespace, err))
87+
}
88+
}
7689

7790
return nil
7891
}

0 commit comments

Comments
 (0)