kubernetes

package
v0.10.0-rc1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 3, 2021 License: Apache-2.0 Imports: 22 Imported by: 0

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

View Source
var (
	MinLeaseHolders = 1
)

Functions

func NewClient added in v0.10.0

func NewClient(kubeconfig string) (kubernetes.Interface, error)

NewClient creates new k8s client based of the given kubeconfig This should be only used in cases where the client is "short-running" and shouldn't/cannot use the common "cached" one.

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

func (l *LeaseLock) CountValidLeaseHolders(ctx context.Context) int

CountValidLeaseHolders fetches the leaseList and examines if a lease is still valid. if it is, it adds it to the validLeaseHolder count

func (*LeaseLock) LeaseRunner

func (l *LeaseLock) LeaseRunner(ctx context.Context)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL