docker k8s二次开发(一) 注册自定义api


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
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值