@@ -53,6 +53,7 @@ type ResourceClaimTemplateTemplateData struct {
5353 TargetLabelValue string
5454 DeviceClassName string
5555 DriverName string
56+ ChannelID int
5657 ChannelConfig * nvapi.ComputeDomainChannelConfig
5758 DaemonConfig * nvapi.ComputeDomainDaemonConfig
5859}
@@ -166,22 +167,16 @@ func (m *BaseResourceClaimTemplateManager) Delete(ctx context.Context, cdUID str
166167 if err != nil {
167168 return fmt .Errorf ("error retrieving ResourceClaimTemplate: %w" , err )
168169 }
169- if len (rcts ) > 1 {
170- return fmt .Errorf ("more than one ResourceClaimTemplate found with same ComputeDomain UID" )
171- }
172- if len (rcts ) == 0 {
173- return nil
174- }
175-
176- rct := rcts [0 ]
177170
178- if rct .GetDeletionTimestamp () != nil {
179- return nil
180- }
171+ for _ , rct := range rcts {
172+ if rct .GetDeletionTimestamp () != nil {
173+ continue
174+ }
181175
182- err = m .config .clientsets .Core .ResourceV1beta1 ().ResourceClaimTemplates (rct .Namespace ).Delete (ctx , rct .Name , metav1.DeleteOptions {})
183- if err != nil && ! errors .IsNotFound (err ) {
184- return fmt .Errorf ("erroring deleting ResourceClaimTemplate: %w" , err )
176+ err := m .config .clientsets .Core .ResourceV1beta1 ().ResourceClaimTemplates (rct .Namespace ).Delete (ctx , rct .Name , metav1.DeleteOptions {})
177+ if err != nil && ! errors .IsNotFound (err ) {
178+ return fmt .Errorf ("erroring deleting ResourceClaimTemplate: %w" , err )
179+ }
185180 }
186181
187182 return nil
@@ -192,32 +187,26 @@ func (m *BaseResourceClaimTemplateManager) RemoveFinalizer(ctx context.Context,
192187 if err != nil {
193188 return fmt .Errorf ("error retrieving ResourceClaimTemplate: %w" , err )
194189 }
195- if len (rcts ) > 1 {
196- return fmt .Errorf ("more than one ResourceClaimTemplate found with same ComputeDomain UID" )
197- }
198- if len (rcts ) == 0 {
199- return nil
200- }
201-
202- rct := rcts [0 ]
203190
204- if rct .GetDeletionTimestamp () == nil {
205- return fmt .Errorf ("attempting to remove finalizer before ResourceClaimTemplate marked for deletion" )
206- }
191+ for _ , rct := range rcts {
192+ if rct .GetDeletionTimestamp () == nil {
193+ return fmt .Errorf ("attempting to remove finalizer before ResourceClaimTemplate marked for deletion" )
194+ }
207195
208- newRCT := rct .DeepCopy ()
209- newRCT .Finalizers = []string {}
210- for _ , f := range rct .Finalizers {
211- if f != computeDomainFinalizer {
212- newRCT .Finalizers = append (newRCT .Finalizers , f )
196+ newRCT := rct .DeepCopy ()
197+ newRCT .Finalizers = []string {}
198+ for _ , f := range rct .Finalizers {
199+ if f != computeDomainFinalizer {
200+ newRCT .Finalizers = append (newRCT .Finalizers , f )
201+ }
202+ }
203+ if len (rct .Finalizers ) == len (newRCT .Finalizers ) {
204+ return nil
213205 }
214- }
215- if len (rct .Finalizers ) == len (newRCT .Finalizers ) {
216- return nil
217- }
218206
219- if _ , err = m .config .clientsets .Core .ResourceV1beta1 ().ResourceClaimTemplates (rct .Namespace ).Update (ctx , newRCT , metav1.UpdateOptions {}); err != nil {
220- return fmt .Errorf ("error updating ResourceClaimTemplate: %w" , err )
207+ if _ , err = m .config .clientsets .Core .ResourceV1beta1 ().ResourceClaimTemplates (newRCT .Namespace ).Update (ctx , newRCT , metav1.UpdateOptions {}); err != nil {
208+ return fmt .Errorf ("error updating ResourceClaimTemplate: %w" , err )
209+ }
221210 }
222211
223212 return nil
@@ -274,9 +263,6 @@ func (m *DaemonSetResourceClaimTemplateManager) Create(ctx context.Context, name
274263 daemonConfig .NumNodes = cd .Spec .NumNodes
275264 daemonConfig .DomainID = string (cd .UID )
276265
277- channelConfig := nvapi .DefaultComputeDomainChannelConfig ()
278- channelConfig .DomainID = string (cd .UID )
279-
280266 templateData := ResourceClaimTemplateTemplateData {
281267 Namespace : namespace ,
282268 GenerateName : fmt .Sprintf ("%s-daemon-claim-template-" , cd .Name ),
@@ -322,16 +308,15 @@ func NewWorkloadResourceClaimTemplateManager(config *ManagerConfig) *WorkloadRes
322308 return m
323309}
324310
325- func (m * WorkloadResourceClaimTemplateManager ) Create (ctx context.Context , namespace , name string , cd * nvapi.ComputeDomain ) (* resourceapi.ResourceClaimTemplate , error ) {
311+ func (m * WorkloadResourceClaimTemplateManager ) Create (ctx context.Context , namespace , name string , channel int , cd * nvapi.ComputeDomain ) (* resourceapi.ResourceClaimTemplate , error ) {
326312 rcts , err := getByComputeDomainUID [* resourceapi.ResourceClaimTemplate ](ctx , m .informer , string (cd .UID ))
327313 if err != nil {
328314 return nil , fmt .Errorf ("error retrieving ResourceClaimTemplate: %w" , err )
329315 }
330- if len (rcts ) > 1 {
331- return nil , fmt .Errorf ("more than one ResourceClaimTemplate found with same ComputeDomain UID" )
332- }
333- if len (rcts ) == 1 {
334- return rcts [0 ], nil
316+ for _ , rct := range rcts {
317+ if rct .Namespace == namespace && rct .Name == name {
318+ return rct , nil
319+ }
335320 }
336321
337322 channelConfig := nvapi .DefaultComputeDomainChannelConfig ()
@@ -345,8 +330,9 @@ func (m *WorkloadResourceClaimTemplateManager) Create(ctx context.Context, names
345330 ComputeDomainLabelValue : cd .UID ,
346331 TargetLabelKey : computeDomainResourceClaimTemplateTargetLabelKey ,
347332 TargetLabelValue : computeDomainResourceClaimTemplateTargetWorkload ,
348- DeviceClassName : computeDomainDefaultChannelDeviceClass ,
333+ DeviceClassName : computeDomainChannelDeviceClass ,
349334 DriverName : DriverName ,
335+ ChannelID : channel ,
350336 ChannelConfig : channelConfig ,
351337 }
352338
0 commit comments