Skip to content

Commit a658405

Browse files
authored
test: enable upgrade to image built from source (#3736)
1 parent 7d856ed commit a658405

File tree

1 file changed

+35
-9
lines changed

1 file changed

+35
-9
lines changed

ray-operator/test/e2eupgrade/rayservice_operator_upgrade_test.go

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package e2eupgrade
22

33
import (
44
"fmt"
5+
"os"
56
"os/exec"
67
"testing"
78

@@ -33,6 +34,8 @@ func TestZeroDowntimeUpgradeAfterOperatorUpgrade(t *testing.T) {
3334
// Get the upgrade version from environment
3435
upgradeVersion := GetKubeRayUpgradeVersion()
3536

37+
test.T().Logf("Detected upgrade version: %s", upgradeVersion)
38+
3639
// Create RayService custom resource
3740
rayServiceAC := rayv1ac.RayService(rayServiceName, namespace.Name).WithSpec(e2e.RayServiceSampleYamlApplyConfiguration())
3841
rayService, err := test.Client().Ray().RayV1().RayServices(namespace.Name).Apply(test.Ctx(), rayServiceAC, TestApplyOptions)
@@ -76,15 +79,38 @@ func TestZeroDowntimeUpgradeAfterOperatorUpgrade(t *testing.T) {
7679
g.Expect(endpoints.Subsets[0].Addresses).To(HaveLen(1))
7780

7881
// Upgrade KubeRay operator to latest version and replace CRDs
79-
test.T().Logf("Upgrading the KubeRay operator to the latest release")
80-
cmd := exec.Command("kubectl", "replace", "-k", fmt.Sprintf("github.com/ray-project/kuberay/ray-operator/config/crd?ref=%s", upgradeVersion)) //nolint:gosec // required for upgrade
81-
err = cmd.Run()
82-
g.Expect(err).NotTo(HaveOccurred())
83-
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
84-
cmd = exec.Command("helm", "upgrade", "kuberay-operator", "kuberay/kuberay-operator", "--version", upgradeVersion)
85-
err = cmd.Run()
86-
g.Expect(err).NotTo(HaveOccurred())
87-
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
82+
test.T().Logf("Upgrading the KubeRay operator to %s", upgradeVersion)
83+
84+
useLocalHelmChart := false
85+
86+
if val, ok := os.LookupEnv("USE_LOCAL_HELM_CHART"); ok && val == "true" {
87+
useLocalHelmChart = true
88+
}
89+
90+
if useLocalHelmChart {
91+
cmd := exec.Command("kubectl", "replace", "-k", "../../config/crd")
92+
output, err := cmd.CombinedOutput()
93+
if err != nil {
94+
test.T().Logf("Error upgrading KubeRay operator: %v\nCommand output:\n%s", err, string(output))
95+
t.Fatal("Failed to upgrade KubeRay operator")
96+
}
97+
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
98+
99+
t.Logf("Upgrading operator deployment using local helm image version: %s", upgradeVersion)
100+
cmd = exec.Command("helm", "upgrade", "kuberay-operator", "../../../helm-chart/kuberay-operator", "--set", fmt.Sprintf("image.repository=kuberay/kuberay-operator,image.tag=%s", upgradeVersion)) //nolint:gosec // required for upgrade
101+
err = cmd.Run()
102+
g.Expect(err).NotTo(HaveOccurred())
103+
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
104+
} else {
105+
cmd := exec.Command("kubectl", "replace", "-k", fmt.Sprintf("github.com/ray-project/kuberay/ray-operator/config/crd?ref=%s", upgradeVersion)) //nolint:gosec // required for upgrade
106+
err = cmd.Run()
107+
g.Expect(err).NotTo(HaveOccurred())
108+
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
109+
cmd = exec.Command("helm", "upgrade", "kuberay-operator", "kuberay/kuberay-operator", "--version", upgradeVersion)
110+
err = cmd.Run()
111+
g.Expect(err).NotTo(HaveOccurred())
112+
g.Eventually(cmd, TestTimeoutShort).Should(WithTransform(ProcessStateSuccess, BeTrue()))
113+
}
88114

89115
// Validate RayService is able to serve requests during the upgrade
90116
test.T().Logf("Sending requests to the RayService to make sure it is ready to serve requests")

0 commit comments

Comments
 (0)