func()

in controllers/stage/chain/delete_registryviewer_rbac.go [22:52]


func (h DeleteRegistryViewerRbac) 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("Deleting RoleBinding sa-registry-viewer")

	if !platform.IsOpenshift() {
		logger.Info("Skip deleting RoleBinding sa-registry-viewer non-openshift platform")

		return nil
	}

	if err := h.multiClusterCl.Delete(ctx, &rbacApi.RoleBinding{
		ObjectMeta: metav1.ObjectMeta{
			Name:      roleBindingName,
			Namespace: stage.Namespace,
		},
	}); err != nil {
		if k8sErrors.IsNotFound(err) {
			logger.Info("RoleBinding sa-registry-viewer has been already deleted")
			return nil
		}

		return fmt.Errorf("failed to delete %s RoleBinding: %w", roleBindingName, err)
	}

	logger.Info("RoleBinding for registry-viewer has been deleted")

	return nil
}