Documentation
¶
Overview ¶
Package hyperkube is a framework for kubernetes server components. It allows us to combine all of the kubernetes server components into a single binary where the user selects which components to run in any individual process.
Currently, only one server component can be run at once. As such there is no need to harmonize flags or identify logs across the various servers. In the future we will support launching and running many servers -- either by managing processes or running in-proc.
This package is inspired by https://github.com/spf13/cobra. However, as the eventual goal is to run *multiple* servers from one call, a new package was needed.
Index ¶
- type HyperKube
- func (hk *HyperKube) AddServer(s *Server)
- func (hk *HyperKube) FindServer(name string) (*Server, error)
- func (hk *HyperKube) Flags() *pflag.FlagSet
- func (hk *HyperKube) Out() io.Writer
- func (hk *HyperKube) Print(i ...interface{})
- func (hk *HyperKube) Printf(format string, i ...interface{})
- func (hk *HyperKube) Println(i ...interface{})
- func (hk *HyperKube) Run(args []string) error
- func (hk *HyperKube) RunToExit(args []string)
- func (hk *HyperKube) Servers() []Server
- func (hk *HyperKube) SetOut(w io.Writer)
- func (hk *HyperKube) Usage()
- type Server
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type HyperKube ¶
type HyperKube struct {
Name string // The executable name, used for help and soft-link invocation
Long string // A long description of the binary. It will be world wrapped before output.
// contains filtered or unexported fields
}
HyperKube represents a single binary that can morph/manage into multiple servers.
func (*HyperKube) AddServer ¶
func (hk *HyperKube) AddServer(s *Server)
AddServer adds a server to the HyperKube object.
func (*HyperKube) FindServer ¶
func (hk *HyperKube) FindServer(name string) (*Server, error)
FindServer will find a specific server named name.
func (*HyperKube) Flags ¶
func (hk *HyperKube) Flags() *pflag.FlagSet
Flags returns a flagset for "global" flags.
func (*HyperKube) Out ¶
func (hk *HyperKube) Out() io.Writer
Out returns the io.Writer that is used for all usage/error information
func (*HyperKube) Print ¶
func (hk *HyperKube) Print(i ...interface{})
Print is a convenience method to Print to the defined output
func (*HyperKube) Printf ¶
func (hk *HyperKube) Printf(format string, i ...interface{})
Printf is a convenience method to Printf to the defined output
func (*HyperKube) Println ¶
func (hk *HyperKube) Println(i ...interface{})
Println is a convenience method to Println to the defined output
func (*HyperKube) Run ¶
func (hk *HyperKube) Run(args []string) error
Run the server. This will pick the appropriate server and run it.
func (*HyperKube) RunToExit ¶
func (hk *HyperKube) RunToExit(args []string)
RunToExit will run the hyperkube and then call os.Exit with an appropriate exit code.
func (*HyperKube) Servers ¶
func (hk *HyperKube) Servers() []Server
Servers returns a list of all of the registred servers
type Server ¶
type Server struct {
SimpleUsage string // One line description of the server.
Long string // Longer free form description of the server
Run serverRunFunc // Run the server. This is not expected to return.
// contains filtered or unexported fields
}
Server describes a server that this binary can morph into.
func (*Server) Flags ¶
func (s *Server) Flags() *pflag.FlagSet
Flags returns a flagset for this server