Skip to content

Conversation

snorwin
Copy link
Member

@snorwin snorwin commented Sep 25, 2025

What type of PR is this?

/kind gep

What this PR does / why we need it:
In the current version of the GEP-3155, the semantics of an invalid ClientCertificateRef are not fully specified.
Additionally, the GEP states that an invalid ClientCertificateRef affects the ResolvedRefs condition on the Listeners, which I think is incorrect.

This PR clarifies the behavior by introducing a ResolvedRefs condition on the Gateway instead. That condition will be set whenever a ClientCertificateRef is invalid or not permitted.

Which issue(s) this PR fixes:

N/A

Does this PR introduce a user-facing change?:

NONE

@k8s-ci-robot k8s-ci-robot added release-note-none Denotes a PR that doesn't merit a release note. kind/gep PRs related to Gateway Enhancement Proposal(GEP) cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. labels Sep 25, 2025
@k8s-ci-robot k8s-ci-robot added do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. size/M Denotes a PR that changes 30-99 lines, ignoring generated files. labels Sep 25, 2025
@snorwin
Copy link
Member Author

snorwin commented Sep 25, 2025

/cc @robscott @kl52752 @rikatz

// to be attached. If a ReferenceGrant does not allow this reference, the
// "ResolvedRefs" condition MUST be set to False for this listener with the
// "RefNotPermitted" reason.
// This setting can be overridden on the service level by use of BackendTLSPolicy.
Copy link
Contributor

Choose a reason for hiding this comment

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

This statement is no longer true. gateway client certificate is part of gateway identity and should be the same for all connections from gateway to backend, this setting cannot be overridden on service level

Copy link
Member Author

Choose a reason for hiding this comment

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

I was thinking the same, but I didn’t want to remove it without discussing it first. If everyone agrees, I’ll go ahead and remove it.

@rikatz
Copy link
Member

rikatz commented Sep 26, 2025

/assign

@rikatz
Copy link
Member

rikatz commented Sep 26, 2025

overall lgtm.

Will leave final word for approvers :)

@snorwin
Copy link
Member Author

snorwin commented Sep 29, 2025

@robscott @youngnick what do you think about adding a ResolvedRefs condition to the Gateway? Would that make sense to you, or should we instead extend the Accepted condition with another reason? In general, how would an invalid client certificate affect acceptance?

I’m interested to hear your thoughts so we can improve the description further.

@snorwin snorwin requested a review from kl52752 October 16, 2025 09:49
@snorwin
Copy link
Member Author

snorwin commented Oct 16, 2025

@robscott Just a friendly reminder to PTAL.

@youngnick
Copy link
Contributor

Up until this point, we did not have anything in the top-level Gateway that could be an invalid reference, so having this did not make sense.

Now that we do, with tls and tls.frontend, then yes, to me it makes sense to add ResolvedRefs to the top-level Gateway Conditions.

@youngnick
Copy link
Contributor

To actually implement this, we will need to:

  • update the godoc with these changes
  • Add a new GatewayConditionType constant of ResolvedRefs, with associated Reason as its own GatewayConditionReason, with a description similar to what is talked about in the main godoc.
  • Make sure all of this is marked Experimental.

@snorwin
Copy link
Member Author

snorwin commented Oct 17, 2025

@youngnick thanks for the review.

  • update the godoc with these changes
  • Add a new GatewayConditionType constant of ResolvedRefs, with associated Reason as its own GatewayConditionReason, with a description similar to what is talked about in the main godoc.
  • Make sure all of this is marked Experimental.

Yes exactly, I will take care of the follow-up changes as soon as we have agreed on the refinement. Let me know if you would prefer to include them in this PR.

@robscott
Copy link
Member

Thanks @snorwin! This change LGTM, but would like to see a LGTM from @candita or @kl52752 before we merge this.

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: robscott, snorwin

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Oct 17, 2025
@robscott
Copy link
Member

Yes exactly, I will take care of the follow-up changes as soon as we have agreed on the refinement. Let me know if you would prefer to include them in this PR.

Thanks! I don't have a strong preference on if these are in the same PR or in a follow up. Since these specific changes are confined to the GEP and not API types, I think it's fine to leave this for a follow up.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. kind/gep PRs related to Gateway Enhancement Proposal(GEP) release-note-none Denotes a PR that doesn't merit a release note. size/M Denotes a PR that changes 30-99 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants