kubernetes: k8s.io/kubernetes/pkg/master/reconcilers Index | Files

package reconcilers

import "k8s.io/kubernetes/pkg/master/reconcilers"

Package reconcilers provides objects for managing the list of active masters. NOTE: The Lease reconciler is not the intended way for any apiserver other than kube-apiserver to accomplish the task of Endpoint registration. This is a special case for the time being.

Package reconcilers master count based reconciler

Package reconcilers a noop based reconciler

Package reconcilers Endpoint Reconcilers for the apiserver


Package Files

doc.go lease.go mastercount.go none.go reconcilers.go


const (
    // MasterCountReconcilerType will select the original reconciler
    MasterCountReconcilerType Type = "master-count"
    // LeaseEndpointReconcilerType will select a storage based reconciler
    LeaseEndpointReconcilerType = "lease"
    // NoneEndpointReconcilerType will turn off the endpoint reconciler
    NoneEndpointReconcilerType = "none"


var AllTypes = Types{

AllTypes export all reconcilers

func GetMasterServiceUpdateIfNeeded Uses

func GetMasterServiceUpdateIfNeeded(svc *corev1.Service, servicePorts []corev1.ServicePort, serviceType corev1.ServiceType) (s *corev1.Service, updated bool)

GetMasterServiceUpdateIfNeeded sets service attributes for the

given apiserver service.

* GetMasterServiceUpdateIfNeeded expects that the service object it

manages will be managed only by GetMasterServiceUpdateIfNeeded;
therefore, to understand this, you need only understand the
requirements and the body of this function.

* GetMasterServiceUpdateIfNeeded ensures that the correct ports are

are set.

Requirements: * All apiservers MUST use GetMasterServiceUpdateIfNeeded and only

GetMasterServiceUpdateIfNeeded to manage service attributes

* updateMasterService is called periodically from all apiservers.

type EndpointReconciler Uses

type EndpointReconciler interface {
    // ReconcileEndpoints sets the endpoints for the given apiserver service (ro or rw).
    // ReconcileEndpoints expects that the endpoints objects it manages will all be
    // managed only by ReconcileEndpoints; therefore, to understand this, you need only
    // understand the requirements.
    // Requirements:
    //  * All apiservers MUST use the same ports for their {rw, ro} services.
    //  * All apiservers MUST use ReconcileEndpoints and only ReconcileEndpoints to manage the
    //      endpoints for their {rw, ro} services.
    //  * ReconcileEndpoints is called periodically from all apiservers.
    ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []corev1.EndpointPort, reconcilePorts bool) error
    // RemoveEndpoints removes this apiserver's lease.
    RemoveEndpoints(serviceName string, ip net.IP, endpointPorts []corev1.EndpointPort) error
    // StopReconciling turns any later ReconcileEndpoints call into a noop.

EndpointReconciler knows how to reconcile the endpoints for the apiserver service.

func NewLeaseEndpointReconciler Uses

func NewLeaseEndpointReconciler(endpointClient corev1client.EndpointsGetter, masterLeases Leases) EndpointReconciler

NewLeaseEndpointReconciler creates a new LeaseEndpoint reconciler

func NewMasterCountEndpointReconciler Uses

func NewMasterCountEndpointReconciler(masterCount int, endpointClient corev1client.EndpointsGetter) EndpointReconciler

NewMasterCountEndpointReconciler creates a new EndpointReconciler that reconciles based on a specified expected number of masters.

func NewNoneEndpointReconciler Uses

func NewNoneEndpointReconciler() EndpointReconciler

NewNoneEndpointReconciler creates a new EndpointReconciler that reconciles based on a nothing. It is a no-op.

type Leases Uses

type Leases interface {
    // ListLeases retrieves a list of the current master IPs
    ListLeases() ([]string, error)

    // UpdateLease adds or refreshes a master's lease
    UpdateLease(ip string) error

    // RemoveLease removes a master's lease
    RemoveLease(ip string) error

Leases is an interface which assists in managing the set of active masters

func NewLeases Uses

func NewLeases(storage storage.Interface, baseKey string, leaseTime time.Duration) Leases

NewLeases creates a new etcd-based Leases implementation.

type Type Uses

type Type string

Type the reconciler type

type Types Uses

type Types []Type

Types an array of reconciler types

func (Types) Names Uses

func (t Types) Names() []string

Names returns a slice of all the reconciler names

Package reconcilers imports 16 packages (graph) and is imported by 11 packages. Updated 2019-05-20. Refresh now. Tools for package owners.