mirror of https://github.com/k3s-io/k3s
hyperkube: add alpha subcommand
parent
1675f025ea
commit
f1c12f8b13
|
@ -42,6 +42,7 @@ type HyperKube struct {
|
|||
Long string // A long description of the binary. It will be world wrapped before output.
|
||||
|
||||
servers []Server
|
||||
alphaServers []Server
|
||||
baseFlags *pflag.FlagSet
|
||||
out io.Writer
|
||||
helpFlagVal bool
|
||||
|
@ -54,9 +55,24 @@ func (hk *HyperKube) AddServer(s *Server) {
|
|||
hk.servers[len(hk.servers)-1].hk = hk
|
||||
}
|
||||
|
||||
// AddServer adds an alpha server to the HyperKube object.
|
||||
func (hk *HyperKube) AddAlphaServer(s *Server) {
|
||||
hk.alphaServers = append(hk.alphaServers, *s)
|
||||
hk.alphaServers[len(hk.alphaServers)-1].hk = hk
|
||||
}
|
||||
|
||||
// FindServer will find a specific server named name.
|
||||
func (hk *HyperKube) FindServer(name string) (*Server, error) {
|
||||
for _, s := range hk.servers {
|
||||
return findServer(name, hk.servers)
|
||||
}
|
||||
|
||||
// FindServer will find a specific alpha server named name.
|
||||
func (hk *HyperKube) FindAlphaServer(name string) (*Server, error) {
|
||||
return findServer(name, hk.alphaServers)
|
||||
}
|
||||
|
||||
func findServer(name string, servers []Server) (*Server, error) {
|
||||
for _, s := range servers {
|
||||
if s.Name() == name || s.AlternativeName == name {
|
||||
return &s, nil
|
||||
}
|
||||
|
@ -154,7 +170,23 @@ func (hk *HyperKube) Run(args []string, stopCh <-chan struct{}) error {
|
|||
}
|
||||
}
|
||||
|
||||
s, err := hk.FindServer(serverName)
|
||||
var s *Server
|
||||
var err error
|
||||
if serverName == "alpha" {
|
||||
if len(args) > 0 && len(args[0]) > 0 {
|
||||
serverName = args[0]
|
||||
args = args[1:]
|
||||
hk.Printf("Warning: alpha command syntax is unable!\n\n")
|
||||
} else {
|
||||
err = errors.New("no alpha server specified")
|
||||
hk.Printf("Error: %v\n\n", err)
|
||||
hk.Usage()
|
||||
return err
|
||||
}
|
||||
s, err = hk.FindAlphaServer(serverName)
|
||||
} else {
|
||||
s, err = hk.FindServer(serverName)
|
||||
}
|
||||
if err != nil {
|
||||
hk.Printf("Error: %v\n\n", err)
|
||||
hk.Usage()
|
||||
|
|
|
@ -151,6 +151,7 @@ func runFull(t *testing.T, args string, stopCh <-chan struct{}) *result {
|
|||
hk.AddServer(testServer("test1"))
|
||||
hk.AddServer(testServer("test2"))
|
||||
hk.AddServer(testServer("test3"))
|
||||
hk.AddAlphaServer(testServer("testAlpha1"))
|
||||
hk.AddServer(testServerError("test-error"))
|
||||
hk.AddServer(testStopChIgnoringServer("test-stop-ch-ignoring"))
|
||||
hk.AddServer(testStopChRespectingServer("test-stop-ch-respecting"))
|
||||
|
@ -236,6 +237,22 @@ func TestServerError(t *testing.T) {
|
|||
assert.EqualError(t, x.err, "server returning error")
|
||||
}
|
||||
|
||||
func TestAlphaRun(t *testing.T) {
|
||||
x := runFull(t, "hyperkube alpha testAlpha1", wait.NeverStop)
|
||||
assert.NoError(t, x.err)
|
||||
}
|
||||
|
||||
func TestAlphaNoArgs(t *testing.T) {
|
||||
x := runFull(t, "hyperkube alpha", wait.NeverStop)
|
||||
assert.EqualError(t, x.err, "no alpha server specified")
|
||||
}
|
||||
|
||||
func TestAlphaBadServer(t *testing.T) {
|
||||
x := runFull(t, "hyperkube alpha bad-server", wait.NeverStop)
|
||||
assert.EqualError(t, x.err, "Server not found: bad-server")
|
||||
assert.Contains(t, x.output, "Usage")
|
||||
}
|
||||
|
||||
func TestStopChIgnoringServer(t *testing.T) {
|
||||
stopCh := make(chan struct{})
|
||||
returnedCh := make(chan struct{})
|
||||
|
|
|
@ -36,7 +36,6 @@ func main() {
|
|||
hk.AddServer(NewKubectlServer())
|
||||
hk.AddServer(NewKubeAPIServer())
|
||||
hk.AddServer(NewKubeControllerManager())
|
||||
hk.AddServer(NewCloudControllerManager())
|
||||
hk.AddServer(NewScheduler())
|
||||
if kubelet, err := NewKubelet(); err != nil {
|
||||
fmt.Fprintf(os.Stderr, "error: %v\n", err)
|
||||
|
@ -47,5 +46,11 @@ func main() {
|
|||
hk.AddServer(NewKubeProxy())
|
||||
hk.AddServer(NewKubeAggregator())
|
||||
|
||||
// Alpha servers
|
||||
hk.AddAlphaServer(NewCloudControllerManager())
|
||||
|
||||
// Alpha servers
|
||||
hk.AddAlphaServer(NewCloudControllerManager())
|
||||
|
||||
hk.RunToExit(os.Args)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue