@@ -100,24 +100,25 @@ func (w *rayClusterWebhook) Default(ctx context.Context, obj runtime.Object) err
100
100
}
101
101
102
102
// WorkerGroupSpec
103
-
104
- // Append the list of environment variables for the worker container
105
- for _ , envVar := range envVarList () {
106
- rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].Env = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].Env , envVar , withEnvVarName (envVar .Name ))
107
- }
108
-
109
- // Append the CA volumes
110
- for _ , caVol := range caVolumes (rayCluster ) {
111
- rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes , caVol , withVolumeName (caVol .Name ))
112
- }
113
-
114
- // Append the certificate volume mounts
115
- for _ , mount := range certVolumeMounts () {
116
- rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].VolumeMounts = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].VolumeMounts , mount , byVolumeMountName )
103
+ if len (rayCluster .Spec .WorkerGroupSpecs ) != 0 {
104
+ // Append the list of environment variables for the worker container
105
+ for _ , envVar := range envVarList () {
106
+ rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].Env = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].Env , envVar , withEnvVarName (envVar .Name ))
107
+ }
108
+
109
+ // Append the CA volumes
110
+ for _ , caVol := range caVolumes (rayCluster ) {
111
+ rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes , caVol , withVolumeName (caVol .Name ))
112
+ }
113
+
114
+ // Append the certificate volume mounts
115
+ for _ , mount := range certVolumeMounts () {
116
+ rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].VolumeMounts = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].VolumeMounts , mount , byVolumeMountName )
117
+ }
118
+
119
+ // Append the create-cert Init Container
120
+ rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .InitContainers = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .InitContainers , rayWorkerInitContainer (), withContainerName (initContainerName ))
117
121
}
118
-
119
- // Append the create-cert Init Container
120
- rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .InitContainers = upsert (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .InitContainers , rayWorkerInitContainer (), withContainerName (initContainerName ))
121
122
}
122
123
123
124
return nil
@@ -386,6 +387,10 @@ func validateHeadInitContainer(rayCluster *rayv1.RayCluster, domain string) fiel
386
387
func validateWorkerInitContainer (rayCluster * rayv1.RayCluster ) field.ErrorList {
387
388
var allErrors field.ErrorList
388
389
390
+ if len (rayCluster .Spec .WorkerGroupSpecs ) == 0 {
391
+ return allErrors
392
+ }
393
+
389
394
if err := contains (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .InitContainers , rayWorkerInitContainer (), byContainerName ,
390
395
field .NewPath ("spec" , "workerGroupSpecs" , "0" , "template" , "spec" , "initContainers" ),
391
396
"create-cert Init Container is immutable" ); err != nil {
@@ -404,10 +409,12 @@ func validateCaVolumes(rayCluster *rayv1.RayCluster) field.ErrorList {
404
409
"ca-vol and server-cert Secret volumes are immutable" ); err != nil {
405
410
allErrors = append (allErrors , err )
406
411
}
407
- if err := contains (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes , caVol , byVolumeName ,
408
- field .NewPath ("spec" , "workerGroupSpecs" , "0" , "template" , "spec" , "volumes" ),
409
- "ca-vol and server-cert Secret volumes are immutable" ); err != nil {
410
- allErrors = append (allErrors , err )
412
+ if len (rayCluster .Spec .WorkerGroupSpecs ) != 0 {
413
+ if err := contains (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Volumes , caVol , byVolumeName ,
414
+ field .NewPath ("spec" , "workerGroupSpecs" , "0" , "template" , "spec" , "volumes" ),
415
+ "ca-vol and server-cert Secret volumes are immutable" ); err != nil {
416
+ allErrors = append (allErrors , err )
417
+ }
411
418
}
412
419
}
413
420
@@ -431,6 +438,10 @@ func validateHeadEnvVars(rayCluster *rayv1.RayCluster) field.ErrorList {
431
438
func validateWorkerEnvVars (rayCluster * rayv1.RayCluster ) field.ErrorList {
432
439
var allErrors field.ErrorList
433
440
441
+ if len (rayCluster .Spec .WorkerGroupSpecs ) == 0 {
442
+ return allErrors
443
+ }
444
+
434
445
for _ , envVar := range envVarList () {
435
446
if err := contains (rayCluster .Spec .WorkerGroupSpecs [0 ].Template .Spec .Containers [0 ].Env , envVar , byEnvVarName ,
436
447
field .NewPath ("spec" , "workerGroupSpecs" , "0" , "template" , "spec" , "containers" , strconv .Itoa (0 ), "env" ),
0 commit comments