migrate leader election to lease API

Change-Id: I21fd5cdc1af59e456628cf15fc84b2d79db2eda0

Kubernetes-commit: 447295aff2bd8cdc92a2376553d83546a4d6eb41
This commit is contained in:
chenyixiang
2019-08-07 01:48:32 +08:00
committed by Kubernetes Publisher
parent 07054768d9
commit ba49d2a180
8 changed files with 761 additions and 88 deletions

View File

@@ -17,6 +17,7 @@ limitations under the License.
package resourcelock
import (
"encoding/json"
"errors"
"fmt"
@@ -36,13 +37,18 @@ type LeaseLock struct {
}
// Get returns the election record from a Lease spec
func (ll *LeaseLock) Get() (*LeaderElectionRecord, error) {
func (ll *LeaseLock) Get() (*LeaderElectionRecord, []byte, error) {
var err error
ll.lease, err = ll.Client.Leases(ll.LeaseMeta.Namespace).Get(ll.LeaseMeta.Name, metav1.GetOptions{})
if err != nil {
return nil, err
return nil, nil, err
}
return LeaseSpecToLeaderElectionRecord(&ll.lease.Spec), nil
record := LeaseSpecToLeaderElectionRecord(&ll.lease.Spec)
recordByte, err := json.Marshal(*record)
if err != nil {
return nil, nil, err
}
return record, recordByte, nil
}
// Create attempts to create a Lease
@@ -84,7 +90,7 @@ func (ll *LeaseLock) Describe() string {
return fmt.Sprintf("%v/%v", ll.LeaseMeta.Namespace, ll.LeaseMeta.Name)
}
// returns the Identity of the lock
// Identity returns the Identity of the lock
func (ll *LeaseLock) Identity() string {
return ll.LockConfig.Identity
}