Hi,

The trouble is that the backends are C structures created when you compile
the VCL, but std.getenv() is called when you use the compile VCL, so that
way too late.

I see two ways:
- use a dynamic backend vmod (like vmod_goto), allowing you to regularly
interrogate DNS a build an elastic director
- create a static backend point to you k8s proxy, and just set
req.http.host to whatever value you want.

The last one is two of course create a template, but remember that varnish
resolves domain names in static backend when it compiles the VCL, so the
resolved IP may not be right all the time.
-- 
Guillaume Quintard


On Tue, Sep 10, 2019 at 2:17 AM Bender, Charles <[email protected]>
wrote:

> Looking at a VCL I use to set hostname and this seems to work-
>
>
>
> sub vcl_deliver {
>
>   set resp.http.X-Cache-Node = server.hostname;
>
> }
>
>
>
> Maybe you can use in form of server.environmental_variable
>
>
>
> *From: *varnish-misc <varnish-misc-bounces+charles=
> [email protected]> on behalf of Hugues Alary <
> [email protected]>
> *Date: *Monday, September 9, 2019 at 6:09 PM
> *To: *varnish-misc <[email protected]>
> *Subject: *Environment variables in VCL
>
>
>
> Hi there,
>
>
>
> I'm using Varnish in a Kubernetes cluster and my configuration needs to
> use environment variables.
>
>
>
> More specifically, I'm trying to declare a `backend` with a `.host` whose
> value is an environment variable.
>
>
> backend b0 {
>   .host = "*$ENVIRONMENT_VARIABLE_HOSTNAME*";
>   .port = "80";
>   .connect_timeout = 300s;
>   .first_byte_timeout = 300s;
>   .between_bytes_timeout = 300s;
>
> }
>
>
>
> This doesn't work. It tried using the std.get_env() function but it
> doesn't work in this context.
>
>
>
> *Is there any way to use environment variables in VCL, or do I have to
> create a configuration template?*
>
>
>
> Thanks for your help,
>
>
>
> Cheers,
>
> -Hugues
>
>
> _______________________________________________
> varnish-misc mailing list
> [email protected]
> https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc
>
_______________________________________________
varnish-misc mailing list
[email protected]
https://www.varnish-cache.org/lists/mailman/listinfo/varnish-misc

Reply via email to