apiserver identity: always use a unique value for the Lease holder identity

Signed-off-by: Andrew Sy Kim <andrewsy@google.com>
This commit is contained in:
Andrew Sy Kim 2022-10-24 11:58:34 -04:00
parent 6925bee6d5
commit 3c0b75f4ad

View File

@ -61,6 +61,7 @@ import (
"k8s.io/apimachinery/pkg/runtime/schema" "k8s.io/apimachinery/pkg/runtime/schema"
utilnet "k8s.io/apimachinery/pkg/util/net" utilnet "k8s.io/apimachinery/pkg/util/net"
"k8s.io/apimachinery/pkg/util/runtime" "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/apimachinery/pkg/util/uuid"
"k8s.io/apiserver/pkg/endpoints/discovery" "k8s.io/apiserver/pkg/endpoints/discovery"
apiserverfeatures "k8s.io/apiserver/pkg/features" apiserverfeatures "k8s.io/apiserver/pkg/features"
"k8s.io/apiserver/pkg/registry/generic" "k8s.io/apiserver/pkg/registry/generic"
@ -471,13 +472,18 @@ func (c completedConfig) New(delegationTarget genericapiserver.DelegationTarget)
if err != nil { if err != nil {
return err return err
} }
controller := lease.NewController(
leaseName := m.GenericAPIServer.APIServerID
holderIdentity := m.GenericAPIServer.APIServerID + "_" + string(uuid.NewUUID())
controller := lease.NewControllerWithLeaseName(
clock.RealClock{}, clock.RealClock{},
kubeClient, kubeClient,
m.GenericAPIServer.APIServerID, holderIdentity,
int32(c.ExtraConfig.IdentityLeaseDurationSeconds), int32(c.ExtraConfig.IdentityLeaseDurationSeconds),
nil, nil,
time.Duration(c.ExtraConfig.IdentityLeaseRenewIntervalSeconds)*time.Second, time.Duration(c.ExtraConfig.IdentityLeaseRenewIntervalSeconds)*time.Second,
leaseName,
metav1.NamespaceSystem, metav1.NamespaceSystem,
labelAPIServerHeartbeat) labelAPIServerHeartbeat)
go controller.Run(hookContext.StopCh) go controller.Run(hookContext.StopCh)