Skip to content

Commit 93fe70b

Browse files
committed
BUG/MAJOR: external mode: set all paths
path for file was not changed when --config-dir was used file was not reset on start, that could lead to invalid data or even prevent controller to start since this uses Go 1.16 feature, go.mod file needs to be updated
1 parent 79f7a7e commit 93fe70b

File tree

4 files changed

+12
-21
lines changed

4 files changed

+12
-21
lines changed

.gitlab-ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ variables:
1111
diff:
1212
stage: diff
1313
image:
14-
name: $CI_REGISTRY_GO/golang:1.15
14+
name: $CI_REGISTRY_GO/golang:1.16
1515
entrypoint: [ "" ]
1616
tags:
1717
- go
@@ -49,7 +49,7 @@ lint-commit-msg:
4949
unit-tests:
5050
stage: unit-tests
5151
image:
52-
name: $CI_REGISTRY_GO/golang:1.15
52+
name: $CI_REGISTRY_GO/golang:1.16
5353
entrypoint: [""]
5454
tags:
5555
- go

external.go

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@
1515
package main
1616

1717
import (
18-
"io/ioutil"
1918
"os"
2019
"path"
2120
"path/filepath"
@@ -40,8 +39,10 @@ func setupHAProxyEnv(osArgs utils.OSArgs) config.ControllerCfg {
4039
StateDir: "/tmp/haproxy-ingress/state",
4140
},
4241
}
42+
4343
if osArgs.CfgDir != "" {
4444
cfg.Env.CfgDir = osArgs.CfgDir
45+
cfg.Env.MainCFGFile = path.Join(cfg.Env.CfgDir, "haproxy.cfg")
4546
}
4647
if osArgs.RuntimeDir != "" {
4748
cfg.Env.RuntimeDir = osArgs.RuntimeDir
@@ -53,29 +54,15 @@ func setupHAProxyEnv(osArgs utils.OSArgs) config.ControllerCfg {
5354
logger.Panic(err)
5455
}
5556

56-
// Try to copy original file if current directory is project directory
57-
// Otherwise check if haproxy.cfg is already in config-dir
5857
dir, err := filepath.Abs(filepath.Dir(os.Args[0]))
5958
if err != nil {
6059
logger.Panic(err)
6160
}
6261
logger.Debug(dir)
63-
origin := path.Join(dir, "fs/usr/local/etc/haproxy/haproxy.cfg")
64-
_, err = os.Stat(origin)
62+
err = renameio.WriteFile(cfg.Env.MainCFGFile, haproxyConf, 0755)
6563
if err != nil {
66-
if _, err = os.Stat(cfg.Env.MainCFGFile); err != nil {
67-
logger.Panicf("%s not found", cfg.Env.MainCFGFile)
68-
}
69-
} else if err = copyFile(origin, cfg.Env.MainCFGFile); err != nil {
7064
logger.Panic(err)
7165
}
72-
return cfg
73-
}
7466

75-
func copyFile(src, dst string) (err error) {
76-
content, err := ioutil.ReadFile(src)
77-
if err != nil {
78-
return
79-
}
80-
return renameio.WriteFile(dst, content, 0640)
67+
return cfg
8168
}

go.mod

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
module github.com/haproxytech/kubernetes-ingress
22

3-
go 1.12
3+
go 1.16
44

55
require (
66
github.com/google/renameio v0.1.1-0.20200217212219-353f81969824

main.go

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
package main
1616

1717
import (
18+
_ "embed"
1819
"fmt"
1920
"net/http"
2021
"os"
@@ -31,9 +32,12 @@ import (
3132
"github.com/jessevdk/go-flags"
3233
)
3334

35+
//go:embed fs/usr/local/etc/haproxy/haproxy.cfg
36+
var haproxyConf []byte
37+
3438
func main() {
3539
var osArgs utils.OSArgs
36-
var parser = flags.NewParser(&osArgs, flags.IgnoreUnknown)
40+
parser := flags.NewParser(&osArgs, flags.IgnoreUnknown)
3741
_, err := parser.Parse()
3842
exitCode := 0
3943
defer func() {

0 commit comments

Comments
 (0)