@@ -129,6 +129,101 @@ var _ = Describe("K8s Resources Rendering", func() {
129129 templatesDir := filepath .Join (path .Dir (path .Dir (cwd )), "manifests" )
130130
131131 Context ("Rendering templates" , func () {
132+ It ("should render LeaderWorkerSet template correctly" , func () {
133+ params := types.LeaderWorkerSetParams {
134+ Name : "test-lws" ,
135+ Namespace : "default" ,
136+ Labels : map [string ]string {"app" : "test-app" },
137+ Annotations : map [string ]string {"annotation-key" : "annotation-value" },
138+ Replicas : 3 ,
139+ Image : "nim-llm:latest" ,
140+ LeaderVolumes : []corev1.Volume {
141+ {
142+ Name : "test-leader-volume" ,
143+ VolumeSource : corev1.VolumeSource {
144+ PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
145+ ClaimName : "test-leader-pvc" ,
146+ },
147+ },
148+ },
149+ },
150+ WorkerVolumes : []corev1.Volume {
151+ {
152+ Name : "test-worker-volume" ,
153+ VolumeSource : corev1.VolumeSource {
154+ PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
155+ ClaimName : "test-worker-pvc" ,
156+ },
157+ },
158+ },
159+ },
160+ LeaderVolumeMounts : []corev1.VolumeMount {
161+ {
162+ Name : "test-leader-volume" ,
163+ MountPath : "/data" ,
164+ },
165+ },
166+ WorkerVolumeMounts : []corev1.VolumeMount {
167+ {
168+ Name : "test-worker-volume" ,
169+ MountPath : "/data" ,
170+ },
171+ },
172+ LeaderEnvs : []corev1.EnvVar {
173+ {
174+ Name : "LEADER_ENV_VAR" ,
175+ Value : "value" ,
176+ },
177+ },
178+ WorkerEnvs : []corev1.EnvVar {
179+ {
180+ Name : "WORKER_ENV_VAR" ,
181+ Value : "value" ,
182+ },
183+ },
184+ Resources : & corev1.ResourceRequirements {
185+ Limits : corev1.ResourceList {
186+ corev1 .ResourceCPU : resource .MustParse ("500m" ),
187+ corev1 .ResourceMemory : resource .MustParse ("128Mi" ),
188+ },
189+ Requests : corev1.ResourceList {
190+ corev1 .ResourceCPU : resource .MustParse ("250m" ),
191+ corev1 .ResourceMemory : resource .MustParse ("64Mi" ),
192+ },
193+ },
194+ NodeSelector : map [string ]string {"disktype" : "ssd" },
195+ Tolerations : []corev1.Toleration {
196+ {
197+ Key : "key1" ,
198+ Operator : corev1 .TolerationOpExists ,
199+ Effect : corev1 .TaintEffectNoSchedule ,
200+ },
201+ },
202+ }
203+
204+ r := render .NewRenderer (templatesDir )
205+ lws , err := r .LeaderWorkerSet (& params )
206+ Expect (err ).NotTo (HaveOccurred ())
207+ Expect (lws .Name ).To (Equal ("test-lws" ))
208+ Expect (lws .Namespace ).To (Equal ("default" ))
209+ Expect (lws .Labels ["app" ]).To (Equal ("test-app" ))
210+ Expect (lws .Annotations ["annotation-key" ]).To (Equal ("annotation-value" ))
211+ Expect (* lws .Spec .Replicas ).To (Equal (int32 (3 )))
212+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Containers [0 ].Name ).To (Equal ("nim-leader" ))
213+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Containers [0 ].Image ).To (Equal ("nim-llm:latest" ))
214+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Containers [0 ].Name ).To (Equal ("nim-worker" ))
215+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Containers [0 ].Image ).To (Equal ("nim-llm:latest" ))
216+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Volumes [0 ].Name ).To (Equal ("test-leader-volume" ))
217+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Volumes [0 ].VolumeSource .PersistentVolumeClaim .ClaimName ).To (Equal ("test-leader-pvc" ))
218+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Volumes [0 ].Name ).To (Equal ("test-worker-volume" ))
219+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Volumes [0 ].VolumeSource .PersistentVolumeClaim .ClaimName ).To (Equal ("test-worker-pvc" ))
220+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Containers [0 ].VolumeMounts [0 ].Name ).To (Equal ("test-leader-volume" ))
221+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Containers [0 ].VolumeMounts [0 ].MountPath ).To (Equal ("/data" ))
222+ Expect (lws .Spec .LeaderWorkerTemplate .LeaderTemplate .Spec .Containers [0 ].VolumeMounts [0 ].SubPath ).To (Equal ("subPath" ))
223+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Containers [0 ].VolumeMounts [0 ].Name ).To (Equal ("test-worker-volume" ))
224+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Containers [0 ].VolumeMounts [0 ].MountPath ).To (Equal ("/data" ))
225+ Expect (lws .Spec .LeaderWorkerTemplate .WorkerTemplate .Spec .Containers [0 ].VolumeMounts [0 ].SubPath ).To (Equal ("subPath" ))
226+ })
132227 It ("should render Deployment template correctly" , func () {
133228 params := types.DeploymentParams {
134229 Name : "test-deployment" ,
0 commit comments