Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 2 additions & 10 deletions ray-operator/controllers/ray/utils/dashboard_httpclient.go
Original file line number Diff line number Diff line change
Expand Up @@ -319,8 +319,8 @@ func ConvertRayJobToReq(rayJob *rayv1.RayJob) (*utiltypes.RayJobRequest, error)
Metadata: rayJob.Spec.Metadata,
}
if len(rayJob.Spec.RuntimeEnvYAML) != 0 {
runtimeEnv, err := UnmarshalRuntimeEnvYAML(rayJob.Spec.RuntimeEnvYAML)
if err != nil {
var runtimeEnv utiltypes.RuntimeEnvType
if err := yaml.Unmarshal([]byte(rayJob.Spec.RuntimeEnvYAML), &runtimeEnv); err != nil {
return nil, err
}
req.RuntimeEnv = runtimeEnv
Expand All @@ -334,11 +334,3 @@ func ConvertRayJobToReq(rayJob *rayv1.RayJob) (*utiltypes.RayJobRequest, error)
}
return req, nil
}

func UnmarshalRuntimeEnvYAML(runtimeEnvYAML string) (utiltypes.RuntimeEnvType, error) {
var runtimeEnv utiltypes.RuntimeEnvType
if err := yaml.Unmarshal([]byte(runtimeEnvYAML), &runtimeEnv); err != nil {
return nil, fmt.Errorf("failed to unmarshal RuntimeEnvYAML: %v: %w", runtimeEnvYAML, err)
}
return runtimeEnv, nil
}
38 changes: 0 additions & 38 deletions ray-operator/controllers/ray/utils/util_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -794,44 +794,6 @@ func TestCalculateDesiredReplicas(t *testing.T) {
}
}

func TestUnmarshalRuntimeEnv(t *testing.T) {
tests := []struct {
name string
runtimeEnvYAML string
isErrorNil bool
}{
{
name: "Empty runtimeEnvYAML",
runtimeEnvYAML: "",
isErrorNil: true,
},
{
name: "Valid runtimeEnvYAML",
runtimeEnvYAML: `
env_vars:
counter_name: test_counter
`,
isErrorNil: true,
},
{
name: "Invalid runtimeEnvYAML",
runtimeEnvYAML: `invalid_yaml_str`,
isErrorNil: false,
},
}

for _, tc := range tests {
t.Run(tc.name, func(t *testing.T) {
_, err := UnmarshalRuntimeEnvYAML(tc.runtimeEnvYAML)
if tc.isErrorNil {
require.NoError(t, err)
} else {
require.Error(t, err)
}
})
}
}

func TestFindHeadPodReadyCondition(t *testing.T) {
tests := []struct {
name string
Expand Down
4 changes: 3 additions & 1 deletion ray-operator/controllers/ray/utils/validation.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,10 @@ import (
"k8s.io/apimachinery/pkg/api/meta"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/util/validation"
"k8s.io/apimachinery/pkg/util/yaml"

rayv1 "github.com/ray-project/kuberay/ray-operator/apis/ray/v1"
utiltypes "github.com/ray-project/kuberay/ray-operator/controllers/ray/utils/types"
"github.com/ray-project/kuberay/ray-operator/pkg/features"
)

Expand Down Expand Up @@ -204,7 +206,7 @@ func ValidateRayJobSpec(rayJob *rayv1.RayJob) error {

// Validate whether RuntimeEnvYAML is a valid YAML string. Note that this only checks its validity
// as a YAML string, not its adherence to the runtime environment schema.
if _, err := UnmarshalRuntimeEnvYAML(rayJob.Spec.RuntimeEnvYAML); err != nil {
if err := yaml.Unmarshal([]byte(rayJob.Spec.RuntimeEnvYAML), &utiltypes.RuntimeEnvType{}); err != nil {
return err
}
if rayJob.Spec.ActiveDeadlineSeconds != nil && *rayJob.Spec.ActiveDeadlineSeconds <= 0 {
Expand Down