cluster

package
v1.8.3 Latest Latest
Warning

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

Go to latest
Published: Nov 13, 2024 License: MPL-2.0 Imports: 30 Imported by: 5

Documentation

Overview

Package cluster provides functions to access, check and inspect Talos clusters.

Index

Constants

View Source
const DefaultServiceLogTailLines = 100

DefaultServiceLogTailLines specifies number of log lines to tail from each service.

Variables

View Source
var LogLinesPerService = map[string]int32{
	"etcd": 5000,
}

LogLinesPerService customizes defaults for specific services.

Functions

func MapProvisionNodeInfosToNodeInfosByType

func MapProvisionNodeInfosToNodeInfosByType(nodes []provision.NodeInfo) (map[machine.Type][]NodeInfo, error)

MapProvisionNodeInfosToNodeInfosByType maps provision.NodeInfos to cluster.NodeInfos, grouping them by machine type.

func NodesMatch

func NodesMatch(expected, actual []NodeInfo) error

NodesMatch asserts that the provided expected set of nodes match the actual set of nodes.

Each expectedNode IPs should have a non-empty intersection with actualNode IPs.

Types

type APIBootstrapper

type APIBootstrapper struct {
	ClientProvider
	Info
}

APIBootstrapper bootstraps cluster via Talos API.

func (*APIBootstrapper) ApplyConfig

ApplyConfig on the node via the API using insecure mode.

func (*APIBootstrapper) Bootstrap

func (s *APIBootstrapper) Bootstrap(ctx context.Context, out io.Writer) error

Bootstrap the cluster via the API.

Bootstrap implements Bootstrapper interface.

type APICrashDumper

type APICrashDumper struct {
	ClientProvider
	Info
}

APICrashDumper collects crash dump via Talos API.

func (*APICrashDumper) CrashDump

func (s *APICrashDumper) CrashDump(ctx context.Context, out io.Writer)

CrashDump produces information to help with debugging.

CrashDump implements CrashDumper interface.

type ApplyConfigClient

type ApplyConfigClient struct {
	ClientProvider
	Info
}

ApplyConfigClient client to apply config.

type Bootstrapper

type Bootstrapper interface {
	Bootstrap(ctx context.Context, out io.Writer) error
}

Bootstrapper performs Talos cluster bootstrap.

type ClientProvider

type ClientProvider interface {
	// Client returns Talos client instance for default (if no endpoints are given) or
	// specific endpoint.
	Client(endpoints ...string) (*client.Client, error)
	// Close client connections.
	Close() error
}

ClientProvider builds Talos client by endpoint.

Client instance should be cached and closed when Close() is called.

type ConfigClientProvider

type ConfigClientProvider struct {
	// DefaultClient to be used when using default endpoints.
	//
	// Not required, if missing client will be constructed from the config.
	DefaultClient *client.Client

	// TalosConfig is a client Talos configuration.
	TalosConfig *clientconfig.Config
	// contains filtered or unexported fields
}

ConfigClientProvider builds Talos client from client config.

func (*ConfigClientProvider) Client

func (c *ConfigClientProvider) Client(endpoints ...string) (*client.Client, error)

Client returns Talos client instance for default (if no endpoints are given) or specific endpoints.

Client implements ClientProvider interface.

func (*ConfigClientProvider) Close

func (c *ConfigClientProvider) Close() error

Close all the client connections.

type CrashDumper

type CrashDumper interface {
	CrashDump(ctx context.Context, out io.Writer)
}

CrashDumper captures Talos cluster state to the specified writer for debugging.

type Info

type Info interface {
	// Nodes returns list of all node infos.
	Nodes() []NodeInfo
	// NodesByType return list of node endpoints by type.
	NodesByType(machine.Type) []NodeInfo
}

Info describes the Talos cluster.

type K8sProvider

type K8sProvider interface {
	Kubeconfig(ctx context.Context) ([]byte, error)
	K8sRestConfig(ctx context.Context) (*rest.Config, error)
	K8sClient(ctx context.Context) (*kubernetes.Clientset, error)
	K8sHelper(ctx context.Context) (*k8s.Client, error)
	K8sClose() error
}

K8sProvider builds Kubernetes client to access Talos cluster.

type KubernetesClient

type KubernetesClient struct {
	// Base Talos client provider.
	ClientProvider

	// ForceEndpoint overrides default Kubernetes API endpoint.
	ForceEndpoint string

	KubeHelper *k8s.Client
	// contains filtered or unexported fields
}

KubernetesClient provides Kubernetes client built via Talos API Kubeconfig.

func (*KubernetesClient) K8sClient

func (k *KubernetesClient) K8sClient(ctx context.Context) (*kubernetes.Clientset, error)

K8sClient builds Kubernetes client via Talos Kubeconfig API.

Kubernetes client instance is cached.

func (*KubernetesClient) K8sClose

func (k *KubernetesClient) K8sClose() error

K8sClose closes Kubernetes client.

func (*KubernetesClient) K8sHelper

func (k *KubernetesClient) K8sHelper(ctx context.Context) (*k8s.Client, error)

K8sHelper returns wrapper around K8sClient.

func (*KubernetesClient) K8sRestConfig

func (k *KubernetesClient) K8sRestConfig(ctx context.Context) (*rest.Config, error)

K8sRestConfig returns *rest.Config (parsed kubeconfig).

func (*KubernetesClient) Kubeconfig

func (k *KubernetesClient) Kubeconfig(ctx context.Context) ([]byte, error)

Kubeconfig returns raw kubeconfig.

Kubeconfig is cached.

type KubernetesFromKubeletClient

type KubernetesFromKubeletClient struct {
	KubeHelper *kubernetes.Client
	// contains filtered or unexported fields
}

KubernetesFromKubeletClient provides Kubernetes client built from local kubelet config.

func (*KubernetesFromKubeletClient) K8sClient

K8sClient builds Kubernetes client from local kubelet config.

Kubernetes client instance is cached.

func (*KubernetesFromKubeletClient) K8sClose

func (k *KubernetesFromKubeletClient) K8sClose() error

K8sClose closes Kubernetes client.

func (*KubernetesFromKubeletClient) K8sHelper

K8sHelper returns wrapper around K8sClient.

type LocalClientProvider

type LocalClientProvider struct {
	// contains filtered or unexported fields
}

LocalClientProvider builds Talos client to connect to same-node apid instance over file socket.

func (*LocalClientProvider) Client

func (c *LocalClientProvider) Client(endpoints ...string) (*client.Client, error)

Client returns Talos client instance for default (if no endpoints are given) or specific endpoints.

Client implements ClientProvider interface.

func (*LocalClientProvider) Close

func (c *LocalClientProvider) Close() error

Close all the client connections.

type NodeInfo

type NodeInfo struct {
	InternalIP netip.Addr
	IPs        []netip.Addr
}

NodeInfo describes a Talos node.

func IPToNodeInfo

func IPToNodeInfo(ip string) (*NodeInfo, error)

IPToNodeInfo converts a node internal IP to a NodeInfo.

func IPsToNodeInfos

func IPsToNodeInfos(ips []string) ([]NodeInfo, error)

IPsToNodeInfos converts list of IPs to a list of NodeInfos.

func MapProvisionNodeInfosToClusterNodeInfos

func MapProvisionNodeInfosToClusterNodeInfos(nodes []provision.NodeInfo) ([]NodeInfo, error)

MapProvisionNodeInfosToClusterNodeInfos maps provision.NodeInfos to cluster.NodeInfos.

Directories

Path Synopsis
Package check provides set of checks to verify cluster readiness.
Package check provides set of checks to verify cluster readiness.
Package hydrophone provides functions to run Kubernetes e2e tests.
Package hydrophone provides functions to run Kubernetes e2e tests.
Package kubernetes provides cluster-wide kubernetes utilities.
Package kubernetes provides cluster-wide kubernetes utilities.

Jump to

Keyboard shortcuts

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