demo use of shard params

parent 3b2c1f7e
import std;
import directors;
import blob;
......@@ -40,7 +39,9 @@ acl vk8s_cluster_acl {
}
sub vcl_init {
new vk8s_cluster_param = directors.shard_param();
new vk8s_cluster = directors.shard();
vk8s_cluster.associate(vk8s_cluster_param.use());
vk8s_cluster.add_backend(vk8s_default_varnish-8445d4f7f-z2b9p_80);
vk8s_cluster.add_backend(vk8s_viking-service_172_17_0_13_80);
vk8s_cluster.add_backend(vk8s_default_varnish-8445d4f7f-ldljf_80);
......@@ -85,11 +86,12 @@ sub vcl_backend_fetch {
if (bereq.http.VK8S-Shard-Primary-Only) {
return (fetch);
}
vk8s_cluster_param.set(by=KEY, key=vk8s_cluster.key(bereq.http.Host));
if (bereq.retries == 0
&& !bereq.uncacheable
&& remote.ip !~ vk8s_cluster_acl
&& "" + vk8s_cluster.backend(resolve=NOW, by=KEY, key=vk8s_cluster.key(bereq.http.Host)) != server.identity) {
set bereq.backend = vk8s_cluster.backend(resolve=LAZY, by=KEY, key=vk8s_cluster.key(bereq.http.Host));
&& "" + vk8s_cluster.backend(resolve=NOW) != server.identity) {
set bereq.backend = vk8s_cluster.backend(resolve=LAZY);
set bereq.http.VK8S-Is-Bgfetch = bereq.is_bgfetch;
return (fetch);
}
......@@ -99,7 +101,7 @@ sub vcl_backend_response {
if (bereq.http.VK8S-Shard-Primary-Only) {
return (deliver);
}
if (bereq.backend == vk8s_cluster.backend(resolve=LAZY, by=KEY, key=vk8s_cluster.key(bereq.http.Host))) {
if (bereq.backend == vk8s_cluster.backend(resolve=LAZY)) {
if (beresp.http.VK8S-Cluster-TTL) {
set beresp.ttl = std.duration(
beresp.http.VK8S-Cluster-TTL + "s", 1s);
......@@ -116,7 +118,7 @@ sub vcl_backend_response {
}
sub vcl_backend_error {
if (bereq.backend == vk8s_cluster.backend(resolve=LAZY, by=KEY, key=vk8s_cluster.key(bereq.http.Host))) {
if (bereq.backend == vk8s_cluster.backend(resolve=LAZY)) {
return (deliver);
}
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment