mirror of
https://github.com/kubernetes/client-go.git
synced 2025-06-29 08:29:23 +00:00
Don't clear the cached resourcelock when errors occurs on updates
This allows the lock to be release normally - even with a potentially stale lock. This flow should only occur when we're the lease holders. Kubernetes-commit: 8160ecfd90284c333101a16bdccd79aacc86360d
This commit is contained in:
parent
a0a4a352aa
commit
bfd1732c49
@ -93,9 +93,13 @@ func (cml *ConfigMapLock) Update(ctx context.Context, ler LeaderElectionRecord)
|
|||||||
cml.cm.Annotations = make(map[string]string)
|
cml.cm.Annotations = make(map[string]string)
|
||||||
}
|
}
|
||||||
cml.cm.Annotations[LeaderElectionRecordAnnotationKey] = string(recordBytes)
|
cml.cm.Annotations[LeaderElectionRecordAnnotationKey] = string(recordBytes)
|
||||||
cml.cm, err = cml.Client.ConfigMaps(cml.ConfigMapMeta.Namespace).Update(ctx, cml.cm, metav1.UpdateOptions{})
|
cm, err := cml.Client.ConfigMaps(cml.ConfigMapMeta.Namespace).Update(ctx, cml.cm, metav1.UpdateOptions{})
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
cml.cm = cm
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// RecordEvent in leader election while adding meta-data
|
// RecordEvent in leader election while adding meta-data
|
||||||
func (cml *ConfigMapLock) RecordEvent(s string) {
|
func (cml *ConfigMapLock) RecordEvent(s string) {
|
||||||
|
@ -88,9 +88,13 @@ func (el *EndpointsLock) Update(ctx context.Context, ler LeaderElectionRecord) e
|
|||||||
el.e.Annotations = make(map[string]string)
|
el.e.Annotations = make(map[string]string)
|
||||||
}
|
}
|
||||||
el.e.Annotations[LeaderElectionRecordAnnotationKey] = string(recordBytes)
|
el.e.Annotations[LeaderElectionRecordAnnotationKey] = string(recordBytes)
|
||||||
el.e, err = el.Client.Endpoints(el.EndpointsMeta.Namespace).Update(ctx, el.e, metav1.UpdateOptions{})
|
e, err := el.Client.Endpoints(el.EndpointsMeta.Namespace).Update(ctx, el.e, metav1.UpdateOptions{})
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
el.e = e
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// RecordEvent in leader election while adding meta-data
|
// RecordEvent in leader election while adding meta-data
|
||||||
func (el *EndpointsLock) RecordEvent(s string) {
|
func (el *EndpointsLock) RecordEvent(s string) {
|
||||||
|
@ -71,11 +71,16 @@ func (ll *LeaseLock) Update(ctx context.Context, ler LeaderElectionRecord) error
|
|||||||
return errors.New("lease not initialized, call get or create first")
|
return errors.New("lease not initialized, call get or create first")
|
||||||
}
|
}
|
||||||
ll.lease.Spec = LeaderElectionRecordToLeaseSpec(&ler)
|
ll.lease.Spec = LeaderElectionRecordToLeaseSpec(&ler)
|
||||||
var err error
|
|
||||||
ll.lease, err = ll.Client.Leases(ll.LeaseMeta.Namespace).Update(ctx, ll.lease, metav1.UpdateOptions{})
|
lease, err := ll.Client.Leases(ll.LeaseMeta.Namespace).Update(ctx, ll.lease, metav1.UpdateOptions{})
|
||||||
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ll.lease = lease
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
// RecordEvent in leader election while adding meta-data
|
// RecordEvent in leader election while adding meta-data
|
||||||
func (ll *LeaseLock) RecordEvent(s string) {
|
func (ll *LeaseLock) RecordEvent(s string) {
|
||||||
if ll.LockConfig.EventRecorder == nil {
|
if ll.LockConfig.EventRecorder == nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user