Skip to content

Commit 1380378

Browse files
Add upgrade tests for Trainer v2
1 parent 6192483 commit 1380378

9 files changed

+702
-22
lines changed

tests/common/environment.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ import (
2727
)
2828

2929
const (
30+
// The environment variable referring to image simulating sleep condition in container
31+
sleepImageEnvVar = "SLEEP_IMAGE"
3032
// Name of the authenticated Notebook user
3133
notebookUserName = "NOTEBOOK_USER_NAME"
3234
// Token of the authenticated Notebook user
@@ -154,6 +156,10 @@ func GetHuggingFaceToken(t Test) string {
154156
return token
155157
}
156158

159+
func GetSleepImage() string {
160+
return lookupEnvOrDefault(sleepImageEnvVar, "gcr.io/k8s-staging-perf-tests/sleep@sha256:8d91ddf9f145b66475efda1a1b52269be542292891b5de2a7fad944052bab6ea")
161+
}
162+
157163
func init() {
158164
flag.StringVar(&testTierParam, "testTier", "", "Test tier")
159165
}

tests/common/support/namespace.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ import (
2222
"github.com/onsi/gomega"
2323

2424
corev1 "k8s.io/api/core/v1"
25+
"k8s.io/apimachinery/pkg/api/errors"
2526
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2627
)
2728

@@ -85,6 +86,23 @@ func GetNamespaceWithName(t Test, namespaceName string) *corev1.Namespace {
8586
return namespace
8687
}
8788

89+
// CreateOrGetTestNamespaceWithName creates a namespace with the given name if it doesn't exist,
90+
// or returns the existing namespace if it does. This is useful for scenarios where
91+
// the namespace needs to persist across multiple test phases.
92+
func CreateOrGetTestNamespaceWithName(t Test, name string, options ...Option[*corev1.Namespace]) *corev1.Namespace {
93+
t.T().Helper()
94+
namespace, err := t.Client().Core().CoreV1().Namespaces().Get(t.Ctx(), name, metav1.GetOptions{})
95+
if err == nil {
96+
return namespace
97+
} else if errors.IsNotFound(err) {
98+
t.T().Logf("%s namespace doesn't exist. Creating ...", name)
99+
return CreateTestNamespaceWithName(t, name, options...)
100+
} else {
101+
t.T().Fatalf("Error retrieving namespace with name `%s`: %v", name, err)
102+
}
103+
return nil
104+
}
105+
88106
func DeleteTestNamespace(t Test, namespace *corev1.Namespace) {
89107
t.T().Helper()
90108
propagationPolicy := metav1.DeletePropagationBackground

tests/kfto/environment.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ const (
2525
bloomModelImageEnvVar = "BLOOM_MODEL_IMAGE"
2626
// The environment variable referring to image containing Stanford Alpaca dataset
2727
alpacaDatasetImageEnvVar = "ALPACA_DATASET_IMAGE"
28-
// The environment variable referring to image simulating sleep condition in container
29-
sleepImageEnvVar = "SLEEP_IMAGE"
3028
)
3129

3230
func GetBloomModelImage() string {
@@ -37,10 +35,6 @@ func GetAlpacaDatasetImage() string {
3735
return lookupEnvOrDefault(alpacaDatasetImageEnvVar, "quay.io/ksuta/alpaca-dataset@sha256:2e90f631180c7b2c916f9569b914b336b612e8ae86efad82546adc5c9fcbbb8d")
3836
}
3937

40-
func GetSleepImage() string {
41-
return lookupEnvOrDefault(sleepImageEnvVar, "gcr.io/k8s-staging-perf-tests/sleep@sha256:8d91ddf9f145b66475efda1a1b52269be542292891b5de2a7fad944052bab6ea")
42-
}
43-
4438
func lookupEnvOrDefault(key, value string) string {
4539
if v, ok := os.LookupEnv(key); ok {
4640
return v

tests/kfto/kfto_kueue_mnist_upgrade_training_test.go

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ func TestSetupPytorchjob(t *testing.T) {
4545
Tags(t, PreUpgrade)
4646
test := With(t)
4747

48-
createOrGetUpgradeTestNamespace(test, namespaceName)
48+
CreateOrGetTestNamespaceWithName(test, namespaceName)
4949

5050
// Create a ConfigMap with training dataset and configuration
5151
mnist := readFile(test, "resources/mnist.py")
@@ -298,17 +298,3 @@ func createUpgradePyTorchJob(test Test, namespace, localQueueName string, config
298298

299299
return tuningJob
300300
}
301-
302-
func createOrGetUpgradeTestNamespace(test Test, name string, options ...Option[*corev1.Namespace]) (namespace *corev1.Namespace) {
303-
// Verify that the namespace really exists and return it, create it if doesn't exist yet
304-
namespace, err := test.Client().Core().CoreV1().Namespaces().Get(test.Ctx(), name, metav1.GetOptions{})
305-
if err == nil {
306-
return
307-
} else if errors.IsNotFound(err) {
308-
test.T().Logf("%s namespace doesn't exists. Creating ...", name)
309-
return CreateTestNamespaceWithName(test, name, options...)
310-
} else {
311-
test.T().Fatalf("Error retrieving namespace with name `%s`: %v", name, err)
312-
}
313-
return
314-
}

tests/kfto/kfto_upgrade_sleep_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ func TestSetupSleepPytorchjob(t *testing.T) {
4242
test := With(t)
4343

4444
// Create a namespace
45-
createOrGetUpgradeTestNamespace(test, sleepNamespaceName)
45+
CreateOrGetTestNamespaceWithName(test, sleepNamespaceName)
4646

4747
// Create Kueue resources
4848
resourceFlavor := CreateKueueResourceFlavor(test, v1beta1.ResourceFlavorSpec{})

0 commit comments

Comments
 (0)