in controllers/stage/chain/configure_tenantadmin_rbac.go [23:56]
func (h ConfigureTenantAdminRbac) ServeRequest(ctx context.Context, stage *cdPipeApi.Stage) error {
targetNamespace := stage.Spec.Namespace
logger := ctrl.LoggerFrom(ctx).WithValues("target-ns", targetNamespace)
logger.Info("Configuring tenant admin RBAC")
if err := h.rbac.CreateRoleBindingIfNotExists(
ctx,
tenantAdminRbName,
targetNamespace,
[]rbacApi.Subject{
{
APIGroup: rbacApi.GroupName,
Kind: rbacApi.GroupKind,
Name: GetOIDCAdminGroupName(stage.Namespace),
},
{
APIGroup: rbacApi.GroupName,
Kind: rbacApi.GroupKind,
Name: GetOIDCDeveloperGroupName(stage.Namespace),
},
},
rbacApi.RoleRef{
APIGroup: rbacApi.GroupName,
Kind: rbac.ClusterRoleKind,
Name: "admin",
},
); err != nil {
return fmt.Errorf("failed to create %s rolebinding: %w", tenantAdminRbName, err)
}
logger.Info("RBAC for tenant admin has been configured successfully")
return nil
}