ILB: Optimize shared resource lock with fixed hashed pool and OCC#1022
Closed
08volt wants to merge 159 commits intokubernetes:release-1.35from
Closed
ILB: Optimize shared resource lock with fixed hashed pool and OCC#102208volt wants to merge 159 commits intokubernetes:release-1.35from
08volt wants to merge 159 commits intokubernetes:release-1.35from
Conversation
…s. Emulating different platforms and compiling code tends to be slow and leads to timeouts
cleanup: Delete unused packages
Signed-off-by: LogicalShark <maralder@google.com>
Minor doc fixes and typos
Use native build platform to speed up build times for multiarch builds.
chore: bump go to 1.25.6
Add Resource Annotations to L4 LB Service
An adapted copy of similar changes done to ingress-gce: * two new GCE flags `enable-l4-deny-firewall` and `enable-l4-deny-firewall-rollback-cleanup`, * adds deny firewall functionality with correct order for provisioning/cleanup, the new firewall is following the previous naming scheme and adds "-deny" suffix at the end, * exports metric "number_of_l4_netlbs" including firewall deny state and general status, * vendors in `cmpopts` for easier testing.
Deny firewall for external services
Integrated the test/e2e directory into the Go workspace to resolve module resolution and version skew issues. Previously, running 'go test -c' within 'test/e2e' failed locally because: 1. The root 'go.work' file excluded './test/e2e', causing Go to treat it as a sub-package of the root module, which conflicted with the presence of 'test/e2e/go.mod'. 2. There was a version mismatch in 'test/e2e/go.mod' (Kubernetes v1.31.5 vs v1.34.2 in the root), leading to 'undefined' symbol errors when building without workspace mode. Changes: - Updated 'go.work' and 'tools/update_vendor.sh' to include './test/e2e'. - Updated 'test/e2e/go.mod' to use Kubernetes v1.34.2 and renamed the module to 'k8s.io/cloud-provider-gcp/test/e2e' to match the directory structure. - Fixed API compatibility issues in 'test/e2e/loadbalancer.go' (Scale API change) and 'test/e2e/network_tiers.go' (Logf format string). - Updated 'test/e2e/firewall.go' to use the modern 'framework.GetControlPlaneNodes' helper.
Signed-off-by: LogicalShark <maralder@google.com>
Fix local build of e2e test binary
Update .gitignore to exclude local build artifacts
Signed-off-by: LogicalShark <maralder@google.com>
Add `make test` to replace `bazel test`
Migrates the release-tars build process from Bazel to Make
Signed-off-by: LogicalShark <maralder@google.com>
Sync go.work.sum in dependabot PRs
Because k8s deps are tightly coupled, they should ideally be updated together and isolated from other deps update. Also, clean up configs for obsolete directories.
fix: move dependabot-sync.yml under workflows
instead of GitHub Actions.
Implement standard adaptiveipam gRPC server (daemon_server.go) to listen for pod IP allocation requests over a Unix Domain Socket. And implement rpc AllocatePodIP and DeallocatePodIP. Implemented retries for DB errors within daemon serer. Implement new methods in the Store to interface with the SQLite DB, supporting idempotency for all: AddCIDR: Add CIDR blocks and seeds individual IP addresses. AllocateIPv4: Find available IP slots and flips is_allocated to true. ReleaseIPByOwner: Releases pod IP addresses by owner identifiers and sets cooldown period timestamp. Threading model: Each RPC request can call store concurrently to optimize request latency. The DB transactions guarantees thread safet between concurrent requests. Existing WAL mode and busy_timeout supports high concurrent read/write operations without locking. No implementation for IPv6 yet.
…n-to-emeritus Move jprzychodzen to emeritus approvers
* fix: use commit SHA instead of tags for actions I think k8s repos started to enforce using commit SHA (which makes sense from security perspective) because the workflow is currently failing with `The action actions/checkout@v4 is not allowed in kubernetes/cloud-provider-gcp because all actions must be pinned to a full-length commit SHA.` Also update dependabot to handle github actions. * fix: use commit SHA for actions/setup-go
f238d30 to
76346f3
Compare
…rce-specific mutex pool for GCE load balancer operations (except external) and protect with feature flag
Contributor
|
PR needs rebase. DetailsInstructions 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. |
Contributor
|
[APPROVALNOTIFIER] This PR is NOT APPROVED This pull-request has been approved by: 08volt The full list of commands accepted by this bot can be found here. DetailsNeeds approval from an approver in each of these files:Approvers can indicate their approval by writing |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaced the heavy global mutex
sharedResourceLockin the ILB controller with a hybrid locking strategy to eliminate serialization bottlenecks:This unblocks independent service reconciliations and prevents
nodesyncstalls during service update storms.