Documentation ¶
Overview ¶
Copyright 2020 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Copyright 2020 Mirantis, Inc.
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
Index ¶
Constants ¶
This section is empty.
Variables ¶
var (
MinLeaseHolders = 1
)
Functions ¶
Types ¶
type ClientFactory ¶ added in v0.9.0
type ClientFactory interface { GetClient() (kubernetes.Interface, error) GetDynamicClient() (dynamic.Interface, error) GetDiscoveryClient() (discovery.CachedDiscoveryInterface, error) }
ClientFactory defines a factory interface to load a kube client
func NewAdminClientFactory ¶ added in v0.9.0
func NewAdminClientFactory(k0sVars constant.CfgVars) ClientFactory
NewAdminClientFactory creates a new factory that loads the admin kubeconfig based client
type LeaseConfig ¶
type LeaseConfig struct { HolderIdentity string Name string Namespace string ServiceName string // LeaseDuration is the duration of a lease, before the lease can be re-acquired. A client needs to wait a full LeaseDuration without observing a change to // the record before it can attempt to take over. LeaseDuration time.Duration // RenewDeadline is the duration that the lease holder will retry refreshing leadership before giving up. RenewDeadline time.Duration // RetryPeriod is the duration the lease clients should wait // between tries of actions. RetryPeriod time.Duration }
type LeaseLock ¶
type LeaseLock struct { Client coordinationv1client.LeasesGetter Config *LeaseConfig Log *logrus.Entry // contains filtered or unexported fields }
func (*LeaseLock) CountValidLeaseHolders ¶
CountValidLeaseHolders fetches the leaseList and examines if a lease is still valid. if it is, it adds it to the validLeaseHolder count