Skip to content

Conversation

@TortillaZHawaii
Copy link
Member

No description provided.

@k8s-ci-robot k8s-ci-robot added the do-not-merge/work-in-progress Indicates that a PR should not merge because it is a work in progress. label Sep 5, 2025
@k8s-ci-robot
Copy link
Contributor

Skipping CI for Draft Pull Request.
If you want CI signal for your change, please convert it to an actual PR.
You can still manually trigger a test run with /test all

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Sep 5, 2025
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: TortillaZHawaii

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 approved Indicates a PR has been approved by an approver from all required OWNERS files. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Sep 5, 2025
@TortillaZHawaii
Copy link
Member Author

/lint

Copy link
Contributor

@k8s-ci-robot k8s-ci-robot left a comment

Choose a reason for hiding this comment

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

@TortillaZHawaii: 2 warnings.

In response to this:

/lint

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

"k8s.io/ingress-gce/pkg/flags"
)

const ExperimentAnnotation = "networking.gke.io/l3-experiment"
Copy link
Contributor

Choose a reason for hiding this comment

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

Golint comments: exported const ExperimentAnnotation should have comment or be unexported. More info.


const ExperimentAnnotation = "networking.gke.io/l3-experiment"

func Wants(svc *corev1.Service) bool {
Copy link
Contributor

Choose a reason for hiding this comment

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

Golint comments: exported function Wants should have comment or be unexported. More info.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull Request Overview

This pull request introduces experimental L3 NetLB support by adding logic to conditionally configure forwarding rules and backend services for L3 protocol when the service is annotated with the L3 experiment annotation.

  • Adds L3 experiment annotation detection and enabling flag
  • Modifies backend service protocol selection to support L3
  • Updates forwarding rule creation to use L3 protocol and all ports when in L3 mode

Reviewed Changes

Copilot reviewed 7 out of 7 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
pkg/loadbalancers/l3/wants.go New file implementing L3 experiment detection logic
pkg/flags/flags.go Adds flag to enable L3 NetLB opt-in functionality
pkg/loadbalancers/l4netlb.go Refactors protocol selection and forwarding rule annotation handling
pkg/loadbalancers/l4netlbipv6.go Updates IPv6 firewall configuration for mixed protocol support
pkg/loadbalancers/forwarding_rules.go Modifies IPv4 forwarding rule creation for L3 support
pkg/loadbalancers/forwarding_rules_ipv6.go Modifies IPv6 forwarding rule creation for L3 support
pkg/forwardingrules/equal.go Improves string comparison using EqualFold

Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.

Comment on lines +479 to +480
if protocol == "" {
protocol = "UDP"
Copy link

Copilot AI Sep 5, 2025

Choose a reason for hiding this comment

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

The hardcoded default protocol 'UDP' should be defined as a constant or sourced from the same location as other protocol constants to maintain consistency and avoid magic strings.

Suggested change
if protocol == "" {
protocol = "UDP"
protocol = forwardingrules.ProtocolUDP

Copilot uses AI. Check for mistakes.

version := fr.IpVersion
if version == "" {
version = "IPV4"
Copy link

Copilot AI Sep 5, 2025

Choose a reason for hiding this comment

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

The hardcoded default version 'IPV4' should be defined as a constant to avoid magic strings and improve maintainability.

Copilot uses AI. Check for mistakes.
@TortillaZHawaii
Copy link
Member Author

/test-all

@k8s-ci-robot
Copy link
Contributor

PR needs rebase.

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@k8s-ci-robot k8s-ci-robot added the needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. label Oct 8, 2025
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/work-in-progress Indicates that a PR should not merge because it is a work in progress. needs-rebase Indicates a PR cannot be merged because it has merge conflicts with HEAD. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants