support

package
v1.6.0 Latest Latest
Warning

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

Go to latest
Published: Mar 19, 2026 License: Apache-2.0, BSD-2-Clause, MIT Imports: 52 Imported by: 7

Documentation

Index

Constants

View Source
const (
	RayVersion            = "2.52.0"
	RayImage              = "rayproject/ray:2.52.0"
	KuberayUpgradeVersion = "v1.5.1"
)
View Source
const (
	// KuberayTestOutputDir is the testing output directory, to write output files into.
	KuberayTestOutputDir = "KUBERAY_TEST_OUTPUT_DIR"

	// KuberayTestRayVersion is the version of Ray to use for testing.
	KuberayTestRayVersion = "KUBERAY_TEST_RAY_VERSION"

	// KuberayTestRayImage is the Ray image to use for testing.
	KuberayTestRayImage = "KUBERAY_TEST_RAY_IMAGE"

	KuberayTestUpgradeImage = "KUBERAY_TEST_UPGRADE_IMAGE"
)
View Source
const (
	RedisAddress  = "redis:6379"
	RedisPassword = "5241590000000000"
)
View Source
const (
	PODS_RESOURCE = iota
	JOBS_RESOURCE
	SERVICES_RESOURCE
	RAYJOBS_RESOURCE
	RAYSERVICES_RESOURCE
	RAYCLUSTERS_RESOURCE
)

Variables

View Source
var (
	TestApplyOptions = metav1.ApplyOptions{FieldManager: "kuberay-test", Force: true}

	TestTimeoutShort  = 1 * time.Minute
	TestTimeoutMedium = 2 * time.Minute
	TestTimeoutLong   = 5 * time.Minute
)

Functions

func AllPodsRunningAndReady added in v1.5.0

func AllPodsRunningAndReady(pods []corev1.Pod) bool

func Apply added in v1.5.0

func Apply[T any](t *T, options ...SupportOption[T]) *T

func CreateCurlPod added in v1.3.0

func CreateCurlPod(g *gomega.WithT, t Test, podName, containerName, namespace string) (*corev1.Pod, error)

func CreateResourceQuota added in v1.4.0

func CreateResourceQuota(t Test, namespace string, name string, cpu string, memory string) *corev1.ResourceQuota

func DeletePodAndWait added in v1.5.0

func DeletePodAndWait(test Test, rayCluster *rayv1.RayCluster, namespace *corev1.Namespace, currentHeadPod *corev1.Pod) (*corev1.Pod, error)

func DeployRedis added in v1.5.0

func DeployRedis(t Test, namespace string, password string) func() string

func DeserializeRayClusterYAML added in v1.3.0

func DeserializeRayClusterYAML(t Test, filename string) *rayv1.RayCluster

func DeserializeRayJobYAML added in v1.3.0

func DeserializeRayJobYAML(t Test, filename string) *rayv1.RayJob

func DeserializeRayServiceYAML added in v1.3.0

func DeserializeRayServiceYAML(t Test, filename string) *rayv1.RayService

func ExecPodCmd added in v1.2.0

func ExecPodCmd(t Test, pod *corev1.Pod, containerName string, cmd []string, allowError ...bool) (bytes.Buffer, bytes.Buffer)

func Gateway added in v1.5.0

func Gateway(t Test, namespace, name string) func() (*gwv1.Gateway, error)

func GetAllPods added in v1.3.0

func GetAllPods(t Test, rayCluster *rayv1.RayCluster) ([]corev1.Pod, error)

func GetGateway added in v1.5.0

func GetGateway(t Test, namespace, name string) (*gwv1.Gateway, error)

func GetGroupPods added in v1.2.0

func GetGroupPods(t Test, rayCluster *rayv1.RayCluster, group string) ([]corev1.Pod, error)

func GetHTTPRoute added in v1.5.0

func GetHTTPRoute(t Test, namespace, name string) (*gwv1.HTTPRoute, error)

func GetHeadPod added in v1.2.0

func GetHeadPod(t Test, rayCluster *rayv1.RayCluster) (*corev1.Pod, error)

func GetKubeRayUpgradeVersion added in v1.4.0

func GetKubeRayUpgradeVersion() string

func GetMetricsResponseAndCode added in v1.5.0

func GetMetricsResponseAndCode(t *testing.T, reg *prometheus.Registry) (string, int)

GetMetricsResponseAndCode simulates an HTTP GET request to the /metrics endpoint, processes it using a Prometheus handler built from the provided registry, and returns the resulting response body as a string along with the HTTP status code.

func GetRayCluster

func GetRayCluster(t Test, namespace, name string) (*rayv1.RayCluster, error)

func GetRayClusterWorkerGroupReplicaSum added in v1.3.0

func GetRayClusterWorkerGroupReplicaSum(cluster *rayv1.RayCluster) int32

func GetRayCronJob added in v1.6.0

func GetRayCronJob(t Test, namespace, name string) (*rayv1.RayCronJob, error)

func GetRayImage

func GetRayImage() string

func GetRayJob

func GetRayJob(t Test, namespace, name string) (*rayv1.RayJob, error)

func GetRayService added in v1.3.0

func GetRayService(t Test, namespace, name string) (*rayv1.RayService, error)

func GetRayVersion

func GetRayVersion() string

func GetWorkerPods added in v1.3.0

func GetWorkerPods(t Test, rayCluster *rayv1.RayCluster) ([]corev1.Pod, error)

func GroupPods added in v1.4.0

func GroupPods(t Test, rayCluster *rayv1.RayCluster, group string) func() ([]corev1.Pod, error)

func HTTPRoute added in v1.5.0

func HTTPRoute(t Test, namespace, name string) func() (*gwv1.HTTPRoute, error)

func HeadPod added in v1.3.0

func HeadPod(t Test, rayCluster *rayv1.RayCluster) func() (*corev1.Pod, error)

func HeadPodTemplateApplyConfiguration added in v1.5.0

func HeadPodTemplateApplyConfiguration() *corev1ac.PodTemplateSpecApplyConfiguration

func IsPodRunningAndReady added in v1.5.0

func IsPodRunningAndReady(pod *corev1.Pod) bool

func IsRayServiceReady added in v1.3.0

func IsRayServiceReady(service *rayv1.RayService) bool

func IsRayServiceRollingBack added in v1.6.0

func IsRayServiceRollingBack(service *rayv1.RayService) bool

func IsRayServiceUpgrading added in v1.3.0

func IsRayServiceUpgrading(service *rayv1.RayService) bool

func Job

func Job(t Test, namespace, name string) func(g gomega.Gomega) *batchv1.Job

func JobSubmitterPodTemplateApplyConfiguration added in v1.5.0

func JobSubmitterPodTemplateApplyConfiguration() *corev1ac.PodTemplateSpecApplyConfiguration

func Jobs

func Jobs(t Test, namespace string) func(g gomega.Gomega) []batchv1.Job

func KubectlApplyQuota added in v1.3.0

func KubectlApplyQuota(t Test, namespace, quota string)

func KubectlApplyYAML added in v1.3.0

func KubectlApplyYAML(t Test, filename string, namespace string)

func KubectlDeleteAllPods added in v1.3.0

func KubectlDeleteAllPods(t Test, namespace string)

func LogWithTimestamp added in v1.4.0

func LogWithTimestamp(t *testing.T, format string, args ...any)

func MatchCondition added in v1.3.0

func MatchCondition(status metav1.ConditionStatus, reason string) types.GomegaMatcher

func MatchConditionContainsMessage added in v1.4.0

func MatchConditionContainsMessage(status metav1.ConditionStatus, reason string, message string) types.GomegaMatcher

func NewConfigMap added in v1.5.0

func Pods

func Pods(t Test, namespace string, options ...Option[*metav1.ListOptions]) func(g gomega.Gomega) []corev1.Pod

func Ptr

func Ptr[T any](v T) *T

func RayCluster

func RayCluster(t Test, namespace, name string) func() (*rayv1.RayCluster, error)

func RayClusterDesiredWorkerReplicas added in v1.2.0

func RayClusterDesiredWorkerReplicas(cluster *rayv1.RayCluster) int32

func RayClusterManagedBy added in v1.3.0

func RayClusterManagedBy(rayCluster *rayv1.RayCluster) *string

func RayClusterState

func RayClusterState(cluster *rayv1.RayCluster) rayv1.ClusterState

func RayCronJob added in v1.6.0

func RayCronJob(t Test, namespace, name string) func() (*rayv1.RayCronJob, error)

func RayJob

func RayJob(t Test, namespace, name string) func() (*rayv1.RayJob, error)

func RayJobClusterName added in v1.3.0

func RayJobClusterName(job *rayv1.RayJob) string

func RayJobDeploymentStatus

func RayJobDeploymentStatus(job *rayv1.RayJob) rayv1.JobDeploymentStatus

func RayJobFailed added in v1.2.0

func RayJobFailed(job *rayv1.RayJob) int32

func RayJobManagedBy added in v1.3.0

func RayJobManagedBy(job *rayv1.RayJob) *string

func RayJobReason

func RayJobReason(job *rayv1.RayJob) rayv1.JobFailedReason

func RayJobStatus

func RayJobStatus(job *rayv1.RayJob) rayv1.JobStatus

func RayJobSucceeded added in v1.2.0

func RayJobSucceeded(job *rayv1.RayJob) int32

func RayService added in v1.2.0

func RayService(t Test, namespace, name string) func() (*rayv1.RayService, error)

func RayServiceManagedBy added in v1.6.0

func RayServiceManagedBy(rayService *rayv1.RayService) *string

func RayServiceStatus added in v1.2.0

func RayServiceStatus(service *rayv1.RayService) rayv1.ServiceStatus

func RayServicesNumEndPoints added in v1.3.0

func RayServicesNumEndPoints(service *rayv1.RayService) int32

func ReadFile added in v1.5.0

func ReadFile(t Test, fileName string) []byte

func SetupPortForward added in v1.3.0

func SetupPortForward(t Test, podName, namespace string, localPort, remotePort int) (chan struct{}, error)

func StatusCondition added in v1.3.0

func StatusCondition(condType rayv1.RayClusterConditionType) func(*rayv1.RayCluster) metav1.Condition

func VerifyContainerAuthTokenEnvVars added in v1.6.0

func VerifyContainerAuthTokenEnvVars(t Test, rayCluster *rayv1.RayCluster, container *corev1.Container)

VerifyContainerAuthTokenEnvVars verifies that the specified container has the correct auth token environment variables. This is a common helper function used across all auth-related E2E tests.

func WithRayClusterResourceLogger added in v1.4.0

func WithRayClusterResourceLogger(t Test) types.GomegaTestingT

func WithRayJobResourceLogger added in v1.4.0

func WithRayJobResourceLogger(t Test) types.GomegaTestingT

func WithRayServiceResourceLogger added in v1.4.0

func WithRayServiceResourceLogger(t Test) types.GomegaTestingT

func WorkerPodTemplateApplyConfiguration added in v1.5.0

func WorkerPodTemplateApplyConfiguration() *corev1ac.PodTemplateSpecApplyConfiguration

func WorkerPods added in v1.3.0

func WorkerPods(t Test, rayCluster *rayv1.RayCluster) func() ([]corev1.Pod, error)

func WriteToOutputDir

func WriteToOutputDir(t Test, fileName string, fileType OutputType, data []byte)

Types

type Client

type Client interface {
	Core() kubernetes.Interface
	Ray() rayclient.Interface
	Dynamic() dynamic.Interface
	Config() rest.Config
	Gateway() gatewayclient.Interface
}

type ConditionMatcher added in v1.3.0

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

func (*ConditionMatcher) FailureMessage added in v1.3.0

func (c *ConditionMatcher) FailureMessage(actual any) (message string)

func (*ConditionMatcher) Match added in v1.3.0

func (c *ConditionMatcher) Match(actual any) (success bool, err error)

func (*ConditionMatcher) NegatedFailureMessage added in v1.3.0

func (c *ConditionMatcher) NegatedFailureMessage(actual any) (message string)

type EndpointInfo added in v1.6.0

type EndpointInfo struct {
	TargetRefName string
	TargetRefUID  types.UID
}

EndpointInfo contains information about a ready endpoint from an EndpointSlice.

func GetReadyEndpointsFromSlices added in v1.6.0

func GetReadyEndpointsFromSlices(ctx context.Context, client Client, namespace, serviceName string) ([]EndpointInfo, error)

GetReadyEndpointsFromSlices retrieves all ready endpoints from EndpointSlices associated with the given service name in the specified namespace. It returns a slice of EndpointInfo containing target reference names and UIDs of ready endpoints.

type Option

type Option[T any] interface {
	// contains filtered or unexported methods
}

func LabelSelector

func LabelSelector(selector string) Option[*metav1.ListOptions]

type OutputType

type OutputType string
const (
	Log OutputType = "log"
)

type RayResourceLogger added in v1.4.0

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

func (*RayResourceLogger) Fatalf added in v1.4.0

func (l *RayResourceLogger) Fatalf(format string, args ...any)

func (*RayResourceLogger) FprintRayClusters added in v1.4.0

func (l *RayResourceLogger) FprintRayClusters(sb *strings.Builder)

func (*RayResourceLogger) FprintRayJobs added in v1.4.0

func (l *RayResourceLogger) FprintRayJobs(sb *strings.Builder)

func (*RayResourceLogger) FprintRayServices added in v1.4.0

func (l *RayResourceLogger) FprintRayServices(sb *strings.Builder)

func (*RayResourceLogger) FprintServices added in v1.4.0

func (l *RayResourceLogger) FprintServices(sb *strings.Builder)

func (*RayResourceLogger) FprintfJobs added in v1.4.0

func (l *RayResourceLogger) FprintfJobs(sb *strings.Builder)

func (*RayResourceLogger) FprintfPods added in v1.4.0

func (l *RayResourceLogger) FprintfPods(sb *strings.Builder)

func (*RayResourceLogger) GetLoggers added in v1.4.0

func (l *RayResourceLogger) GetLoggers() []ResourceLoggerFunc

func (*RayResourceLogger) Helper added in v1.4.0

func (l *RayResourceLogger) Helper()

func (*RayResourceLogger) MakeFprintUnsupportedResource added in v1.4.0

func (l *RayResourceLogger) MakeFprintUnsupportedResource(resource int) func(sb *strings.Builder)

type ResourceLoggerFunc added in v1.4.0

type ResourceLoggerFunc = func(sb *strings.Builder)

type SupportOption added in v1.5.0

type SupportOption[T any] func(t *T) *T

func Files added in v1.5.0

type T

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

func (*T) Client

func (t *T) Client() Client

func (*T) Ctx

func (t *T) Ctx() context.Context

func (*T) NewTestNamespace

func (t *T) NewTestNamespace(options ...Option[*corev1.Namespace]) *corev1.Namespace

func (*T) OutputDir

func (t *T) OutputDir() string

func (*T) T

func (t *T) T() *testing.T

type Test

type Test interface {
	T() *testing.T
	Ctx() context.Context
	Client() Client
	OutputDir() string

	NewTestNamespace(...Option[*corev1.Namespace]) *corev1.Namespace
}

func With

func With(t *testing.T) Test

Jump to

Keyboard shortcuts

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