Skip to content
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

feat: Support regional Compute Target TCP Proxy #2915

Closed

Conversation

gemmahou
Copy link
Collaborator

@gemmahou gemmahou commented Oct 14, 2024

Change description

Supporting regional Compute Target TCP Proxy is a prerequisite for FR b/246759060.

Since it's already supported in Terraform long times ago(4.x version), update servicemappings will be faster&straight-forward, we don't need to update TF library. So I implement that way in this PR.

An alternative will be migrating Compute Target TCP Proxy resource to direct controller, but I feel it's not necessary for now as it takes longer time to address the FR.

Assigned to @yuwenma @maqiuyujoyce Any thoughts on the implementation of regional Compute Target TCP Proxy?

Tests you have done

  • Run make ready-pr to ensure this PR is ready for review.
  • Perform necessary E2E testing for changed resources.

Copy link
Contributor

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please ask for approval from gemmahou. For more information see the Kubernetes Code Review Process.

The full list of commands accepted by this bot can be found 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

proxyBind:
description: |-
Immutable. This field only applies when the forwarding rule that references
this target proxy has a loadBalancingScheme set to INTERNAL_SELF_MANAGED.
type: boolean
proxyHeader:
description: |-
Specifies the type of proxy header to append before sending data to
Immutable. Specifies the type of proxy header to append before sending data to
Copy link
Collaborator Author

Choose a reason for hiding this comment

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

This is generated by make ready-pr. The field is immutable in regional TCP proxy, but can be updated by setProxyHeader method in global TCP Proxy.
@maqiuyujoyce currently, like other locational resources, we support regional and global in one ComputeTargetTCPProxy kind, is there a way to handle the case? Can we update the field description by ourselves anywhere?
Or, maybe we should consider starting support ComputeTargetTCPProxy and RegionalComputeTargetTCPProxy kind separately?

Copy link
Collaborator

Choose a reason for hiding this comment

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

IMO it depends on the use case and the priority:

  1. If it is a high priority to support this resource, and the common use cases include that the regional ComputeTargetTCPProxy referenced by other resources, then I suggest we do some hacks in the CRD generation to remove the Immutable. marking to unblock it asap.
  2. If it is not super high priority (it's unclear from the ticket) or the resource won't be commonly referenced by other resources (it's referenced in ComputeForwardingRule), then we can do some comparison between the two resources of different locationalities, and decide as a team whether we want to support the regional one as a separate resource.

I actually don't recall much feedback about our locationality design, so it'll mainly be up to ourselves to make a decision based on how its pros and cons will impact direct controllers. We could reach out to the service team to gather some information though.

No matter which option we choose, I don't see it makes a big difference in direct controller migration later.

@@ -106,6 +111,7 @@ spec:
type: string
required:
- backendServiceRef
- location
Copy link
Collaborator

Choose a reason for hiding this comment

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

It looks like you also added a required field to an existing CRD. This is a breaking change. If we plan to support regional Compute Target TCP Proxy into the existing ComputeTargetTCPProxy CRD, then we need to make this field optional and default it with value global.

@gemmahou
Copy link
Collaborator Author

Closing this PR. Discussed offline, we plan to support regional TCP proxy through direct controller.

@gemmahou gemmahou closed this Oct 16, 2024
@gemmahou gemmahou deleted the regionaltargettcpproxy branch October 16, 2024 18:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants