kubernetes/pkg/controlplane/reconcilers/instancecount.go

type masterCountEndpointReconciler

// NewMasterCountEndpointReconciler creates a new EndpointReconciler that reconciles based on a
// specified expected number of masters.
func NewMasterCountEndpointReconciler(masterCount int, epAdapter EndpointsAdapter) EndpointReconciler {}

// 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 and the body of this function.
//
// 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.
//   - All apiservers MUST know and agree on the number of apiservers expected
//     to be running (c.masterCount).
//   - ReconcileEndpoints is called periodically from all apiservers.
func (r *masterCountEndpointReconciler) ReconcileEndpoints(serviceName string, ip net.IP, endpointPorts []corev1.EndpointPort, reconcilePorts bool) error {}

func (r *masterCountEndpointReconciler) RemoveEndpoints(serviceName string, ip net.IP, endpointPorts []corev1.EndpointPort) error {}

func (r *masterCountEndpointReconciler) StopReconciling() {}

func (r *masterCountEndpointReconciler) Destroy() {}

// Determine if the endpoint is in the format ReconcileEndpoints expects.
//
// Return values:
//   - formatCorrect is true if exactly one subset is found.
//   - ipCorrect is true when current master's IP is found and the number
//     of addresses is less than or equal to the master count.
//   - portsCorrect is true when endpoint ports exactly match provided ports.
//     portsCorrect is only evaluated when reconcilePorts is set to true.
func checkEndpointSubsetFormat(e *corev1.Endpoints, ip string, ports []corev1.EndpointPort, count int, reconcilePorts bool) (formatCorrect bool, ipCorrect bool, portsCorrect bool) {}