@@ -672,7 +672,15 @@ func (c *OpenshiftAPIConfig) bootstrapSCC(context genericapiserver.PostStartHook
672672func (c * OpenshiftAPIConfig ) ensureOpenShiftInfraNamespace (context genericapiserver.PostStartHookContext ) error {
673673 ns := bootstrappolicy .DefaultOpenShiftInfraNamespace
674674
675- ensureNamespaceServiceAccountRoleBindings (context , ns )
675+ ensureNamespaceServiceAccountRoleBindings (
676+ context ,
677+ ns ,
678+ & rbacrest.PolicyData {
679+ RoleBindings : map [string ][]rbac.RoleBinding {
680+ ns : bootstrappolicy .GetBootstrapServiceAccountProjectRoleBindings (ns ),
681+ },
682+ },
683+ )
676684
677685 var coreClient coreclient.CoreInterface
678686 err := wait .Poll (1 * time .Second , 30 * time .Second , func () (bool , error ) {
@@ -692,20 +700,29 @@ func (c *OpenshiftAPIConfig) ensureOpenShiftInfraNamespace(context genericapiser
692700 // Ensure we have the bootstrap SA for Nodes
693701 _ , err = coreClient .ServiceAccounts (ns ).Create (& kapi.ServiceAccount {ObjectMeta : metav1.ObjectMeta {Name : bootstrappolicy .InfraNodeBootstrapServiceAccountName }})
694702 if err != nil && ! kapierror .IsAlreadyExists (err ) {
695- glog .Errorf ("Error creating service account %s/%s: %v" , ns , bootstrappolicy .InfraNodeBootstrapServiceAccountName , err )
703+ utilruntime .HandleError (fmt .Errorf ("Error creating service account %s/%s: %v" , ns , bootstrappolicy .InfraNodeBootstrapServiceAccountName , err ))
704+ return err
696705 }
697706
698707 return nil
699708}
700709
701710// ensureDefaultNamespaceServiceAccountRoles initializes roles for service accounts in the default namespace
702711func (c * OpenshiftAPIConfig ) ensureDefaultNamespaceServiceAccountRoles (context genericapiserver.PostStartHookContext ) error {
703- ensureNamespaceServiceAccountRoleBindings (context , metav1 .NamespaceDefault )
712+ ensureNamespaceServiceAccountRoleBindings (
713+ context ,
714+ metav1 .NamespaceDefault ,
715+ & rbacrest.PolicyData {
716+ RoleBindings : map [string ][]rbac.RoleBinding {
717+ metav1 .NamespaceDefault : bootstrappolicy .GetBootstrapServiceAccountProjectRoleBindings (metav1 .NamespaceDefault ),
718+ },
719+ },
720+ )
704721 return nil
705722}
706723
707724// ensureNamespaceServiceAccountRoleBindings initializes roles for service accounts in the namespace
708- func ensureNamespaceServiceAccountRoleBindings (context genericapiserver.PostStartHookContext , namespaceName string ) {
725+ func ensureNamespaceServiceAccountRoleBindings (context genericapiserver.PostStartHookContext , namespaceName string , policyData * rbacrest. PolicyData ) {
709726 const ServiceAccountRolesInitializedAnnotation = "openshift.io/sa.initialized-roles"
710727
711728 var coreClient coreclient.CoreInterface
@@ -742,11 +759,6 @@ func ensureNamespaceServiceAccountRoleBindings(context genericapiserver.PostStar
742759 return
743760 }
744761
745- policyData := & rbacrest.PolicyData {
746- RoleBindings : map [string ][]rbac.RoleBinding {
747- namespace .Name : bootstrappolicy .GetBootstrapServiceAccountProjectRoleBindings (namespace .Name ),
748- },
749- }
750762 if err := policyData .EnsureRBACPolicy ()(context ); err != nil {
751763 utilruntime .HandleError (err )
752764 return
0 commit comments