-
Notifications
You must be signed in to change notification settings - Fork 472
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
Gateway::Status::Addresses has a new unique type []GatewayStatusAddress #2144
Gateway::Status::Addresses has a new unique type []GatewayStatusAddress #2144
Conversation
834e03c
to
e129ab5
Compare
I'd like some input from the maintainers that dropping As an end-user it would make sense to me that when consuming the |
This is a bit of a strange detail in CRDs. For defaulting to work properly, a field has to be marked as optional. So although the type is technically optional, the end result should never be empty since a default will be applied: gateway-api/apis/v1beta1/gateway_types.go Lines 462 to 464 in f13c905
|
Good point. I guess the question is when implementors update the status block with addresses do we want to require this field to be explicit - or like on GET default to 'IPAddress' if empty? |
Unfortunately we can only loosen validation, we can't go in the other direction. So in this case, even if we wanted to make this require input from implementations, we can't in a backwards compatible way. Potentially useful - k8s defaulting happens on writes, so it should be a bit more persistent/reliable than a read-based system. |
Thanks @dprotaso! This PR makes sense to me, but I want to make sure more meaningful related changes make it in before merging this one. IE we should probably only split this out in the same release as we're introducing new fields to GatewayStatusAddress. Adding a temporary hold until we can get that lined up as well. /hold |
This allows the status type to evolve separately from the spec type
e439321
to
7ef9781
Compare
rebased |
Thanks @dprotaso! Looks like the other pieces are coming together, will leave hold in place until everything is ready. /approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: dprotaso, robscott 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 |
Thanks @dprotaso! Everything for this GEP looks to be lined up well. All the other PRs LGTM and have other approvals or LGTMs, will merge in sequence. /hold cancel |
/kind cleanup
/area api
What type of PR is this?
What this PR does / why we need it:
GatewayAddress
(used in spec)Type
field is required to be set (dropped+optional
)Does this PR introduce a user-facing change?: