in controllers/stage/chain/configure_registryviewer_rbac.go [19:55]
func (h ConfigureRegistryViewerRbac) ServeRequest(ctx context.Context, stage *cdPipeApi.Stage) error {
targetNamespace := stage.Spec.Namespace
roleBindingName := generateSaRegistryViewerRoleBindingName(stage)
logger := ctrl.LoggerFrom(ctx).WithValues("targetNamespace", targetNamespace, "roleBindingName", roleBindingName)
logger.Info("Configuring RoleBinding sa-registry-viewer")
if !platform.IsOpenshift() {
logger.Info("Skip configuring RoleBinding sa-registry-viewer for non-openshift platform")
return nil
}
if err := h.rbac.CreateRoleBindingIfNotExists(
ctx,
roleBindingName,
stage.Namespace,
[]rbacApi.Subject{
{
Kind: rbacApi.GroupKind,
APIGroup: rbacApi.GroupName,
Name: fmt.Sprintf("system:serviceaccounts:%s", targetNamespace),
},
},
rbacApi.RoleRef{
Kind: rbac.ClusterRoleKind,
APIGroup: rbacApi.GroupName,
Name: "registry-viewer",
},
); err != nil {
return fmt.Errorf("failed to create %s RoleBinding: %w", roleBindingName, err)
}
logger.Info("RoleBinding sa-registry-viewer has been configured")
return nil
}