in apimachinery/lease/controller.go [204:230]
func (c *controller) newLease(base *coordinationv1.Lease) (*coordinationv1.Lease, error) {
// Use the bare minimum set of fields; other fields exist for debugging/legacy,
// but we don't need to make component heartbeats more complicated by using them.
var lease *coordinationv1.Lease
if base == nil {
lease = &coordinationv1.Lease{
ObjectMeta: metav1.ObjectMeta{
Name: c.holderIdentity,
Namespace: c.leaseNamespace,
},
Spec: coordinationv1.LeaseSpec{
HolderIdentity: pointer.StringPtr(c.holderIdentity),
LeaseDurationSeconds: pointer.Int32Ptr(c.leaseDurationSeconds),
},
}
} else {
lease = base.DeepCopy()
}
lease.Spec.RenewTime = &metav1.MicroTime{Time: c.clock.Now()}
if c.newLeasePostProcessFunc != nil {
err := c.newLeasePostProcessFunc(lease)
return lease, err
}
return lease, nil
}