2 Commits

Author SHA1 Message Date
c36625cb56 chore: clean the start of the server 2021-12-03 18:55:03 +01:00
a067f0ee4c fix: rename WHOAMI_PORT to WHOAMI_PORT_NUMBER
k8s creates env var based on service name,
then WHOAMI_PORT exists and contains a URL instead of a number.
2021-12-03 18:49:47 +01:00
2 changed files with 25 additions and 20 deletions

View File

@ -22,7 +22,7 @@ Tiny Go webserver that prints os information and HTTP request to output
- `cert`: give me a certificate.
- `key`: give me a key.
- `port`: give me a port number. (it can be also defined with `WHOAMI_PORT` environment variable) (default: 80)
- `port`: give me a port number. (it can be also defined with `WHOAMI_PORT_NUMBER` environment variable) (default: 80)
- `name`: give me a name. (it can be also defined with `WHOAMI_NAME` environment variable)
## Examples

43
app.go
View File

@ -43,7 +43,7 @@ func init() {
flag.StringVar(&cert, "cert", "", "give me a certificate")
flag.StringVar(&key, "key", "", "give me a key")
flag.StringVar(&ca, "cacert", "", "give me a CA chain, enforces mutual TLS")
flag.StringVar(&port, "port", getEnv("WHOAMI_PORT", "80"), "give me a port number")
flag.StringVar(&port, "port", getEnv("WHOAMI_PORT_NUMBER", "80"), "give me a port number")
flag.StringVar(&name, "name", os.Getenv("WHOAMI_NAME"), "give me a name")
}
@ -55,27 +55,32 @@ var upgrader = websocket.Upgrader{
func main() {
flag.Parse()
http.HandleFunc("/data", dataHandler)
http.HandleFunc("/echo", echoHandler)
http.HandleFunc("/bench", benchHandler)
http.HandleFunc("/", whoamiHandler)
http.HandleFunc("/api", apiHandler)
http.HandleFunc("/health", healthHandler)
mux := http.NewServeMux()
mux.HandleFunc("/data", dataHandler)
mux.HandleFunc("/echo", echoHandler)
mux.HandleFunc("/bench", benchHandler)
mux.HandleFunc("/", whoamiHandler)
mux.HandleFunc("/api", apiHandler)
mux.HandleFunc("/health", healthHandler)
fmt.Println("Starting up on port " + port)
if cert == "" || key == "" {
log.Printf("Starting up on port %s", port)
if len(cert) > 0 && len(key) > 0 {
server := &http.Server{
Addr: ":" + port,
}
if len(ca) > 0 {
server.TLSConfig = setupMutualTLS(ca)
}
log.Fatal(server.ListenAndServeTLS(cert, key))
log.Fatal(http.ListenAndServe(":"+port, mux))
}
log.Fatal(http.ListenAndServe(":"+port, nil))
server := &http.Server{
Addr: ":" + port,
Handler: mux,
}
if len(ca) > 0 {
server.TLSConfig = setupMutualTLS(ca)
}
log.Printf("Starting up with TLS on port %s", port)
log.Fatal(server.ListenAndServeTLS(cert, key))
}
func setupMutualTLS(ca string) *tls.Config {