@@ -228,6 +228,13 @@ type NIMServiceStorage struct {
228228 HostPath * string `json:"hostPath,omitempty"`
229229 // ReadOnly mode indicates if the volume should be mounted as read-only
230230 ReadOnly * bool `json:"readOnly,omitempty"`
231+ // EmptyDir is the empty dir volume used for caching NIM
232+ EmptyDir * EmptyDirSpec `json:"emptyDir,omitempty"`
233+ }
234+
235+ type EmptyDirSpec struct {
236+ // SizeLimit is the size limit of the empty dir volume
237+ SizeLimit * resource.Quantity `json:"sizeLimit,omitempty"`
231238}
232239
233240// GetLWSName returns the name to be used for the LeaderWorkerSet based on the custom spec.
@@ -700,7 +707,7 @@ func (n *NIMService) GetVolumesMounts() []corev1.Volume {
700707}
701708
702709// GetVolumes returns volumes for the NIMService container.
703- func (n * NIMService ) GetVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
710+ func (n * NIMService ) GetVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
704711 // TODO: Fetch actual PVC name from associated NIMCache obj
705712 volumes := []corev1.Volume {
706713 {
@@ -712,15 +719,26 @@ func (n *NIMService) GetVolumes(modelPVC PersistentVolumeClaim) []corev1.Volume
712719 },
713720 },
714721 },
715- {
722+ }
723+ if modelPVC != nil {
724+ volumes = append (volumes , corev1.Volume {
716725 Name : "model-store" ,
717726 VolumeSource : corev1.VolumeSource {
718727 PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
719728 ClaimName : modelPVC .Name ,
720729 ReadOnly : n .GetStorageReadOnly (),
721730 },
722731 },
723- },
732+ })
733+ } else if n .Spec .Storage .EmptyDir != nil {
734+ volumes = append (volumes , corev1.Volume {
735+ Name : "model-store" ,
736+ VolumeSource : corev1.VolumeSource {
737+ EmptyDir : & corev1.EmptyDirVolumeSource {
738+ SizeLimit : n .Spec .Storage .EmptyDir .SizeLimit ,
739+ },
740+ },
741+ })
724742 }
725743
726744 if n .GetProxySpec () != nil {
@@ -729,7 +747,7 @@ func (n *NIMService) GetVolumes(modelPVC PersistentVolumeClaim) []corev1.Volume
729747 return volumes
730748}
731749
732- func (n * NIMService ) GetLeaderVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
750+ func (n * NIMService ) GetLeaderVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
733751 volumes := n .GetVolumes (modelPVC )
734752
735753 volumes = append (volumes ,
@@ -774,7 +792,7 @@ func (n *NIMService) GetLeaderVolumes(modelPVC PersistentVolumeClaim) []corev1.V
774792 return volumes
775793}
776794
777- func (n * NIMService ) GetWorkerVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
795+ func (n * NIMService ) GetWorkerVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
778796 volumes := n .GetVolumes (modelPVC )
779797 volumes = append (volumes ,
780798 corev1.Volume {
@@ -814,12 +832,16 @@ func (n *NIMService) GetWorkerVolumes(modelPVC PersistentVolumeClaim) []corev1.V
814832}
815833
816834// GetVolumeMounts returns volumes for the NIMService container.
817- func (n * NIMService ) GetVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
835+ func (n * NIMService ) GetVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
836+ subPath := ""
837+ if modelPVC != nil {
838+ subPath = modelPVC .SubPath
839+ }
818840 volumeMounts := []corev1.VolumeMount {
819841 {
820842 Name : "model-store" ,
821843 MountPath : "/model-store" ,
822- SubPath : modelPVC . SubPath ,
844+ SubPath : subPath ,
823845 },
824846 {
825847 Name : "dshm" ,
@@ -833,7 +855,7 @@ func (n *NIMService) GetVolumeMounts(modelPVC PersistentVolumeClaim) []corev1.Vo
833855 return volumeMounts
834856}
835857
836- func (n * NIMService ) GetWorkerVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
858+ func (n * NIMService ) GetWorkerVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
837859 volumeMounts := n .GetVolumeMounts (modelPVC )
838860
839861 volumeMounts = append (volumeMounts ,
@@ -858,7 +880,7 @@ func (n *NIMService) GetWorkerVolumeMounts(modelPVC PersistentVolumeClaim) []cor
858880 return volumeMounts
859881}
860882
861- func (n * NIMService ) GetLeaderVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
883+ func (n * NIMService ) GetLeaderVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
862884 volumeMounts := n .GetVolumeMounts (modelPVC )
863885 volumeMounts = append (volumeMounts ,
864886 corev1.VolumeMount {
0 commit comments