-
Notifications
You must be signed in to change notification settings - Fork 260
test: expand LRP test to include lifecycle events #4086
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
base: master
Are you sure you want to change the base?
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Adds negative Local Redirect Policy (LRP) test scenarios and parameterizes Prometheus endpoint usage in existing LRP tests.
- Extends testLRPCase to accept a Prometheus address for flexible metric validation.
- Introduces comprehensive negative and resilience LRP tests (resource recreation, pod restarts, cilium validation).
- Adds helper functions for validating Cilium LRP state and recreating test resources.
Reviewed Changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
| test/integration/lrp/lrp_test.go | Adds negative LRP test flow, Prometheus address parameter, and Cilium/LRP validation helpers. |
| test/integration/lrp/lrp_fqdn_test.go | Updates calls to testLRPCase to include the new Prometheus address parameter. |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
321a3ea to
ba2b602
Compare
ba2b602 to
b947a40
Compare
dfb53d7 to
4e6b260
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
Copilot reviewed 3 out of 3 changed files in this pull request and generated 3 comments.
Comments suppressed due to low confidence (1)
test/integration/lrp/lrp_test.go:517
- The
rand.Seed()call is made every timeTakeOne()is invoked, which can cause issues in concurrent tests or when called multiple times in quick succession (as the seed would be very similar). Additionally,rand.Seed()has been deprecated since Go 1.20 in favor of using the global generator which is automatically seeded.
Recommendation: Remove the rand.Seed() call and use the global random generator directly, which is automatically seeded in Go 1.20+:
func TakeOne[T any](slice []T) T {
if len(slice) == 0 {
var zero T
return zero
}
return slice[rand.Intn(len(slice))]
}Alternatively, if you need better randomness, use crypto/rand or math/rand/v2 for Go 1.22+.
// TakeOne takes one item from the slice randomly; if empty, it returns the empty value for the type
// Use in testing only
func TakeOne[T any](slice []T) T {
if len(slice) == 0 {
var zero T
return zero
}
rand.Seed(uint64(time.Now().UnixNano()))
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
test/integration/manifests/cilium/v1.13/cilium-config/cilium-config.yaml
Show resolved
Hide resolved
test/integration/manifests/cilium/v1.13/cilium-config/cilium-config.yaml
Show resolved
Hide resolved
5523454 to
b7e8be8
Compare
|
/azp run Azure Container Networking PR |
|
Azure Pipelines successfully started running 1 pipeline(s). |
Reason for Change:
Test Steps:
Purpose: This comprehensive lifecycle test ensures that Local Redirect Policy functionality is robust and survives various operational scenarios including pod restarts, resource deletion/recreation, and service restarts - validating both functional behavior through DNS metrics and dataplane configuration through Cilium CLI inspection.
Issue Fixed:
Requirements:
Notes: