Add HTTP server for liveness and readiness probes

pull/777/head
Aaron Schlesinger 8 years ago
parent 9615838656
commit ada108126c

@ -0,0 +1,20 @@
package main
import (
"net/http"
)
func readinessProbe(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func livenessProbe(w http.ResponseWriter, r *http.Request) {
w.WriteHeader(http.StatusOK)
}
func runProbesServer(addr string) error {
mux := http.NewServeMux()
mux.HandleFunc("/readiness", readinessProbe)
mux.HandleFunc("/liveness", livenessProbe)
return http.ListenAndServe(addr, mux)
}

@ -21,6 +21,7 @@ var rootServer = grpc.NewServer()
var env = environment.New()
var addr = ":44134"
var probe = ":44135"
var namespace = ""
const globalUsage = `The Kubernetes Helm server.
@ -53,10 +54,28 @@ func start(c *cobra.Command, args []string) {
}
fmt.Printf("Tiller is running on %s\n", addr)
fmt.Printf("Tiller probes server is running on %s\n", probe)
if err := rootServer.Serve(lstn); err != nil {
srvErrCh := make(chan error)
probeErrCh := make(chan error)
go func() {
if err := rootServer.Serve(lstn); err != nil {
srvErrCh <- err
}
}()
go func() {
if err := runProbesServer(probe); err != nil {
probeErrCh <- err
}
}()
select {
case err := <-srvErrCh:
fmt.Fprintf(os.Stderr, "Server died: %s\n", err)
os.Exit(1)
case err := <-probeErrCh:
fmt.Fprintf(os.Stderr, "Probes server died: %s\n", err)
}
}

Loading…
Cancel
Save