type Repair struct {
// contains filtered or unexported fields
}
Repair is a controller loop that periodically examines all service ClusterIP allocations
and logs any errors, and then sets the compacted and accurate list of all allocated IPs.
Handles:
* Duplicate ClusterIP assignments caused by operator action or undetected race conditions
* ClusterIPs that do not match the currently configured range
* Allocations to services that were not actually created due to a crash or powerloss
* Migrates old versions of Kubernetes services into the atomic ipallocator model automatically
Can be run at infrequent intervals, and is best performed on startup of the master.
Is level driven and idempotent - all valid ClusterIPs will be updated into the ipallocator
map at the end of a single execution loop if no race is encountered.
TODO: allocate new IPs if necessary
TODO: perform repair?
NewRepair creates a controller that periodically ensures that all clusterIPs are uniquely allocated across the cluster
and generates informational warnings for a cluster that is not in sync.