Auto-register routes based on kubernetes service annotations

This commit is contained in:
Geoff Bourne
2018-05-26 12:31:40 -05:00
parent d3d1f36009
commit 2befd24b4a
7 changed files with 404 additions and 117 deletions
+20 -12
View File
@@ -1,35 +1,36 @@
package main
import (
"net"
"github.com/itzg/mc-router/server"
"github.com/alecthomas/kingpin"
"strconv"
"github.com/sirupsen/logrus"
"context"
"fmt"
"github.com/alecthomas/kingpin"
"github.com/itzg/mc-router/server"
"github.com/sirupsen/logrus"
"net"
"os"
"os/signal"
"fmt"
"strconv"
)
var (
port = kingpin.Flag("port", "The port bound to listen for Minecraft client connections").
Default("25565").Int()
apiBinding = kingpin.Flag("api-binding", "The host:port bound for servicing API requests").
String()
String()
mappings = kingpin.Flag("mapping", "Mapping of external hostname to internal server host:port").
StringMap()
StringMap()
versionFlag = kingpin.Flag("version", "Output version and exit").
Bool()
Bool()
kubeConfigFile = kingpin.Flag("kube-config", "The path to a kubernetes configuration file").String()
)
var (
version = "dev"
commit = "none"
date = "unknown"
commit = "none"
date = "unknown"
)
func showVersion() {
func showVersion() {
fmt.Printf("%v, commit %v, built at %v", version, commit, date)
}
@@ -54,6 +55,13 @@ func main() {
server.StartApiServer(*apiBinding)
}
err := server.K8sWatcher.Start(*kubeConfigFile)
if err != nil {
logrus.WithError(err).Warn("Skipping kubernetes integration")
} else {
defer server.K8sWatcher.Stop()
}
<-c
logrus.Info("Stopping")
cancel()