@@ -227,6 +227,13 @@ type NIMServiceStorage struct {
227227 HostPath * string `json:"hostPath,omitempty"`
228228 // ReadOnly mode indicates if the volume should be mounted as read-only
229229 ReadOnly * bool `json:"readOnly,omitempty"`
230+ // EmptyDir is the empty dir volume used for caching NIM
231+ EmptyDir * EmptyDirSpec `json:"emptyDir,omitempty"`
232+ }
233+
234+ type EmptyDirSpec struct {
235+ // SizeLimit is the size limit of the empty dir volume
236+ SizeLimit * resource.Quantity `json:"sizeLimit,omitempty"`
230237}
231238
232239// GetLWSName returns the name to be used for the LeaderWorkerSet based on the custom spec.
@@ -688,7 +695,7 @@ func (n *NIMService) GetVolumesMounts() []corev1.Volume {
688695}
689696
690697// GetVolumes returns volumes for the NIMService container.
691- func (n * NIMService ) GetVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
698+ func (n * NIMService ) GetVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
692699 // TODO: Fetch actual PVC name from associated NIMCache obj
693700 volumes := []corev1.Volume {
694701 {
@@ -700,15 +707,26 @@ func (n *NIMService) GetVolumes(modelPVC PersistentVolumeClaim) []corev1.Volume
700707 },
701708 },
702709 },
703- {
710+ }
711+ if modelPVC != nil {
712+ volumes = append (volumes , corev1.Volume {
704713 Name : "model-store" ,
705714 VolumeSource : corev1.VolumeSource {
706715 PersistentVolumeClaim : & corev1.PersistentVolumeClaimVolumeSource {
707716 ClaimName : modelPVC .Name ,
708717 ReadOnly : n .GetStorageReadOnly (),
709718 },
710719 },
711- },
720+ })
721+ } else if n .Spec .Storage .EmptyDir != nil {
722+ volumes = append (volumes , corev1.Volume {
723+ Name : "model-store" ,
724+ VolumeSource : corev1.VolumeSource {
725+ EmptyDir : & corev1.EmptyDirVolumeSource {
726+ SizeLimit : n .Spec .Storage .EmptyDir .SizeLimit ,
727+ },
728+ },
729+ })
712730 }
713731
714732 if n .GetProxySpec () != nil {
@@ -717,7 +735,7 @@ func (n *NIMService) GetVolumes(modelPVC PersistentVolumeClaim) []corev1.Volume
717735 return volumes
718736}
719737
720- func (n * NIMService ) GetLeaderVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
738+ func (n * NIMService ) GetLeaderVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
721739 volumes := n .GetVolumes (modelPVC )
722740
723741 volumes = append (volumes ,
@@ -762,7 +780,7 @@ func (n *NIMService) GetLeaderVolumes(modelPVC PersistentVolumeClaim) []corev1.V
762780 return volumes
763781}
764782
765- func (n * NIMService ) GetWorkerVolumes (modelPVC PersistentVolumeClaim ) []corev1.Volume {
783+ func (n * NIMService ) GetWorkerVolumes (modelPVC * PersistentVolumeClaim ) []corev1.Volume {
766784 volumes := n .GetVolumes (modelPVC )
767785 volumes = append (volumes ,
768786 corev1.Volume {
@@ -802,12 +820,16 @@ func (n *NIMService) GetWorkerVolumes(modelPVC PersistentVolumeClaim) []corev1.V
802820}
803821
804822// GetVolumeMounts returns volumes for the NIMService container.
805- func (n * NIMService ) GetVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
823+ func (n * NIMService ) GetVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
824+ subPath := ""
825+ if modelPVC != nil {
826+ subPath = modelPVC .SubPath
827+ }
806828 volumeMounts := []corev1.VolumeMount {
807829 {
808830 Name : "model-store" ,
809831 MountPath : "/model-store" ,
810- SubPath : modelPVC . SubPath ,
832+ SubPath : subPath ,
811833 },
812834 {
813835 Name : "dshm" ,
@@ -821,7 +843,7 @@ func (n *NIMService) GetVolumeMounts(modelPVC PersistentVolumeClaim) []corev1.Vo
821843 return volumeMounts
822844}
823845
824- func (n * NIMService ) GetWorkerVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
846+ func (n * NIMService ) GetWorkerVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
825847 volumeMounts := n .GetVolumeMounts (modelPVC )
826848
827849 volumeMounts = append (volumeMounts ,
@@ -846,7 +868,7 @@ func (n *NIMService) GetWorkerVolumeMounts(modelPVC PersistentVolumeClaim) []cor
846868 return volumeMounts
847869}
848870
849- func (n * NIMService ) GetLeaderVolumeMounts (modelPVC PersistentVolumeClaim ) []corev1.VolumeMount {
871+ func (n * NIMService ) GetLeaderVolumeMounts (modelPVC * PersistentVolumeClaim ) []corev1.VolumeMount {
850872 volumeMounts := n .GetVolumeMounts (modelPVC )
851873 volumeMounts = append (volumeMounts ,
852874 corev1.VolumeMount {
0 commit comments