func()

in controllers/stage/chain/put_openshift_project.go [22:50]


func (c PutOpenshiftProject) ServeRequest(ctx context.Context, stage *cdPipeApi.Stage) error {
	projectName := stage.Spec.Namespace
	logger := ctrl.LoggerFrom(ctx).WithValues("project", projectName)

	logger.Info("Try to create project")

	project := &projectApi.ProjectRequest{
		ObjectMeta: metaV1.ObjectMeta{
			Name: projectName,
			Labels: map[string]string{
				util.TenantLabelName: stage.Namespace,
			},
		},
	}

	if err := c.client.Create(context.TODO(), project); err != nil {
		if apierrors.IsAlreadyExists(err) {
			logger.Info("Project already exists")

			return nil
		}

		return fmt.Errorf("failed to create project: %w", err)
	}

	logger.Info("Project has been created")

	return nil
}