fix: update CEL validation for expireAfter and consolidateAfter fields to block invalid values like 1hr #2055
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.
Fixes #N/A
Description
Current CEL validation allows values like
1hr
to be set in the spec which causes the resources to be stuck in a weird state.How was this change tested?
Used this spec for nodepool:
Before the change:
In the logs:
After the change:
I can't replicate this in the unit tests since the tests parse the duration so testing that kind of makes it pointless since what we really want to test is CEL server-side validation catching it like it did above. I've added other unit tests to ensure that there's no regression.
Regex testing:
Before: https://regex101.com/r/C8F0Wf/1
After: https://regex101.com/r/nHnhl2/1
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.