code: func NewController(clock clock.Clock, client clientset.Interface, holderIdentity string, leaseDurationSeconds int32, onRepeatedHeartbeatFailure func()) Controller {
  	var leaseClient coordclientset.LeaseInterface
  	if client != nil {
  		leaseClient = client.CoordinationV1beta1().Leases(corev1.NamespaceNodeLease)
  	}
  	return &controller{
  		client:                     client,
  		leaseClient:                leaseClient,
  		holderIdentity:             holderIdentity,
  		leaseDurationSeconds:       leaseDurationSeconds,
  		renewInterval:              renewInterval,
  		clock:                      clock,
  		onRepeatedHeartbeatFailure: onRepeatedHeartbeatFailure,
  	}
  }
docs: // NewController constructs and returns a controller