Skip to content

Commit

Permalink
Add additional varnisch run parameter
Browse files Browse the repository at this point in the history
Add additional varnisch run parameter

Signed-off-by: Denis Dabischa <denis.dabischa@kloeckner.com>
  • Loading branch information
Denis Dabischa committed Jun 16, 2020
1 parent 26256cf commit 3543c4b
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 23 deletions.
10 changes: 6 additions & 4 deletions cmd/kube-httpcache/internal/flags.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,11 @@ type KubeHTTPProxyFlags struct {
Port int
}
Varnish struct {
SecretFile string
Storage string
VCLTemplate string
VCLTemplatePoll bool
SecretFile string
Storage string
AdditionalParameter string
VCLTemplate string
VCLTemplatePoll bool
}
}

Expand Down Expand Up @@ -82,6 +83,7 @@ func (f *KubeHTTPProxyFlags) Parse() error {
flag.StringVar(&f.Varnish.SecretFile, "varnish-secret-file", "/etc/varnish/secret", "Varnish secret file")
flag.StringVar(&f.Varnish.Storage, "varnish-storage", "file,/tmp/varnish-data,1G", "varnish storage config")
flag.StringVar(&f.Varnish.VCLTemplate, "varnish-vcl-template", "/etc/varnish/default.vcl.tmpl", "VCL template file")
flag.StringVar(&f.Varnish.AdditionalParameter, "varnish-additional-parameter", "", "Additional varnish start parameter (-p, seperate by comma), like 'ban_dups=on,cli_timeout=30'")
flag.BoolVar(&f.Varnish.VCLTemplatePoll, "varnish-vcl-template-poll", false, "poll for file changes instead of using inotify (useful on some network filesystems)")

flag.Parse()
Expand Down
1 change: 1 addition & 0 deletions cmd/kube-httpcache/main.go
Original file line number Diff line number Diff line change
Expand Up @@ -112,6 +112,7 @@ func main() {
varnishController, err := controller.NewVarnishController(
opts.Varnish.SecretFile,
opts.Varnish.Storage,
opts.Varnish.AdditionalParameter,
opts.Frontend.Address,
opts.Frontend.Port,
opts.Admin.Address,
Expand Down
27 changes: 21 additions & 6 deletions pkg/controller/run.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package controller
import (
"context"
"fmt"
"strings"
"os"
"os/exec"

Expand Down Expand Up @@ -61,12 +62,7 @@ func (v *VarnishController) startVarnish(ctx context.Context) (*exec.Cmd, <-chan
c := exec.CommandContext(
ctx,
"varnishd",
"-F",
"-f", v.configFile,
"-S", v.SecretFile,
"-s", v.Storage,
"-a", fmt.Sprintf("%s:%d", v.FrontendAddr, v.FrontendPort),
"-T", fmt.Sprintf("%s:%d", v.AdminAddr, v.AdminPort),
v.generateParameter()...
)

c.Dir = "/"
Expand All @@ -82,3 +78,22 @@ func (v *VarnishController) startVarnish(ctx context.Context) (*exec.Cmd, <-chan

return c, r
}

func (v *VarnishController) generateParameter() []string {
args := []string{
"-F",
"-f", v.configFile,
"-S", v.SecretFile,
"-s", v.Storage,
"-a", fmt.Sprintf("%s:%d", v.FrontendAddr, v.FrontendPort),
"-T", fmt.Sprintf("%s:%d", v.AdminAddr, v.AdminPort),
}

if v.AdditionalParameter != "" {
for _, val := range strings.Split(v.AdditionalParameter, ",") {
args = append(args, "-p")
args = append(args, val)
}
}
return args
}
29 changes: 16 additions & 13 deletions pkg/controller/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ type TemplateData struct {
type VarnishController struct {
SecretFile string
Storage string
AdditionalParameter string
FrontendAddr string
FrontendPort int
AdminAddr string
Expand All @@ -40,6 +41,7 @@ type VarnishController struct {
func NewVarnishController(
secretFile string,
storage string,
additionalParameter string,
frontendAddr string,
frontendPort int,
adminAddr string,
Expand All @@ -66,19 +68,20 @@ func NewVarnishController(
}

return &VarnishController{
SecretFile: secretFile,
Storage: storage,
FrontendAddr: frontendAddr,
FrontendPort: frontendPort,
AdminAddr: adminAddr,
AdminPort: adminPort,
vclTemplate: tmpl,
vclTemplateUpdates: templateUpdates,
frontendUpdates: frontendUpdates,
backendUpdates: backendUpdates,
varnishSignaller: varnishSignaller,
configFile: "/tmp/vcl",
secret: secret,
SecretFile: secretFile,
Storage: storage,
AdditionalParameter: additionalParameter,
FrontendAddr: frontendAddr,
FrontendPort: frontendPort,
AdminAddr: adminAddr,
AdminPort: adminPort,
vclTemplate: tmpl,
vclTemplateUpdates: templateUpdates,
frontendUpdates: frontendUpdates,
backendUpdates: backendUpdates,
varnishSignaller: varnishSignaller,
configFile: "/tmp/vcl",
secret: secret,
}, nil
}

Expand Down

0 comments on commit 3543c4b

Please sign in to comment.