Skip to content

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
    • Help
    • Submit feedback
    • Contribute to GitLab
  • Sign in
k8s-ingress
k8s-ingress
  • Project
    • Project
    • Details
    • Activity
    • Releases
    • Cycle Analytics
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
    • Charts
  • Issues 0
    • Issues 0
    • List
    • Board
    • Labels
    • Milestones
  • Merge Requests 3
    • Merge Requests 3
  • Wiki
    • Wiki
  • Members
    • Members
  • Collapse sidebar
  • Activity
  • Graph
  • Charts
  • Create a new issue
  • Commits
  • Issue Boards
  • uplex-varnish
  • k8s-ingressk8s-ingress
  • Merge Requests
  • !29

Open
Opened Sep 14, 2021 by Nils Goroll@slink
  • Report abuse
Report abuse

Support ESI with clustering

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.

Check out, review, and merge locally

Step 1. Fetch and check out the branch for this merge request

git fetch origin
git checkout -b esi_cluster origin/esi_cluster

Step 2. Review the changes locally

Step 3. Merge the branch and fix any conflicts that come up

git fetch origin
git checkout origin/master
git merge --no-ff esi_cluster

Step 4. Push the result of the merge to GitLab

git push origin master

Note that pushing to GitLab requires write access to this repository.

Tip: You can also checkout merge requests locally by following these guidelines.

  • Discussion 1
  • Commits 1
  • Changes 1
Assignee
No assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
0
Labels
None
Assign labels
  • View project labels
Reference: uplex-varnish/k8s-ingress!29