Documentation ¶
Overview ¶
Package config implements the pod configuration readers.
Package config implements the pod configuration readers.
Index ¶
- Constants
- func NewSourceApiserver(c clientset.Interface, nodeName types.NodeName, updates chan<- interface{})
- func NewSourceFile(path string, nodeName types.NodeName, period time.Duration, ...)
- func NewSourceURL(url string, header http.Header, nodeName types.NodeName, period time.Duration, ...)
- type ContainerRuntimeOptions
- type PodConfig
- type PodConfigNotificationMode
- type SourcesReady
- type SourcesReadyFn
Constants ¶
const ( // PodConfigNotificationUnknown is the default value for // PodConfigNotificationMode when uninitialized. PodConfigNotificationUnknown = iota // PodConfigNotificationSnapshot delivers the full configuration as a SET whenever // any change occurs. PodConfigNotificationSnapshot // PodConfigNotificationSnapshotAndUpdates delivers an UPDATE and DELETE message whenever pods are // changed, and a SET message if there are any additions or removals. PodConfigNotificationSnapshotAndUpdates // PodConfigNotificationIncremental delivers ADD, UPDATE, DELETE, REMOVE, RECONCILE to the update channel. PodConfigNotificationIncremental )
const ( DefaultKubeletPodsDirName = "pods" DefaultKubeletVolumesDirName = "volumes" DefaultKubeletVolumeSubpathsDirName = "volume-subpaths" DefaultKubeletVolumeDevicesDirName = "volumeDevices" DefaultKubeletPluginsDirName = "plugins" DefaultKubeletPluginsRegistrationDirName = "plugins_registry" DefaultKubeletContainersDirName = "containers" DefaultKubeletPluginContainersDirName = "plugin-containers" DefaultKubeletPodResourcesDirName = "pod-resources" KubeletPluginsDirSELinuxLabel = "system_u:object_r:container_file_t:s0" )
Defines sane defaults for the kubelet config.
Variables ¶
This section is empty.
Functions ¶
func NewSourceApiserver ¶
NewSourceApiserver creates a config source that watches and pulls from the apiserver.
Types ¶
type ContainerRuntimeOptions ¶
type ContainerRuntimeOptions struct { // ContainerRuntime is the container runtime to use. ContainerRuntime string // RuntimeCgroups that container runtime is expected to be isolated in. RuntimeCgroups string // RedirectContainerStreaming enables container streaming redirect. // When RedirectContainerStreaming is false, kubelet will proxy container streaming data // between apiserver and container runtime. This approach is more secure, but the proxy // introduces some overhead. // When RedirectContainerStreaming is true, kubelet will return an http redirect to apiserver, // and apiserver will access container runtime directly. This approach is more performant, // but less secure because the connection between apiserver and container runtime is not // authenticated. RedirectContainerStreaming bool // DockershimRootDirectory is the path to the dockershim root directory. Defaults to // /var/lib/dockershim if unset. Exposed for integration testing (e.g. in OpenShift). DockershimRootDirectory string // Enable dockershim only mode. ExperimentalDockershim bool // PodSandboxImage is the image whose network/ipc namespaces // containers in each pod will use. PodSandboxImage string // DockerEndpoint is the path to the docker endpoint to communicate with. DockerEndpoint string // If no pulling progress is made before the deadline imagePullProgressDeadline, // the image pulling will be cancelled. Defaults to 1m0s. // +optional ImagePullProgressDeadline metav1.Duration // networkPluginName is the name of the network plugin to be invoked for // various events in kubelet/pod lifecycle NetworkPluginName string // NetworkPluginMTU is the MTU to be passed to the network plugin, // and overrides the default MTU for cases where it cannot be automatically // computed (such as IPSEC). NetworkPluginMTU int32 // CNIConfDir is the full path of the directory in which to search for // CNI config files CNIConfDir string // CNIBinDir is the full path of the directory in which to search for // CNI plugin binaries CNIBinDir string // CNICacheDir is the full path of the directory in which CNI should store // cache files CNICacheDir string }
ContainerRuntimeOptions defines options for the container runtime.
func (*ContainerRuntimeOptions) AddFlags ¶
func (s *ContainerRuntimeOptions) AddFlags(fs *pflag.FlagSet)
AddFlags adds flags to the container runtime, according to ContainerRuntimeOptions.
type PodConfig ¶
type PodConfig struct {
// contains filtered or unexported fields
}
PodConfig is a configuration mux that merges many sources of pod configuration into a single consistent structure, and then delivers incremental change notifications to listeners in order.
func NewPodConfig ¶
func NewPodConfig(mode PodConfigNotificationMode, recorder record.EventRecorder) *PodConfig
NewPodConfig creates an object that can merge many configuration sources into a stream of normalized updates to a pod configuration.
func (*PodConfig) Channel ¶
Channel creates or returns a config source channel. The channel only accepts PodUpdates
func (*PodConfig) SeenAllSources ¶
SeenAllSources returns true if seenSources contains all sources in the config, and also this config has received a SET message from each source.
type PodConfigNotificationMode ¶
type PodConfigNotificationMode int
PodConfigNotificationMode describes how changes are sent to the update channel.
type SourcesReady ¶
type SourcesReady interface { // AddSource adds the specified source to the set of sources managed. AddSource(source string) // AllReady returns true if the currently configured sources have all been seen. AllReady() bool }
SourcesReady tracks the set of configured sources seen by the kubelet.
func NewSourcesReady ¶
func NewSourcesReady(sourcesReadyFn SourcesReadyFn) SourcesReady
NewSourcesReady returns a SourcesReady with the specified function.
type SourcesReadyFn ¶
SourcesReadyFn is function that returns true if the specified sources have been seen.