-
Notifications
You must be signed in to change notification settings - Fork 416
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
🐛 Allow pattern usage for IntOrString fields #608
🐛 Allow pattern usage for IntOrString fields #608
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/lgtm
/assign @vincepri
pkg/crd/markers/validation.go
Outdated
// Allow string types or IntOrStrings. An IntOrString will still | ||
// apply the pattern validation when a string is detected, the pattern | ||
// will not apply to ints though. | ||
if schema.Type != "string" || schema.XIntOrString { | ||
return fmt.Errorf("must apply pattern to a string") |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we need to update the error message?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Can do, I wasn't sure originally though because I couldn't think of a good way to express the IntOrString
, perhaps must apply pattern to a string or IntOrString
but I don't like the inconsistency of casing 🤔
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That sounds like a good improvement over the current error message, maybe let's put backtick quotes around those types?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Have pushed an update with the new error message
912ffb7
to
62703ca
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
/approve
/lgtm
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: alvaroaleman, JoelSpeed, vincepri The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
As of today, if you want to add a pattern to a CRD field, the field has to be a string or you have to specify that it is of type string. Patterns are also compatible with
XIntOrString
but the CRD generator won't allow you to do this.When patterns are used with the
IntOrString
type, the validation is run if a string is detected, but not run when an integer is detected. I have a use case where I want to ensure that the field is either an integer or percentage, and a pattern can be useful for validating the percentage.There is also a workaround today where you can manually set a
IntOrString
field to a string type, but then validation blows up when you put an integer in.This PR should allow patterns when an
IntOrString
field is used.