support

package
v0.2.2 Latest Latest
Warning

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

Go to latest
Published: Aug 30, 2023 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Index

Constants

View Source
const (
	CodeFlareTestSdkVersion   = "CODEFLARE_TEST_SDK_VERSION"
	CodeFlareTestRayVersion   = "CODEFLARE_TEST_RAY_VERSION"
	CodeFlareTestRayImage     = "CODEFLARE_TEST_RAY_IMAGE"
	CodeFlareTestPyTorchImage = "CODEFLARE_TEST_PYTORCH_IMAGE"

	CodeFlareTestOutputDir = "CODEFLARE_TEST_OUTPUT_DIR"
)
View Source
const (
	CodeFlareSDKVersion = "0.6.1"
	RayVersion          = "2.5.0"
	RayImage            = "rayproject/ray:2.5.0"
)
View Source
const RayJobDefaultClusterSelectorKey = "ray.io/cluster"

Variables

View Source
var (
	TestTimeoutShort  = 1 * time.Minute
	TestTimeoutMedium = 2 * time.Minute
	TestTimeoutLong   = 5 * time.Minute

	ApplyOptions = metav1.ApplyOptions{FieldManager: "codeflare-test", Force: true}
)

Functions

func AppWrapper

func AppWrapper(t Test, namespace *corev1.Namespace, name string) func(g gomega.Gomega) *mcadv1beta1.AppWrapper

func ConditionStatus

func ConditionStatus[T conditionType](conditionType T) func(any) corev1.ConditionStatus

func GetCodeFlareSDKVersion

func GetCodeFlareSDKVersion() string

func GetIngress added in v0.2.0

func GetIngress(t Test, namespace, name string) *networkingv1.Ingress

func GetJob

func GetJob(t Test, namespace, name string) *batchv1.Job

func GetPodLogs

func GetPodLogs(t Test, pod *corev1.Pod, options corev1.PodLogOptions) []byte

func GetPods

func GetPods(t Test, namespace string, options metav1.ListOptions) []corev1.Pod

func GetPyTorchImage

func GetPyTorchImage() string

func GetRayCluster added in v0.1.0

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

func GetRayImage

func GetRayImage() string

func GetRayJob

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

func GetRayJobAPIDetailsStatus added in v0.1.0

func GetRayJobAPIDetailsStatus(jobDetails *RayJobDetailsResponse) string

func GetRayJobId added in v0.2.0

func GetRayJobId(t Test, namespace, name string) string

func GetRayVersion

func GetRayVersion() string

func GetRoute added in v0.2.0

func GetRoute(t Test, namespace, name string) *routev1.Route

func Ingress added in v0.2.0

func Ingress(t Test, namespace, name string) func(g gomega.Gomega) *networkingv1.Ingress

func IsOpenShift

func IsOpenShift(test Test) bool

func Job

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

func LoadBalancerIngresses added in v0.2.0

func LoadBalancerIngresses(ingress *networkingv1.Ingress) []networkingv1.IngressLoadBalancerIngress

func Ptr

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

func Raw

func RayCluster added in v0.1.0

func RayCluster(t Test, namespace, name string) func(g gomega.Gomega) *rayv1alpha1.RayCluster

func RayClusterState added in v0.1.0

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

func RayJob

func RayJob(t Test, namespace, name string) func(g gomega.Gomega) *rayv1alpha1.RayJob

func RayJobAPIDetails added in v0.1.0

func RayJobAPIDetails(t Test, rayClient RayClusterClient, jobID string) func(g gomega.Gomega) *RayJobDetailsResponse

func RayJobStatus

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

func Route added in v0.1.0

func Route(t Test, namespace, name string) func(g gomega.Gomega) *routev1.Route

func WriteJobLogs

func WriteJobLogs(t Test, namespace, name string)

func WriteRayJobAPILogs added in v0.1.0

func WriteRayJobAPILogs(t Test, rayClient RayClusterClient, jobID string)

func WriteRayJobLogs

func WriteRayJobLogs(t Test, rayClient RayClusterClient, namespace, name string)

func WriteToOutputDir

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

Types

type Client

type Client interface {
	Core() kubernetes.Interface
	Route() routev1.Interface
	CodeFlare() codeflareclient.Interface
	MCAD() mcadclient.Interface
	Ray() rayclient.Interface
}

type Option

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

type OutputType

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

type RayClusterClient added in v0.1.0

type RayClusterClient interface {
	CreateJob(job *RayJobSetup) (*RayJobResponse, error)
	GetJobDetails(jobID string) (*RayJobDetailsResponse, error)
	GetJobLogs(jobID string) (string, error)
}

func NewRayClusterClient added in v0.1.0

func NewRayClusterClient(dashboardEndpoint url.URL) RayClusterClient

type RayJobDetailsResponse added in v0.1.0

type RayJobDetailsResponse struct {
	JobID        string `json:"job_id"`
	SubmissionID string `json:"submission_id"`
	Status       string `json:"status"`
}

func GetRayJobAPIDetails added in v0.1.0

func GetRayJobAPIDetails(t Test, rayClient RayClusterClient, jobID string) *RayJobDetailsResponse

type RayJobLogsResponse added in v0.1.0

type RayJobLogsResponse struct {
	Logs string `json:"logs"`
}

type RayJobResponse added in v0.1.0

type RayJobResponse struct {
	JobID        string `json:"job_id"`
	SubmissionID string `json:"submission_id"`
}

type RayJobSetup added in v0.1.0

type RayJobSetup struct {
	EntryPoint string         `json:"entrypoint"`
	RuntimeEnv map[string]any `json:"runtime_env"`
}

type T

type T struct {
	*gomega.WithT
	// 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

	gomega.Gomega

	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