utils

package
v1.12.1 Latest Latest
Warning

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

Go to latest
Published: Apr 4, 2024 License: Apache-2.0 Imports: 45 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// SyncTimeout is the maximum time the sync loop can last. In normal circumstances this is in the order
	// of seconds but there are special cases we need to account for. Like when the sync loop generates new keys
	// and signs certificates it can take several seconds. When the CI creates multiple clusters in parallel on
	// a constrained CPU, one cert can easily take over 30s.
	SyncTimeout = 2 * time.Minute
)

Variables

This section is empty.

Functions

func ContextForPodStartup added in v1.9.0

func ContextForPodStartup(parent context.Context) (context.Context, context.CancelFunc)

func ExecWithOptions added in v1.9.0

func ExecWithOptions(client corev1client.CoreV1Interface, options ExecOptions) (string, string, error)

ExecWithOptions executes a command in the specified container, returning stdout, stderr and error. `options` allowed for additional parameters to be passed.

func GetBroadcastAddress added in v1.12.0

func GetBroadcastAddress(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster, svc *corev1.Service, pod *corev1.Pod) (string, error)

func GetBroadcastAddresses added in v1.12.0

func GetBroadcastAddresses(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, error)

func GetBroadcastRPCAddress added in v1.12.0

func GetBroadcastRPCAddress(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster, svc *corev1.Service) (string, error)

func GetBroadcastRPCAddresses added in v1.12.0

func GetBroadcastRPCAddresses(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, error)

func GetBroadcastRPCAddressesAndUUIDs added in v1.12.0

func GetBroadcastRPCAddressesAndUUIDs(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, []string, error)

func GetBroadcastRPCAddressesAndUUIDsByDC added in v1.12.0

func GetBroadcastRPCAddressesAndUUIDsByDC(ctx context.Context, dcClientMap map[string]corev1client.CoreV1Interface, scs []*scyllav1.ScyllaCluster) (map[string][]string, map[string][]string, error)

func GetIdentityServiceIP added in v1.12.0

func GetIdentityServiceIP(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) (string, error)

func GetManagerClient

func GetManagerClient(ctx context.Context, client corev1client.CoreV1Interface) (*managerclient.Client, error)

GetManagerClient gets managerClient using IP address. E2E tests shouldn't rely on InCluster DNS.

func GetMatchingNodesForNodeConfig

func GetMatchingNodesForNodeConfig(ctx context.Context, nodeGetter corev1client.NodesGetter, nc *scyllav1alpha1.NodeConfig) ([]*corev1.Node, error)

func GetMemberCount

func GetMemberCount(sc *scyllav1.ScyllaCluster) int32

func GetMemberServiceSelector added in v1.8.0

func GetMemberServiceSelector(scyllaClusterName string) labels.Selector

func GetNodeName

func GetNodeName(sc *scyllav1.ScyllaCluster, idx int) string

func GetNodesPodIPs added in v1.11.0

func GetNodesPodIPs(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, error)

func GetNodesServiceAndPodIPs added in v1.11.0

func GetNodesServiceAndPodIPs(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, error)

func GetNodesServiceIPs added in v1.11.0

func GetNodesServiceIPs(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) ([]string, error)

func GetScyllaConfigClient added in v1.10.0

func GetScyllaConfigClient(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster, host string) (*scyllaclient.ConfigClient, error)

func GetServerTLSCertificates added in v1.8.0

func GetServerTLSCertificates(address string, tlsConfig *tls.Config) ([]*x509.Certificate, error)

func IsNodeConfigDoneWithNodeTuningFunc

func IsNodeConfigDoneWithNodeTuningFunc(nodes []*corev1.Node) func(nc *scyllav1alpha1.NodeConfig) (bool, error)

func IsNodeConfigDoneWithNodes added in v1.9.0

func IsNodeConfigDoneWithNodes(nodes []*corev1.Node) func(nc *scyllav1alpha1.NodeConfig) (bool, error)

func IsNodeConfigRolledOut

func IsNodeConfigRolledOut(nc *scyllav1alpha1.NodeConfig) (bool, error)

func IsScyllaClusterRolledOut

func IsScyllaClusterRolledOut(sc *scyllav1.ScyllaCluster) (bool, error)

func IsScyllaDBMonitoringRolledOut added in v1.9.0

func IsScyllaDBMonitoringRolledOut(sm *scyllav1alpha1.ScyllaDBMonitoring) (bool, error)

func PodIsRunning added in v1.9.0

func PodIsRunning(pod *corev1.Pod) (bool, error)

func RolloutTimeoutForScyllaCluster

func RolloutTimeoutForScyllaCluster(sc *scyllav1.ScyllaCluster) time.Duration

func RunEphemeralContainerAndWaitForCompletion added in v1.8.0

func RunEphemeralContainerAndWaitForCompletion(ctx context.Context, client corev1client.PodInterface, podName string, ec *corev1.EphemeralContainer) (*corev1.Pod, error)

func SyncTimeoutForScyllaCluster

func SyncTimeoutForScyllaCluster(sc *scyllav1.ScyllaCluster) time.Duration

func WaitForFullMultiDCQuorum added in v1.12.0

func WaitForFullMultiDCQuorum(ctx context.Context, dcClientMap map[string]corev1client.CoreV1Interface, scs []*scyllav1.ScyllaCluster) error

func WaitUntilServingCertificateIsLive added in v1.11.0

func WaitUntilServingCertificateIsLive(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) error

func WithSession added in v1.11.0

func WithSession(session *gocqlx.Session) func(*DataInserter)

Types

type DataInserter added in v1.8.0

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

func NewDataInserter added in v1.8.0

func NewDataInserter(hosts []string, options ...DataInserterOption) (*DataInserter, error)

func NewMultiDCDataInserter added in v1.11.0

func NewMultiDCDataInserter(dcHosts map[string][]string, options ...DataInserterOption) (*DataInserter, error)

func (*DataInserter) AwaitSchemaAgreement added in v1.9.0

func (di *DataInserter) AwaitSchemaAgreement(ctx context.Context) error

func (*DataInserter) Close added in v1.8.0

func (di *DataInserter) Close()

func (*DataInserter) GetExpected added in v1.8.0

func (di *DataInserter) GetExpected() []*TestData

func (*DataInserter) Insert added in v1.8.0

func (di *DataInserter) Insert() error

func (*DataInserter) Read added in v1.8.0

func (di *DataInserter) Read() ([]*TestData, error)

func (*DataInserter) SetClientEndpoints added in v1.8.0

func (di *DataInserter) SetClientEndpoints(hosts []string) error

SetClientEndpoints creates a new session and closes a previous session if it existed. In case an error was returned, DataInserter can no Longer be used.

type DataInserterOption added in v1.11.0

type DataInserterOption func(*DataInserter)

type ExecOptions added in v1.9.0

type ExecOptions struct {
	Command       []string
	Namespace     string
	PodName       string
	ContainerName string
	Stdin         io.Reader
	CaptureStdout bool
	CaptureStderr bool
}

ExecOptions passed to ExecWithOptions

type ObjectObserver added in v1.10.0

type ObjectObserver[T kubeinterfaces.ObjectInterface] struct {
	Events []ObserverEvent[T]
	// contains filtered or unexported fields
}

func ObserveObjects added in v1.10.0

func (*ObjectObserver[T]) Start added in v1.10.0

func (o *ObjectObserver[T]) Start(ctx context.Context) error

func (*ObjectObserver[T]) Stop added in v1.10.0

func (o *ObjectObserver[T]) Stop() ([]ObserverEvent[T], error)

type ObserverEvent added in v1.10.0

type ObserverEvent[T kubeinterfaces.ObjectInterface] struct {
	Action watchutils.EventType
	Obj    T
}

type TestData added in v1.8.0

type TestData struct {
	Id   int    `db:"id"`
	Data string `db:"data"`
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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