Skip to content

fix(meshratelimit): add warning log about status code #13958

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

Open
wants to merge 2 commits into
base: master
Choose a base branch
from

Conversation

lukidzi
Copy link
Contributor

@lukidzi lukidzi commented Jul 15, 2025

Motivation

If the status is lower than 400 envoy fallback to 429. We shouldn't allow setting incorrect status

Implementation information

Added log information that setting status lower than 400 is not supported

Supporting documentation

part of: ##13319

@lukidzi lukidzi requested a review from a team as a code owner July 15, 2025 16:52
@lukidzi lukidzi requested review from slonka and bartsmykla July 15, 2025 16:52
Copy link
Contributor

Reviewer Checklist

🔍 Each of these sections need to be checked by the reviewer of the PR 🔍:
If something doesn't apply please check the box and add a justification if the reason is non obvious.

  • Is the PR title satisfactory? Is this part of a larger feature and should be grouped using > Changelog?
  • PR description is clear and complete. It Links to relevant issue as well as docs and UI issues
  • This will not break child repos: it doesn't hardcode values (.e.g "kumahq" as an image registry)
  • IPv6 is taken into account (.e.g: no string concatenation of host port)
  • Tests (Unit test, E2E tests, manual test on universal and k8s)
    • Don't forget ci/ labels to run additional/fewer tests
  • Does this contain a change that needs to be notified to users? In this case, UPGRADE.md should be updated.
  • Does it need to be backported according to the backporting policy? (this GH action will add "backport" label based on these file globs, if you want to prevent it from adding the "backport" label use no-backport-autolabel label)

@@ -9,6 +11,35 @@ func (t *MeshRateLimitResource) Deprecations() []string {
var deprecations []string
if len(pointer.Deref(t.Spec.From)) > 0 {
deprecations = append(deprecations, "'from' field is deprecated, use 'rules' instead")
for i, rule := range pointer.Deref(t.Spec.From) {
if rule.Default.Local != nil && isStatusInvalid(pointer.Deref(rule.Default.Local)) {
Copy link
Contributor

Choose a reason for hiding this comment

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

you don't need pointer.Deref if you just checked that rule.Default.Local is not nil

@@ -9,6 +11,35 @@ func (t *MeshRateLimitResource) Deprecations() []string {
var deprecations []string
if len(pointer.Deref(t.Spec.From)) > 0 {
deprecations = append(deprecations, "'from' field is deprecated, use 'rules' instead")
for i, rule := range pointer.Deref(t.Spec.From) {
if rule.Default.Local != nil && isStatusInvalid(pointer.Deref(rule.Default.Local)) {
deprecations = append(deprecations, fmt.Sprintf("'spec.from[%d].default.local.http.requestRate.status' must be 400 or higher. Please update your configuration.", i))
Copy link
Contributor

Choose a reason for hiding this comment

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

should we mention why that's the case? that envoy uses 429 when that happens?

Copy link
Contributor

Choose a reason for hiding this comment

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

should this be in deprecations or in warnings?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

warnings are not presented anywhere so it might not be a solution here

Signed-off-by: Lukasz Dziedziak <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants