Added validation of duplicate names #1271
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Add ClowdApp Validating Webhook for Duplicate Name Prevention
Summary
Implements a validating webhook for ClowdApp resources to prevent duplicate names within the same ClowdEnvironment. This ensures logical uniqueness of ClowdApp names while allowing the same name to be used across different ClowdEnvironments.
What Changed
🔧 Webhook Implementation
clowdAppValidatorstruct with comprehensive validation logicspec.envNameto enable efficient webhook queriesfunc(context.Context, client.Client, *ClowdApp) field.ErrorListpattern📝 Validation Logic
🧪 Test Coverage
📚 Documentation Updates
docs/clowder-design.mdwith validation sectionTechnical Details
Validation Functions
All validation functions now use the same signature for consistency:
Field Indexing
Added
spec.envNamefield indexing inSetupWebhookWithManagerto enable efficient queries:Webhook Logic
The webhook validates on both CREATE and UPDATE operations:
Business Logic
Files Modified
apis/cloud.redhat.com/v1alpha1/clowdapp_webhook.go- Main webhook implementationapis/cloud.redhat.com/v1alpha1/webhook_suite_test.go- Unit teststests/kuttl/test-duplicate-name-validation/- Integration tests (4 files)docs/clowder-design.md- Documentation updatesTesting
make testpasses without errorsBreaking Changes
None - this is purely additive validation that prevents invalid configurations.