Auto-register routes based on kubernetes service annotations
This commit is contained in:
+20
-12
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user