start

package
v3.9.0-alpha.2+incompa... Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 11, 2018 License: Apache-2.0 Imports: 110 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ComponentGroupNetwork = "network"
	ComponentProxy        = "proxy"
	ComponentDNS          = "dns"
	ComponentPlugins      = "plugins"
	ComponentKubelet      = "kubelet"
)
View Source
const RecommendedStartEtcdServerName = "etcd"

Variables

This section is empty.

Functions

func BindImageFormatArgs

func BindImageFormatArgs(args *ImageFormatArgs, flags *pflag.FlagSet, prefix string)

BindImageFormatArgs binds values to the given arguments by using flags

func BindKubeConnectionArgs

func BindKubeConnectionArgs(args *KubeConnectionArgs, flags *pflag.FlagSet, prefix string)

BindKubeConnectionArgs binds values to the given arguments by using flags

func BindListenArg

func BindListenArg(args *ListenArg, flags *pflag.FlagSet, prefix string)

BindListenArg binds values to the given arguments by using flags

func BindMasterArgs

func BindMasterArgs(args *MasterArgs, flags *pflag.FlagSet, prefix string)

BindMasterArgs binds the options to the flags with prefix + default flag names

func BindNetworkArgs

func BindNetworkArgs(args *NetworkArgs, flags *pflag.FlagSet, prefix string)

BindNetworkArgs binds values to the given arguments by using flags

func BindNodeArgs

func BindNodeArgs(args *NodeArgs, flags *pflag.FlagSet, prefix string, components bool)

BindNodeArgs binds the options to the flags with prefix + default flag names

func BindNodeNetworkArgs added in v1.1.4

func BindNodeNetworkArgs(args *NodeArgs, flags *pflag.FlagSet, prefix string)

BindNodeNetworkArgs binds the options to the flags with prefix + default flag names

func GetAllInOneArgs

func GetAllInOneArgs() (*MasterArgs, *NodeArgs, *ListenArg, *ImageFormatArgs, *KubeConnectionArgs)

GetAllInOneArgs makes sure that the node and master args that should be shared, are shared

func NewInformers

func NewInformers(options configapi.MasterConfig) (*informers, error)

NewInformers is only exposed for the build's integration testing until it can be fixed more appropriately.

func NewNetworkComponentFlag added in v1.1.4

func NewNetworkComponentFlag() *utilflags.ComponentFlag

NewNodeComponentFlag returns a flag capable of handling enabled components for the network

func NewNodeComponentFlag added in v1.1.4

func NewNodeComponentFlag() *utilflags.ComponentFlag

NewNodeComponentFlag returns a flag capable of handling enabled components for the node

func StartAPI added in v1.1.2

func StartAPI(oc *origin.MasterConfig, controllerPlug plug.Plug) error

StartAPI starts the components of the master that are considered part of the API - the Kubernetes API and core controllers, the Origin API, the group, policy, project, and authorization caches, etcd, the asset server (for the UI), the OAuth server endpoints, and the DNS server. TODO: allow to be more granularly targeted

func StartNode

func StartNode(nodeConfig configapi.NodeConfig, components *utilflags.ComponentFlag) error

func ValidateRuntime added in v1.1.4

func ValidateRuntime(config *configapi.NodeConfig, components *utilflags.ComponentFlag) error

Types

type AllInOneOptions

type AllInOneOptions struct {
	MasterOptions *MasterOptions

	NodeArgs *NodeArgs

	ExpireDays         int
	SignerExpireDays   int
	ConfigDir          flag.StringFlag
	NodeConfigFile     string
	PrintIP            bool
	ServiceNetworkCIDR string
	Output             io.Writer
}

func NewCommandStartAllInOne

func NewCommandStartAllInOne(basename string, out, errout io.Writer) (*cobra.Command, *AllInOneOptions)

NewCommandStartAllInOne provides a CLI handler for 'start' command

func (*AllInOneOptions) Complete

func (o *AllInOneOptions) Complete() error

func (AllInOneOptions) IsRunFromConfig

func (o AllInOneOptions) IsRunFromConfig() bool

func (AllInOneOptions) IsWriteConfigOnly

func (o AllInOneOptions) IsWriteConfigOnly() bool

func (AllInOneOptions) StartAllInOne

func (o AllInOneOptions) StartAllInOne() error

StartAllInOne: 1. Creates the signer certificate if needed 2. Calls RunMaster 3. Calls RunNode 4. If only writing configs, it exits 5. Waits forever

func (AllInOneOptions) Validate

func (o AllInOneOptions) Validate(args []string) error

type EtcdOptions added in v1.1.2

type EtcdOptions struct {
	ConfigFile string
	Output     io.Writer
}

func NewCommandStartEtcdServer added in v1.1.2

func NewCommandStartEtcdServer(name, basename string, out, errout io.Writer) (*cobra.Command, *EtcdOptions)

NewCommandStartEtcdServer starts only the etcd server

func (*EtcdOptions) RunEtcdServer added in v1.1.2

func (o *EtcdOptions) RunEtcdServer() error

RunEtcdServer takes the options and starts the etcd server

func (*EtcdOptions) StartEtcdServer added in v1.1.2

func (o *EtcdOptions) StartEtcdServer() error

StartEtcdServer calls RunEtcdServer and then waits forever

func (*EtcdOptions) Validate added in v1.1.2

func (o *EtcdOptions) Validate() error

type GenericResourceInformer

type GenericResourceInformer interface {
	ForResource(resource schema.GroupVersionResource) (kexternalinformers.GenericInformer, error)
	Start(stopCh <-chan struct{})
}

type ImageFormatArgs

type ImageFormatArgs struct {
	// ImageTemplate is used in expanding parameterized Docker image references
	// from configuration or a file
	ImageTemplate variable.ImageTemplate
}

ImageFormatArgs is a struct that the command stores flag values into.

func NewDefaultImageFormatArgs

func NewDefaultImageFormatArgs() *ImageFormatArgs

NewDefaultImageFormatArgs returns the default image template

type KubeConnectionArgs

type KubeConnectionArgs struct {
	KubernetesAddr flagtypes.Addr

	// ClientConfig is used when connecting to Kubernetes from the master, or
	// when connecting to the master from a detached node. If StartKube is true,
	// this value is not used.
	ClientConfig clientcmd.ClientConfig
	// ClientConfigLoadingRules is the ruleset used to load the client config.
	// Only the CommandLinePath is expected to be used.
	ClientConfigLoadingRules clientcmd.ClientConfigLoadingRules
}

func NewDefaultKubeConnectionArgs

func NewDefaultKubeConnectionArgs() *KubeConnectionArgs

NewDefaultKubeConnectionArgs returns a new set of default connection arguments for Kubernetes

func (KubeConnectionArgs) GetExternalKubernetesClientConfig

func (args KubeConnectionArgs) GetExternalKubernetesClientConfig() (*restclient.Config, bool, error)

func (KubeConnectionArgs) GetKubernetesAddress

func (args KubeConnectionArgs) GetKubernetesAddress(defaultAddress *url.URL) (*url.URL, error)

func (KubeConnectionArgs) Validate

func (args KubeConnectionArgs) Validate() error

type ListenArg

type ListenArg struct {
	// ListenAddr is the address to listen for connections on (scheme://host:port).
	ListenAddr flagtypes.Addr
}

ListenArg is a struct that the command stores flag values into.

func NewDefaultListenArg

func NewDefaultListenArg() *ListenArg

NewDefaultListenArg returns a new address to listen for connections

func (*ListenArg) UseTLS

func (l *ListenArg) UseTLS() bool

UseTLS checks whether the address we listen for connections uses TLS or not

type Master added in v1.0.5

type Master struct {
	// contains filtered or unexported fields
}

Master encapsulates starting the components of the master

func NewMaster added in v1.0.5

func NewMaster(config *configapi.MasterConfig, controllers, api bool) *Master

NewMaster create a master launcher

func (*Master) Start added in v1.0.5

func (m *Master) Start() error

Start launches a master. It will error if possible, but some background processes may still be running and the process should exit after it finishes.

type MasterArgs

type MasterArgs struct {
	// MasterAddr is the master address for use by OpenShift components (host, host:port, or URL).
	// Scheme and port default to the --listen scheme and port. When unset, attempt to use the first
	// public IPv4 non-loopback address registered on this host.
	MasterAddr flagtypes.Addr

	// EtcdAddr is the address of the etcd server (host, host:port, or URL). If specified, no built-in
	// etcd will be started.
	EtcdAddr flagtypes.Addr

	// MasterPublicAddr is the master address for use by public clients, if different (host, host:port,
	// or URL). Defaults to same as --master.
	MasterPublicAddr flagtypes.Addr

	// StartAPI controls whether the API component of the master is started (to support the API role)
	// TODO: once we implement bastion role and kube/os controller role, revisit
	StartAPI bool
	// StartControllers controls whether the controller component of the master is started (to support
	// the controller role)
	StartControllers bool
	PauseControllers bool

	// DNSBindAddr exposed for integration tests to set
	DNSBindAddr flagtypes.Addr

	// EtcdDir is the etcd data directory.
	EtcdDir   string
	ConfigDir *flag.StringFlag

	// CORSAllowedOrigins is a list of allowed origins for CORS, comma separated.
	// An allowed origin can be a regular expression to support subdomain matching.
	// CORS is enabled for localhost, 127.0.0.1, and the asset server by default.
	CORSAllowedOrigins []string

	APIServerCAFiles []string

	ListenArg          *ListenArg
	ImageFormatArgs    *ImageFormatArgs
	KubeConnectionArgs *KubeConnectionArgs

	SchedulerConfigFile string

	NetworkArgs *NetworkArgs

	OverrideConfig func(config *configapi.MasterConfig) error
}

MasterArgs is a struct that the command stores flag values into. It holds a partially complete set of parameters for starting the master This object should hold the common set values, but not attempt to handle all cases. The expected path is to use this object to create a fully specified config later on. If you need something not set here, then create a fully specified config file and pass that as argument to starting the master.

func NewDefaultMasterArgs

func NewDefaultMasterArgs() *MasterArgs

NewDefaultMasterArgs creates MasterArgs with sub-objects created and default values set.

func (MasterArgs) BuildSerializeableEtcdConfig

func (args MasterArgs) BuildSerializeableEtcdConfig() (*configapi.EtcdConfig, error)

BuildSerializeableEtcdConfig creates a fully specified etcd startup configuration based on MasterArgs

func (MasterArgs) BuildSerializeableKubeMasterConfig

func (args MasterArgs) BuildSerializeableKubeMasterConfig() (*configapi.KubernetesMasterConfig, error)

BuildSerializeableKubeMasterConfig creates a fully specified kubernetes master startup configuration based on MasterArgs

func (MasterArgs) BuildSerializeableMasterConfig

func (args MasterArgs) BuildSerializeableMasterConfig() (*configapi.MasterConfig, error)

BuildSerializeableMasterConfig takes the MasterArgs (partially complete config) and uses them along with defaulting behavior to create the fully specified config object for starting the master

func (MasterArgs) BuildSerializeableOAuthConfig

func (args MasterArgs) BuildSerializeableOAuthConfig() (*configapi.OAuthConfig, error)

func (MasterArgs) GetAssetPublicAddress

func (args MasterArgs) GetAssetPublicAddress() (*url.URL, error)

func (MasterArgs) GetConfigFileToWrite

func (args MasterArgs) GetConfigFileToWrite() string

GetConfigFileToWrite returns the configuration filepath for master

func (MasterArgs) GetDNSBindAddress

func (args MasterArgs) GetDNSBindAddress() (flagtypes.Addr, error)

func (MasterArgs) GetEtcdAddress

func (args MasterArgs) GetEtcdAddress() (*url.URL, error)

GetEtcdAddress returns the address for etcd

func (MasterArgs) GetEtcdBindAddress

func (args MasterArgs) GetEtcdBindAddress() string

GetEtcdBindAddress derives the etcd bind address by using the bind address and the default etcd port

func (MasterArgs) GetEtcdPeerAddress

func (args MasterArgs) GetEtcdPeerAddress() (*url.URL, error)

func (MasterArgs) GetEtcdPeerBindAddress

func (args MasterArgs) GetEtcdPeerBindAddress() string

GetEtcdPeerBindAddress derives the etcd peer address by using the bind address and the default etcd peering port

func (MasterArgs) GetMasterAddress

func (args MasterArgs) GetMasterAddress() (*url.URL, error)

GetMasterAddress checks for an unset master address and then attempts to use the first public IPv4 non-loopback address registered on this host. TODO: make me IPv6 safe

func (MasterArgs) GetMasterPublicAddress

func (args MasterArgs) GetMasterPublicAddress() (*url.URL, error)

func (MasterArgs) GetPolicyFile

func (args MasterArgs) GetPolicyFile() string

GetPolicyFile returns the policy filepath for master

func (MasterArgs) GetServerCertHostnames

func (args MasterArgs) GetServerCertHostnames() (sets.String, error)

GetServerCertHostnames returns the set of hostnames that any serving certificate for master needs to be valid for.

func (MasterArgs) Validate

func (args MasterArgs) Validate() error

type MasterOptions

type MasterOptions struct {
	MasterArgs *MasterArgs

	CreateCertificates bool
	ExpireDays         int
	SignerExpireDays   int
	ConfigFile         string
	Output             io.Writer
	DisabledFeatures   []string
}

func NewCommandStartMaster

func NewCommandStartMaster(basename string, out, errout io.Writer) (*cobra.Command, *MasterOptions)

NewCommandStartMaster provides a CLI handler for 'start master' command

func NewCommandStartMasterAPI added in v1.0.5

func NewCommandStartMasterAPI(name, basename string, out, errout io.Writer) (*cobra.Command, *MasterOptions)

NewCommandStartMasterAPI starts only the APIserver

func NewCommandStartMasterControllers added in v1.0.5

func NewCommandStartMasterControllers(name, basename string, out, errout io.Writer) (*cobra.Command, *MasterOptions)

NewCommandStartMasterControllers starts only the controllers

func (*MasterOptions) Complete

func (o *MasterOptions) Complete() error

func (MasterOptions) CreateCerts

func (o MasterOptions) CreateCerts() error

func (*MasterOptions) DefaultsFromName added in v1.0.5

func (o *MasterOptions) DefaultsFromName(basename string)

func (MasterOptions) IsRunFromConfig

func (o MasterOptions) IsRunFromConfig() bool

func (MasterOptions) IsWriteConfigOnly

func (o MasterOptions) IsWriteConfigOnly() bool

func (MasterOptions) RunMaster

func (o MasterOptions) RunMaster() error

RunMaster takes the options and: 1. Creates certs if needed 2. Reads fully specified master config OR builds a fully specified master config from the args 3. Writes the fully specified master config and exits if needed 4. Starts the master based on the fully specified config

func (MasterOptions) StartMaster

func (o MasterOptions) StartMaster() error

StartMaster calls RunMaster and then waits forever

func (MasterOptions) Validate

func (o MasterOptions) Validate(args []string) error

type NetworkArgs

type NetworkArgs struct {
	// NetworkPluginName is the name of the networking plugin to be used for networking.
	NetworkPluginName string
	// ClusterNetworkCIDR is the CIDR string representing the network that all containers
	// should belong to.
	ClusterNetworkCIDR string
	// HostSubnetLength is the length of subnet each host is given from the network-cidr.
	HostSubnetLength uint32
	// ServiceNetworkCIDR is the CIDR string representing the network that service IP
	// addresses will be allocated from
	ServiceNetworkCIDR string
}

NetworkArgs is a struct that the command stores flag values into.

func NewDefaultNetworkArgs

func NewDefaultNetworkArgs() *NetworkArgs

NewDefaultNetworkArgs returns a new set of network arguments

type NodeArgs

type NodeArgs struct {
	// Components is the set of enabled components.
	Components *utilflags.ComponentFlag

	// NodeName is the hostname to identify this node with the master.
	NodeName string

	// Bootstrap is true if the node should rely on the server to set initial configuration.
	Bootstrap bool
	// BootstrapConfigName is the name of a config map to read node-config.yaml from.
	BootstrapConfigName string
	// BootstrapConfigNamespace is the namespace the config map for bootstrap config is expected to load from.
	BootstrapConfigNamespace string

	MasterCertDir string
	ConfigDir     flag.StringFlag

	AllowDisabledDocker bool
	// VolumeDir is the volume storage directory.
	VolumeDir string
	// VolumeDirProvided is set to true if the user has specified this flag.
	VolumeDirProvided bool

	DefaultKubernetesURL *url.URL
	ClusterDomain        string
	ClusterDNS           net.IP
	// DNSBindAddr is provided for the all-in-one start only and is not exposed via a flag
	DNSBindAddr string
	// RecursiveResolvConf
	RecursiveResolvConf string

	// NetworkPluginName is the network plugin to be called for configuring networking for pods.
	NetworkPluginName string

	ListenArg          *ListenArg
	ImageFormatArgs    *ImageFormatArgs
	KubeConnectionArgs *KubeConnectionArgs
}

NodeArgs is a struct that the command stores flag values into. It holds a partially complete set of parameters for starting a node. This object should hold the common set values, but not attempt to handle all cases. The expected path is to use this object to create a fully specified config later on. If you need something not set here, then create a fully specified config file and pass that as argument to starting the master.

func NewDefaultNodeArgs

func NewDefaultNodeArgs() *NodeArgs

NewDefaultNodeArgs creates NodeArgs with sub-objects created and default values set.

func (NodeArgs) BuildSerializeableNodeConfig

func (args NodeArgs) BuildSerializeableNodeConfig() (*configapi.NodeConfig, error)

BuildSerializeableNodeConfig takes the NodeArgs (partially complete config) and uses them along with defaulting behavior to create the fully specified config object for starting the node TODO: reconcile that this is not used by CreateNodeConfig in all-in-one start.

func (NodeArgs) GetServerCertHostnames added in v1.0.8

func (args NodeArgs) GetServerCertHostnames() (sets.String, error)

GetServerCertHostnames returns the set of hostnames and IP addresses a serving certificate for node on this host might need to be valid for.

func (NodeArgs) MergeSerializeableNodeConfig added in v1.5.0

func (args NodeArgs) MergeSerializeableNodeConfig(config *configapi.NodeConfig) error

MergeSerializeableNodeConfig takes the NodeArgs (partially complete config) and overlays them onto an existing config. Only a subset of node args are allowed to override this config - those that may reasonably be specified as local overrides.

func (NodeArgs) Validate

func (args NodeArgs) Validate() error

type NodeOptions

type NodeOptions struct {
	NodeArgs   *NodeArgs
	ExpireDays int

	ConfigFile string
	Output     io.Writer
}

func NewCommandStartNetwork added in v1.1.4

func NewCommandStartNetwork(basename string, out, errout io.Writer) (*cobra.Command, *NodeOptions)

NewCommandStartNetwork provides a CLI handler for 'start network' command

func NewCommandStartNode

func NewCommandStartNode(basename string, out, errout io.Writer) (*cobra.Command, *NodeOptions)

NewCommandStartNode provides a CLI handler for 'start node' command

func (NodeOptions) Complete

func (o NodeOptions) Complete(cmd *cobra.Command) error

func (NodeOptions) IsRunFromConfig

func (o NodeOptions) IsRunFromConfig() bool

func (NodeOptions) IsWriteConfigOnly

func (o NodeOptions) IsWriteConfigOnly() bool

func (*NodeOptions) Run added in v1.1.4

func (options *NodeOptions) Run(c *cobra.Command, errout io.Writer, args []string)

func (NodeOptions) RunNode

func (o NodeOptions) RunNode() error

RunNode takes the options and: 1. Creates certs if needed 2. Reads fully specified node config OR builds a fully specified node config from the args 3. Writes the fully specified node config and exits if needed 4. Starts the node based on the fully specified config

func (NodeOptions) StartNode

func (o NodeOptions) StartNode() error

StartNode calls RunNode and then waits forever

func (NodeOptions) Validate

func (o NodeOptions) Validate(args []string) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL