Ingress: Improve port opening
Update nginx replica counts and rollout strategy.
What proxy-backend configmap changes and reload auto proxy nginx.
Make ingress optional.
Use <PREFIX>.<CLUSTER_NAME>.clusters.p.<DOMAIN> addresses for remote
cluster services.
Change-Id: Ideb146a8c0275822ee5cd28311c00a817f4202aa
diff --git a/apps/reload/main.go b/apps/reload/main.go
new file mode 100644
index 0000000..a06d16f
--- /dev/null
+++ b/apps/reload/main.go
@@ -0,0 +1,68 @@
+package main
+
+import (
+ "crypto/sha256"
+ "flag"
+ "fmt"
+ "io"
+ "os"
+ "syscall"
+ "time"
+)
+
+var watch = flag.String("watch", "", "Path to watch")
+var reload = flag.String("reload", "", "Path to PID file")
+
+func check(err error) {
+ if err != nil {
+ panic(err)
+ }
+}
+
+func main() {
+ flag.Parse()
+ var prev string
+ for {
+ cur := func() string {
+ inp, err := os.Open(*watch)
+ check(err)
+ defer inp.Close()
+ h := sha256.New()
+ _, err = io.Copy(h, inp)
+ check(err)
+ return string(h.Sum(nil))
+ }()
+ if prev == "" {
+ prev = cur
+ continue
+ }
+ if prev != cur {
+ prev = cur
+ fmt.Println("changed")
+ pid := func() int {
+ inp, err := os.Open(*reload)
+ // TODO(gio): check error type
+ if err != nil {
+ return -1
+ }
+ defer inp.Close()
+ var ret int
+ _, err = fmt.Fscanf(inp, "%d", &ret)
+ check(err)
+ return ret
+ }()
+ if pid != -1 {
+ p, err := os.FindProcess(pid)
+ check(err)
+ fmt.Println("found process")
+ fmt.Println("%+v\n", p)
+ // TODO(gio): take signal value from flags
+ check(p.Signal(syscall.SIGKILL))
+ fmt.Println("sent signall")
+ }
+ } else {
+ fmt.Println("no change")
+ }
+ time.Sleep(5 * time.Second)
+ }
+}