utils

package
v1.11.0-rc.1 Latest Latest
Warning

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

Go to latest
Published: Oct 10, 2023 License: Apache-2.0 Imports: 50 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 GetHostsAndUUIDs added in v1.8.0

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

func GetManagerClient

func GetManagerClient(ctx context.Context, client corev1client.CoreV1Interface) (*mermaidclient.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 GetScyllaHostsByDCAndWaitForFullQuorum added in v1.11.0

func GetScyllaHostsByDCAndWaitForFullQuorum(ctx context.Context, dcClientMap map[string]corev1client.CoreV1Interface, scs []*scyllav1.ScyllaCluster) (map[string][]string, 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 WaitForConfigMapState

func WaitForConfigMapState(ctx context.Context, client corev1client.ConfigMapInterface, name string, options WaitForStateOptions, condition func(*corev1.ConfigMap) (bool, error), additionalConditions ...func(*corev1.ConfigMap) (bool, error)) (*corev1.ConfigMap, error)

func WaitForNodeConfigState

func WaitForNodeConfigState(ctx context.Context, ncClient scyllav1alpha1client.NodeConfigInterface, name string, options WaitForStateOptions, condition func(*scyllav1alpha1.NodeConfig) (bool, error), additionalConditions ...func(*scyllav1alpha1.NodeConfig) (bool, error)) (*scyllav1alpha1.NodeConfig, error)

func WaitForObjectState added in v1.8.0

func WaitForObjectState[Object, ListObject runtime.Object](ctx context.Context, client listerWatcher[ListObject], name string, options WaitForStateOptions, condition func(obj Object) (bool, error), additionalConditions ...func(obj Object) (bool, error)) (Object, error)

func WaitForPVCState

func WaitForPVCState(ctx context.Context, client corev1client.CoreV1Interface, namespace string, name string, options WaitForStateOptions, condition func(*corev1.PersistentVolumeClaim) (bool, error), additionalConditions ...func(*corev1.PersistentVolumeClaim) (bool, error)) (*corev1.PersistentVolumeClaim, error)

func WaitForPodState

func WaitForPodState(ctx context.Context, client corev1client.PodInterface, name string, options WaitForStateOptions, condition func(*corev1.Pod) (bool, error), additionalConditions ...func(*corev1.Pod) (bool, error)) (*corev1.Pod, error)

func WaitForRoleBindingState added in v1.8.0

func WaitForRoleBindingState(ctx context.Context, client rbacv1client.RbacV1Interface, namespace string, name string, options WaitForStateOptions, condition func(*rbacv1.RoleBinding) (bool, error), additionalConditions ...func(*rbacv1.RoleBinding) (bool, error)) (*rbacv1.RoleBinding, error)

func WaitForScyllaClusterState

func WaitForScyllaClusterState(ctx context.Context, client scyllav1client.ScyllaV1Interface, namespace string, name string, options WaitForStateOptions, condition func(*scyllav1.ScyllaCluster) (bool, error), additionalConditions ...func(*scyllav1.ScyllaCluster) (bool, error)) (*scyllav1.ScyllaCluster, error)

func WaitForScyllaDBMonitoringState added in v1.9.0

func WaitForScyllaDBMonitoringState(ctx context.Context, client scyllav1alpha1client.ScyllaDBMonitoringInterface, name string, options WaitForStateOptions, condition func(monitoring *scyllav1alpha1.ScyllaDBMonitoring) (bool, error), additionalConditions ...func(monitoring *scyllav1alpha1.ScyllaDBMonitoring) (bool, error)) (*scyllav1alpha1.ScyllaDBMonitoring, error)

func WaitForSecretState added in v1.8.0

func WaitForSecretState(ctx context.Context, client corev1client.SecretInterface, name string, options WaitForStateOptions, condition func(*corev1.Secret) (bool, error), additionalConditions ...func(*corev1.Secret) (bool, error)) (*corev1.Secret, error)

func WaitForServiceAccountState added in v1.8.0

func WaitForServiceAccountState(ctx context.Context, client corev1client.CoreV1Interface, namespace string, name string, options WaitForStateOptions, condition func(*corev1.ServiceAccount) (bool, error), additionalConditions ...func(*corev1.ServiceAccount) (bool, error)) (*corev1.ServiceAccount, error)

func WaitForServiceState added in v1.11.0

func WaitForServiceState(ctx context.Context, client corev1client.ServiceInterface, name string, options WaitForStateOptions, condition func(*corev1.Service) (bool, error), additionalConditions ...func(*corev1.Service) (bool, error)) (*corev1.Service, 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"`
}

type WaitForStateOptions

type WaitForStateOptions struct {
	TolerateDelete bool
}

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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