kubernetesk8s.io/kubernetes/pkg/controlplane Index | Files | Directories

package controlplane

import "k8s.io/kubernetes/pkg/controlplane"

Package controlplane contains code for setting up and running a Kubernetes cluster control plane API server.

Index

Constants

const (
	// DefaultEndpointReconcilerInterval is the default amount of time for how often the endpoints for
	// the kubernetes Service are reconciled.
	DefaultEndpointReconcilerInterval = 10 * time.Second
	// DefaultEndpointReconcilerTTL is the default TTL timeout for the storage layer
	DefaultEndpointReconcilerTTL = 15 * time.Second
	// IdentityLeaseComponentLabelKey is used to apply a component label to identity lease objects, indicating:
	//   1. the lease is an identity lease (different from leader election leases)
	//   2. which component owns this lease
	// TODO(sttts): remove this indirection
	IdentityLeaseComponentLabelKey = controlplaneapiserver.IdentityLeaseComponentLabelKey
)

Functions

func DefaultAPIResourceConfigSource

func DefaultAPIResourceConfigSource() *serverstorage.ResourceConfig

DefaultAPIResourceConfigSource returns default configuration for an APIResource.

Types

type CompletedConfig

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

CompletedConfig embeds a private pointer that cannot be instantiated outside of this package

func (CompletedConfig) New

func (c CompletedConfig) New(delegationTarget genericapiserver.DelegationTarget) (*Instance, error)

New returns a new instance of Master from the given config. Certain config fields will be set to a default value if unset. Certain config fields must be specified, including: KubeletClientConfig

func (CompletedConfig) StorageProviders

type Config

type Config struct {
	ControlPlane controlplaneapiserver.Config
	Extra
}

Config defines configuration for the master

func (*Config) Complete

func (c *Config) Complete() CompletedConfig

Complete fills in any fields not set that are required to have valid data. It's mutating the receiver.

type EndpointReconcilerConfig

type EndpointReconcilerConfig struct {
	Reconciler reconcilers.EndpointReconciler
	Interval   time.Duration
}

EndpointReconcilerConfig holds the endpoint reconciler and endpoint reconciliation interval to be used by the master.

type Extra

type Extra struct {
	EndpointReconcilerConfig EndpointReconcilerConfig
	KubeletClientConfig      kubeletclient.KubeletClientConfig

	// Values to build the IP addresses used by discovery
	// The range of IPs to be assigned to services with type=ClusterIP or greater
	ServiceIPRange net.IPNet
	// The IP address for the GenericAPIServer service (must be inside ServiceIPRange)
	APIServerServiceIP net.IP

	// dual stack services, the range represents an alternative IP range for service IP
	// must be of different family than primary (ServiceIPRange)
	SecondaryServiceIPRange net.IPNet
	// the secondary IP address the GenericAPIServer service (must be inside SecondaryServiceIPRange)
	SecondaryAPIServerServiceIP net.IP

	// Port for the apiserver service.
	APIServerServicePort int

	// The range of ports to be assigned to services with type=NodePort or greater
	ServiceNodePortRange utilnet.PortRange
	// If non-zero, the "kubernetes" services uses this port as NodePort.
	KubernetesServiceNodePort int

	// Number of masters running; all masters must be started with the
	// same value for this field. (Numbers > 1 currently untested.)
	MasterCount int

	// MasterEndpointReconcileTTL sets the time to live in seconds of an
	// endpoint record recorded by each master. The endpoints are checked at an
	// interval that is 2/3 of this value and this value defaults to 15s if
	// unset. In very large clusters, this value may be increased to reduce the
	// possibility that the master endpoint record expires (due to other load
	// on the etcd server) and causes masters to drop in and out of the
	// kubernetes service record. It is not recommended to set this value below
	// 15s.
	MasterEndpointReconcileTTL time.Duration

	// Selects which reconciler to use
	EndpointReconcilerType reconcilers.Type

	// RepairServicesInterval interval used by the repair loops for
	// the Services NodePort and ClusterIP resources
	RepairServicesInterval time.Duration
}

Extra defines extra configuration for kube-apiserver

type Instance

type Instance struct {
	ControlPlane *controlplaneapiserver.Server
}

Instance contains state for a Kubernetes cluster api server instance.

Source Files

doc.go import_known_versions.go instance.go

Directories

PathSynopsis
pkg/controlplane/apiserver
pkg/controlplane/apiserver/admission
pkg/controlplane/apiserver/optionsPackage options contains flags and options for initializing an apiserver
pkg/controlplane/apiserver/samplesPackage samples contains two kube-like generic control plane apiserver, one with CRDs (generic) and one without (minimum).
pkg/controlplane/apiserver/samples/genericsample-generic-controlplane is a kube-like generic control plane - with CRDs - with generic Kube native APIs - with aggregation - without the container domain specific APIs.
pkg/controlplane/apiserver/samples/generic/server
pkg/controlplane/apiserver/samples/generic/server/testing
pkg/controlplane/controller
pkg/controlplane/controller/apiserverleasegc
pkg/controlplane/controller/clusterauthenticationtrust
pkg/controlplane/controller/crdregistration
pkg/controlplane/controller/defaultservicecidr
pkg/controlplane/controller/kubernetesservice
pkg/controlplane/controller/leaderelection
pkg/controlplane/controller/legacytokentracking
pkg/controlplane/controller/systemnamespaces
pkg/controlplane/reconcilersPackage reconcilers provides objects for managing the list of active masters.
pkg/controlplane/storageversionhashdataPackage storageversionhashdata is for test only.
Version
v1.33.0 (latest)
Published
Apr 23, 2025
Platform
linux/amd64
Imports
108 packages
Last checked
3 hours ago

Tools for package owners.