Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: Implement SpaceBindingRequest controller main logic #372

Merged
merged 4 commits into from
Aug 23, 2023

Conversation

mfrancisc
Copy link
Contributor

@mfrancisc mfrancisc commented Aug 14, 2023

Description

Add SpaceBinding provisioning reasons. Those will be used by the SpaceBindingRequest controller in the conditions of the SBR objects.

Jira: https://issues.redhat.com/browse/ASC-397

Checks

  1. Did you run make generate target? yes

  2. Did make generate change anything in other projects (host-operator, member-operator)? no

  3. In case of new CRD, did you the following? N/A

  4. In case other projects are changed, please provides PR links.

@drpaneas
Copy link

Be consistent with the rest of the constants format add consider adding comments.

e.g.

// SpaceBindingTerminatingReason represents the reason for space binding termination.
SpaceBindingTerminatingReason = terminatingReason

// SpaceBindingTerminatingFailedReason represents the reason for a failed space binding termination.
SpaceBindingTerminatingFailedReason = terminatingFailedReason

// SpaceBindingProvisioningFailedReason represents the reason for a failed space binding provisioning.
SpaceBindingProvisioningFailedReason = "UnableToProvision"

// SpaceBindingProvisioningReason represents the reason for space binding provisioning.
SpaceBindingProvisioningReason = provisioningReason

// SpaceBindingProvisionedReason represents the reason for a successfully provisioned space binding.
SpaceBindingProvisionedReason = provisionedReason

@mfrancisc
Copy link
Contributor Author

Be consistent with the rest of the constants format add consider adding comments.

@drpaneas thanks for your suggestion, I was indeed a bit too lazy 😅 ! Done, please see ecb17d1

Comment on lines 14 to 29
// --- Status condition reasons ---

// SpaceBindingTerminatingReason represents the reason for space binding termination.
SpaceBindingTerminatingReason = terminatingReason

// SpaceBindingTerminatingFailedReason represents the reason for a failed space binding termination.
SpaceBindingTerminatingFailedReason = terminatingFailedReason

// SpaceBindingProvisioningFailedReason represents the reason for a failed space binding provisioning.
SpaceBindingProvisioningFailedReason = "UnableToProvision"

// SpaceBindingProvisioningReason represents the reason for space binding provisioning.
SpaceBindingProvisioningReason = provisioningReason

// SpaceBindingProvisionedReason represents the reason for a successfully provisioned space binding.
SpaceBindingProvisionedReason = provisionedReason
Copy link
Contributor

@MatousJobanek MatousJobanek Aug 15, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

shouldn't be these constant placed rather in SpaceBindingRequest file?
and also, since they are going to be used in SBR CR only, then we should name them accordingly.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Similar usage in the UserSignup case: https://github.com/codeready-toolchain/api/blob/master/api/v1alpha1/usersignup_types.go#L80
We could also rename UnableToProvision to UnableToCreateSpaceBinding

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MatousJobanek thanks for pointing out the usersignup example!

The reason I've added them in the spacebinding_types and kept this naming was mainly because I was following the SpaceRequest example, where we reflect the Ready condition from the Space object to the SpaceRequest. Similarly, as pointed out in one of our Slack discussions, I expected those conditions to be available in the SpaceBinding.Status.Conditions and be able to copy them in the SpaceBindingRequest.Status.Conditions. For the time being I've added them here with the plan of implementing conditions in the SpaceBinding resource , as we discussed. But I don't have a strong opinion on this, let's just decide which example we want to follow (the UserSignup one or the SpaceRequest example).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MatousJobanek as discussed in our 1:1 today I've updated the PR and moved the reasons to spacebindingrequest_types.go , also I've renamed them accordingly. Please take a look at fac7152 when you have some time and thanks for your pointers!

@sonarcloud
Copy link

sonarcloud bot commented Aug 23, 2023

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 0 Code Smells

No Coverage information No Coverage information
0.0% 0.0% Duplication

@mfrancisc mfrancisc merged commit fe9ca97 into codeready-toolchain:master Aug 23, 2023
3 checks passed
@mfrancisc mfrancisc deleted the sbrmain branch August 23, 2023 08:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants