utils

package
v1.15.0-alpha.0 Latest Latest
Warning

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

Go to latest
Published: Sep 3, 2024 License: Apache-2.0 Imports: 48 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 ContextForMultiDatacenterRollout added in v1.14.0

func ContextForMultiDatacenterRollout(parent context.Context, sc *scyllav1.ScyllaCluster) (context.Context, context.CancelFunc)

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(config *rest.Config, 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 GetCurrentTokenRingHash added in v1.14.0

func GetCurrentTokenRingHash(ctx context.Context, client corev1client.CoreV1Interface, sc *scyllav1.ScyllaCluster) (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 IsNodeConfigDoneWithContainerTuningFunc added in v1.13.0

func IsNodeConfigDoneWithContainerTuningFunc(nodeName, containerID string) func(nc *scyllav1alpha1.NodeConfig) (bool, 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 RolloutTimeoutForMultiDatacenterScyllaCluster added in v1.14.0

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

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"`
}

Jump to

Keyboard shortcuts

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