app

package
v0.0.0-...-a7f0406 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2020 License: Apache-2.0 Imports: 47 Imported by: 0

Documentation

Overview

Package app implements a server that runs a set of active components. This includes replication controllers, service endpoints and nodes.

CAUTION: If you update code in this file, you may need to also update code

in contrib/mesos/pkg/controllermanager/controllermanager.go

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AttemptToLoadRecycler

func AttemptToLoadRecycler(path string, config *volume.VolumeConfig) error

AttemptToLoadRecycler tries decoding a pod from a filepath for use as a recycler for a volume. If successful, this method will set the recycler on the config. If unsuccessful, an error is returned. Function is exported for reuse downstream.

func NewControllerManagerCommand

func NewControllerManagerCommand() *cobra.Command

NewControllerManagerCommand creates a *cobra.Command object with default parameters

func NewVolumeProvisioner

func NewVolumeProvisioner(cloud cloudprovider.Interface, flags VolumeConfigFlags) (volume.ProvisionableVolumePlugin, error)

NewVolumeProvisioner returns a volume provisioner to use when running in a cloud or development environment. The beta implementation of provisioning allows 1 implied provisioner per cloud, until we allow configuration of many. We explicitly map clouds to volume plugins here which allows us to configure many later without backwards compatibility issues. Not all cloudproviders have provisioning capability, which is the reason for the bool in the return to tell the caller to expect one or not.

func ProbeRecyclableVolumePlugins

func ProbeRecyclableVolumePlugins(flags VolumeConfigFlags) []volume.VolumePlugin

ProbeRecyclableVolumePlugins collects all persistent volume plugins into an easy to use list.

Types

type CMServer

type CMServer struct {
	Port                              int
	Address                           net.IP
	CloudProvider                     string
	CloudConfigFile                   string
	ConcurrentEndpointSyncs           int
	ConcurrentRCSyncs                 int
	ConcurrentDSCSyncs                int
	ConcurrentJobSyncs                int
	ConcurrentResourceQuotaSyncs      int
	ConcurrentDeploymentSyncs         int
	ServiceSyncPeriod                 time.Duration
	NodeSyncPeriod                    time.Duration
	ResourceQuotaSyncPeriod           time.Duration
	NamespaceSyncPeriod               time.Duration
	PVClaimBinderSyncPeriod           time.Duration
	VolumeConfigFlags                 VolumeConfigFlags
	TerminatedPodGCThreshold          int
	HorizontalPodAutoscalerSyncPeriod time.Duration
	DeploymentControllerSyncPeriod    time.Duration
	MinResyncPeriod                   time.Duration
	RegisterRetryCount                int
	NodeMonitorGracePeriod            time.Duration
	NodeStartupGracePeriod            time.Duration
	NodeMonitorPeriod                 time.Duration
	NodeStatusUpdateRetry             int
	PodEvictionTimeout                time.Duration
	DeletingPodsQps                   float32
	DeletingPodsBurst                 int
	ServiceAccountKeyFile             string
	RootCAFile                        string

	ClusterName       string
	ClusterCIDR       net.IPNet
	AllocateNodeCIDRs bool
	EnableProfiling   bool

	Master       string
	Kubeconfig   string
	KubeAPIQPS   float32
	KubeAPIBurst int
}

CMServer is the main context object for the controller manager.

func NewCMServer

func NewCMServer() *CMServer

NewCMServer creates a new CMServer with a default config.

func (*CMServer) AddFlags

func (s *CMServer) AddFlags(fs *pflag.FlagSet)

AddFlags adds flags for a specific CMServer to the specified FlagSet

func (*CMServer) ResyncPeriod

func (s *CMServer) ResyncPeriod() time.Duration

func (*CMServer) Run

func (s *CMServer) Run(_ []string) error

Run runs the CMServer. This should never exit.

type VolumeConfigFlags

type VolumeConfigFlags struct {
	PersistentVolumeRecyclerMinimumTimeoutNFS           int
	PersistentVolumeRecyclerPodTemplateFilePathNFS      string
	PersistentVolumeRecyclerIncrementTimeoutNFS         int
	PersistentVolumeRecyclerPodTemplateFilePathHostPath string
	PersistentVolumeRecyclerMinimumTimeoutHostPath      int
	PersistentVolumeRecyclerIncrementTimeoutHostPath    int
	EnableHostPathProvisioning                          bool
}

VolumeConfigFlags is used to bind CLI flags to variables. This top-level struct contains *all* enumerated CLI flags meant to configure all volume plugins. From this config, the binary will create many instances of volume.VolumeConfig which are then passed to the appropriate plugin. The ControllerManager binary is the only part of the code which knows what plugins are supported and which CLI flags correspond to each plugin.

Jump to

Keyboard shortcuts

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