package main
import (
"fmt"
"math/rand"
"os"
"time"
"wdcp-build/apiserver/app"
"wdcp-build/apiserver/options"
"github.com/spf13/pflag"
"k8s.io/apiserver/pkg/util/flag"
"k8s.io/kubernetes/pkg/util/logs"
)
func main() {
rand.Seed(time.Now().UTC().UnixNano())
s := options.NewServerRunOptions()
s.AddFlags(pflag.CommandLine)
flag.InitFlags()
logs.InitLogs()
defer logs.FlushLogs()
// verflag.PrintAndExitIfRequested()
if err := app.Run(s); err != nil {
fmt.Fprintf(os.Stderr, "%v\n", err)
os.Exit(1)
}
}
package app
import (
"wdcp-build/apiserver/options"
"wdcp-build/pkg/master"
)
func Run(s *options.ServerRunOptions) error {
// glog.Info("config-file>>>%s", s.ConfigFile)
// glog.Info("pkg-mac>>>>%s", s.PackageMac)
// glog.Info("docker-endpoints>>>%s", s.DockerEndpoints)
// client, err := s.NewSelfClient()
// if err != nil {
// glog.Errorf("Failed to create clientset: %v", err)
// }
// sharedInformers := informers.NewSharedInformerFactory(client, 10*time.Minute)
config := &master.Config{
ServerRunConfig: s,
}
m, err := master.New(config)
if err != nil {
return err
}
// sharedInformers.Start(wait.NeverStop)
m.Run(s)
return nil
}
package master
import (
"fmt"
"log"
"net/http"
"wdcp-build/apiserver/options"
"wdcp-build/pkg/apiserver"
"wdcp-build/pkg/util"
"github.com/emicklei/go-restful"
"github.com/golang/glog"
)
type Master struct {
HandlerContainer *restful.Container
}
type Config struct {
ServerRunConfig *options.ServerRunOptions
}
func New(c *Config) (*Master, error) {
isExist, err := util.PathExists(c.ServerRunConfig.ConfigFile)
if !isExist {
return nil, err
}
util.RunOption, err = util.ReadFile(c.ServerRunConfig.ConfigFile)
if err != nil {
return nil, err
}
// glog.Info("RunOptions>>>>>%s", util.RunOption)
container := restful.NewContainer()
m := &Master{
Handler