ingress-nginx icon indicating copy to clipboard operation
ingress-nginx copied to clipboard

chore(deps): upgrade headers-more module to 0.37

Open milas opened this issue 1 year ago • 5 comments

What this PR does / why we need it:

Upgrade to v0.37 of the headers-more module.

Changelog: https://github.com/openresty/headers-more-nginx-module/compare/v0.34...v0.37

Types of changes

  • [x] Bug fix (non-breaking change which fixes an issue)
  • [ ] New feature (non-breaking change which adds functionality)
  • [ ] CVE Report (Scanner found CVE and adding report)
  • [ ] Breaking change (fix or feature that would cause existing functionality to change)
  • [ ] Documentation only

Which issue/s this PR fixes

n/a

How Has This Been Tested?

I'm currently unable to test this locally as I cannot successfully build a fully functioning controller image right now. (I'm getting unknown directive http2?)

Checklist:

  • [ ] My change requires a change to the documentation.
  • [ ] I have updated the documentation accordingly.
  • [x] I've read the CONTRIBUTION guide
  • [ ] I have added unit and/or e2e tests to cover my changes.
  • [x] All new and existing tests passed.

milas avatar Feb 19 '24 00:02 milas

This issue is currently awaiting triage.

If Ingress contributors determines this is a relevant issue, they will accept it by applying the triage/accepted label and provide further guidance.

The triage/accepted label can be added by org members by writing /triage accepted in a comment.

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/test-infra repository.

k8s-ci-robot avatar Feb 19 '24 00:02 k8s-ci-robot

Welcome @milas!

It looks like this is your first PR to kubernetes/ingress-nginx 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes/ingress-nginx has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. :smiley:

k8s-ci-robot avatar Feb 19 '24 00:02 k8s-ci-robot

Hi @milas. Thanks for your PR.

I'm waiting for a kubernetes member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

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/test-infra repository.

k8s-ci-robot avatar Feb 19 '24 00:02 k8s-ci-robot

Deploy Preview for kubernetes-ingress-nginx canceled.

Name Link
Latest commit b85ce01a14b901cb8222de2f2ae277ff930f82bd
Latest deploy log https://app.netlify.com/sites/kubernetes-ingress-nginx/deploys/65d29d23a542b20008c2ae75

netlify[bot] avatar Feb 19 '24 00:02 netlify[bot]

/ok-to-test

rikatz avatar Feb 26 '24 12:02 rikatz

/lgtm /approve Thanks

rikatz avatar Feb 26 '24 12:02 rikatz

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: milas, rikatz

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 avatar Feb 26 '24 12:02 k8s-ci-robot

/cherry-pick release-1.9

strongjz avatar Feb 26 '24 21:02 strongjz

@strongjz: #10991 failed to apply on top of branch "release-1.9":

Applying: chore(deps): upgrade headers-more module to 0.37
Using index info to reconstruct a base tree...
A	images/nginx-1.25/rootfs/build.sh
Falling back to patching base and 3-way merge...
CONFLICT (modify/delete): images/nginx-1.25/rootfs/build.sh deleted in HEAD and modified in chore(deps): upgrade headers-more module to 0.37. Version chore(deps): upgrade headers-more module to 0.37 of images/nginx-1.25/rootfs/build.sh left in tree.
error: Failed to merge in the changes.
hint: Use 'git am --show-current-patch=diff' to see the failed patch
Patch failed at 0001 chore(deps): upgrade headers-more module to 0.37
When you have resolved this problem, run "git am --continue".
If you prefer to skip this patch, run "git am --skip" instead.
To restore the original branch and stop patching, run "git am --abort".

In response to this:

/cherry-pick release-1.9

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/test-infra repository.

Oh no, I broke the cherry-pick bot because I fixed the comment in the 1.25 image 😭

milas avatar Feb 26 '24 22:02 milas

I'm happy to do a manual PR / git cherry-pick -x onto release-1.9 and accept the "conflict" if that's helpful.

Thanks for the review/merge 🙂

milas avatar Feb 26 '24 22:02 milas

FTR: this changed the behaviour for handling of multiple headers of the same name.

See https://kubernetes.slack.com/archives/CANQGM8BA/p1718618298930939


We just painfully discovered, that v1.10.0 upgraded the dependency headers-more (https://github.com/kubernetes/ingress-nginx/pull/10991) resulting in multiple headers being sent from the client to not be replaced but being appended. E.g.: when the client sent the header my-header thrice:

my-header: foobar
my-header: foobar
my-header: foobar

pre 1.10.0 "corrected" this to

my-header: foobar

while post 1.10.0 appends the values

my-header: foobar, foobar, foobar

Granted, sending the same header multiple times is the culprit. Nevertheless, this caught us off guard.

muffl0n avatar Jun 18 '24 05:06 muffl0n