Support ESI with clustering #29

Open
slink wants to merge 1 commit from esi_cluster into master
slink commented 2021-09-14 11:39:23 +00:00 (Migrated from code.uplex.de)

NOTE: I was not yet able to confirm that this is working as intended, but I am pretty sure it is at least a step in the right direction.

Previously, we failed to support ESI correctly: The fetch node would run ESI on the client side, such that the delivery node would receive an already ESI processed object.

The concept of this change is:

Custom code on the fetch node decides on beresp.do_esi. vcl_deliver on the fetch node sets the "E" bit of a new flags header if obj.can_esi is true, which reflects beresp.do_esi and disables ESI processing.

When the delivery node receives an object from the fetch nodes, it sets beresp.do_esi based on the flags header.

Ultimately, beresp.do_esi == obj.can_esi is identical on the fetch and delivery nodes.

NOTE: I was not yet able to confirm that this is working as intended, but I am pretty sure it is at least a step in the right direction. Previously, we failed to support ESI correctly: The fetch node would run ESI on the client side, such that the delivery node would receive an already ESI processed object. The concept of this change is: Custom code on the fetch node decides on beresp.do_esi. vcl_deliver on the fetch node sets the "E" bit of a new flags header if obj.can_esi is true, which reflects beresp.do_esi and disables ESI processing. When the delivery node receives an object from the fetch nodes, it sets beresp.do_esi based on the flags header. Ultimately, beresp.do_esi == obj.can_esi is identical on the fetch and delivery nodes.
slink commented 2021-09-15 08:07:11 +00:00 (Migrated from code.uplex.de)

added 1 commit

Compare with previous version

added 1 commit <ul><li>c8464fe4 - Support ESI with clustering</li></ul> [Compare with previous version](https://code.uplex.de/uplex-varnish/k8s-ingress/merge_requests/29/diffs?diff_id=76&start_sha=8b2f9f2282ffad6c83d979d2ff8c21e9a00cc053)
slink commented 2021-09-15 10:54:32 +00:00 (Migrated from code.uplex.de)

Test is looking good after the trivial fix which I force-pushed this morning.
I'd suggest to merge !28 first, then this

Test is looking good after the trivial fix which I force-pushed this morning. I'd suggest to merge !28 first, then this
slink commented 2022-09-05 15:21:33 +00:00 (Migrated from code.uplex.de)

added 76 commits

  • c8464fe4...056e7261 - 75 commits from branch master
  • 72c87b74 - Support ESI with clustering

Compare with previous version

added 76 commits <ul><li>c8464fe4...056e7261 - 75 commits from branch <code>master</code></li><li>72c87b74 - Support ESI with clustering</li></ul> [Compare with previous version](https://code.uplex.de/uplex-varnish/k8s-ingress/merge_requests/29/diffs?diff_id=84&start_sha=c8464fe4d755991613ef0aad1897c8632f778282)
This pull request has changes conflicting with the target branch.
  • pkg/varnish/vcl/self_shard_tmpl.go
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin esi_cluster:esi_cluster
git switch esi_cluster

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch master
git merge --no-ff esi_cluster
git switch esi_cluster
git rebase master
git switch master
git merge --ff-only esi_cluster
git switch esi_cluster
git rebase master
git switch master
git merge --no-ff esi_cluster
git switch master
git merge --squash esi_cluster
git switch master
git merge --ff-only esi_cluster
git switch master
git merge esi_cluster
git push origin master
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
uplex-varnish/k8s-ingress!29
No description provided.