apiserver

package
v0.27.0 Latest Latest
Warning

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

Go to latest
Published: May 6, 2025 License: Apache-2.0 Imports: 14 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIServerAccess

type APIServerAccess interface {
	// GetAdminAccessClient returns the admin access kubeconfig for the given APIServer.
	GetAdminAccessClient(as *openmcpv1alpha1.APIServer, options client.Options) (client.Client, error)
	// GetAdminAccessConfig returns the admin access kubeconfig for the given APIServer.
	GetAdminAccessConfig(as *openmcpv1alpha1.APIServer) (*restclient.Config, error)
	// GetAdminAccessRaw returns the admin access kubeconfig for the given APIServer.
	GetAdminAccessRaw(as *openmcpv1alpha1.APIServer) (string, error)
}

APIServerAccess provides access to an APIServer's admin kubeconfig.

type APIServerAccessImpl

type APIServerAccessImpl struct {
	NewClient client.NewClientFunc
}

APIServerAccessImpl is the default implementation of APIServerAccess.

func (*APIServerAccessImpl) GetAdminAccessClient

func (a *APIServerAccessImpl) GetAdminAccessClient(apiServer *openmcpv1alpha1.APIServer, options client.Options) (client.Client, error)

GetAdminAccessClient implements APIServerAccess.GetAdminAccessClient.

func (*APIServerAccessImpl) GetAdminAccessConfig

func (a *APIServerAccessImpl) GetAdminAccessConfig(apiServer *openmcpv1alpha1.APIServer) (*restclient.Config, error)

GetAdminAccessConfig implements APIServerAccess.GetAdminAccessConfig.

func (*APIServerAccessImpl) GetAdminAccessRaw

func (a *APIServerAccessImpl) GetAdminAccessRaw(apiServer *openmcpv1alpha1.APIServer) (string, error)

GetAdminAccessRaw implements APIServerAccess.GetAdminAccessRaw.

type OnExit

type OnExit chan bool

OnExit is a channel that is used to signal when the worker is stopped

type OnNextInterval

type OnNextInterval chan bool

OnNextInterval is a channel that is used to signal when the next interval is executed

type Options

type Options struct {
	// MaxWorkers is the maximum number of workers that can be executed concurrently
	MaxWorkers *int
	// Interval is the time between each execution of the tasks
	Interval *time.Duration
	// NewClient is the function to create a new client for the APIServer
	NewClient client.NewClientFunc
}

Options is used to configure the Worker

func (*Options) SetDefaultsIfNotSet

func (o *Options) SetDefaultsIfNotSet()

SetDefaultsIfNotSet sets the default values for the options if they are not set

type Task

Task is a function that is executed for each APIServer in the cluster The first client is for the Crate cluster The second client is for the APIServer cluster

type Worker

type Worker interface {
	// RegisterTask registers a new task with the given name
	// The name must be unique
	RegisterTask(name string, task Task)
	// UnregisterTask removes the task with the given name
	UnregisterTask(name string)
	// Start starts the worker
	// This function will not block.
	// The worker will be stopped when the context is canceled
	// The OnExit channel will be used to signal when the worker is stopped (when not nil)
	// The OnNextInterval channel will be used to signal when the next interval is executed (when not nil)
	Start(ctx context.Context, onExit OnExit, onNextInterval OnNextInterval, waitFor <-chan struct{}) error
}

Worker has a pool of workers which execute all tasks for each APIServer in the cluster

func NewWorker

func NewWorker(crateClient client.Client, options *Options) (Worker, error)

NewWorker creates a new Worker instance crateClient is the client for the crate cluster options is used to configure the Worker. If nil, the default values will be used.

type WorkerImpl

type WorkerImpl struct {
	NewClient client.NewClientFunc
	// contains filtered or unexported fields
}

WorkerImpl is the implementation of the Worker interface

func (*WorkerImpl) RegisterTask

func (w *WorkerImpl) RegisterTask(name string, task Task)

RegisterTask implements Worker.RegisterTask Thread-safe

func (*WorkerImpl) Start

func (w *WorkerImpl) Start(ctx context.Context, onExit OnExit, onNextInterval OnNextInterval, waitFor <-chan struct{}) error

Start implements Worker.Start

func (*WorkerImpl) UnregisterTask

func (w *WorkerImpl) UnregisterTask(name string)

UnregisterTask implements Worker.UnregisterTask Thread-safe

Jump to

Keyboard shortcuts

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