@@ -60,7 +60,7 @@ type ComputeDomainManager struct {
6060
6161type ComputeDomainDaemonSettings struct {
6262 manager * ComputeDomainManager
63- domain string
63+ domainID string
6464 rootDir string
6565 configTmplPath string
6666 nodesConfigPath string
@@ -128,13 +128,13 @@ func (m *ComputeDomainManager) Stop() error {
128128 return nil
129129}
130130
131- func (m * ComputeDomainManager ) NewSettings (domain string ) * ComputeDomainDaemonSettings {
131+ func (m * ComputeDomainManager ) NewSettings (domainID string ) * ComputeDomainDaemonSettings {
132132 return & ComputeDomainDaemonSettings {
133133 manager : m ,
134- domain : domain ,
135- rootDir : fmt .Sprintf ("%s/%s" , m .configFilesRoot , domain ),
136- configTmplPath : fmt .Sprintf ("%s/%s/%s" , m .configFilesRoot , domain , "config.tmpl.cfg" ),
137- nodesConfigPath : fmt .Sprintf ("%s/%s/%s" , m .configFilesRoot , domain , "nodes_config.cfg" ),
134+ domainID : domainID ,
135+ rootDir : fmt .Sprintf ("%s/%s" , m .configFilesRoot , domainID ),
136+ configTmplPath : fmt .Sprintf ("%s/%s/%s" , m .configFilesRoot , domainID , "config.tmpl.cfg" ),
137+ nodesConfigPath : fmt .Sprintf ("%s/%s/%s" , m .configFilesRoot , domainID , "nodes_config.cfg" ),
138138 }
139139}
140140
@@ -154,27 +154,40 @@ func (m *ComputeDomainManager) GetComputeDomainChannelContainerEdits(devRoot str
154154 }
155155}
156156
157- func (s * ComputeDomainDaemonSettings ) GetDomain () string {
158- return s .domain
159- }
160-
161- func (s * ComputeDomainDaemonSettings ) GetCDIContainerEdits (ctx context.Context , devRoot string , info * nvcapDeviceInfo ) (* cdiapi.ContainerEdits , error ) {
162- cd , err := s .manager .GetComputeDomain (ctx , s .domain )
157+ // GetComputeDomainDaemonContainerEdits() returns the CDI spec edits always
158+ // required for launching the CD Daemon (whether or not it tries to launch an
159+ // IMEX daemon internally).
160+ func (m * ComputeDomainManager ) GetComputeDomainDaemonContainerEdits (ctx context.Context , domainID string ) (* cdiapi.ContainerEdits , error ) {
161+ cd , err := m .GetComputeDomain (ctx , domainID )
163162 if err != nil {
164- return nil , fmt .Errorf ("error getting compute domain: %w" , err )
163+ return nil , fmt .Errorf ("error getting compute domain %s : %w" , domainID , err )
165164 }
166165 if cd == nil {
167- return nil , fmt .Errorf ("compute domain not found: %s" , s . domain )
166+ return nil , fmt .Errorf ("compute domain not found: %s" , domainID )
168167 }
169168
170169 edits := & cdiapi.ContainerEdits {
171170 ContainerEdits : & cdispec.ContainerEdits {
172171 Env : []string {
173- fmt .Sprintf ("CLIQUE_ID=%s" , s . manager .cliqueID ),
172+ fmt .Sprintf ("CLIQUE_ID=%s" , m .cliqueID ),
174173 fmt .Sprintf ("COMPUTE_DOMAIN_UUID=%s" , cd .UID ),
175174 fmt .Sprintf ("COMPUTE_DOMAIN_NAME=%s" , cd .Name ),
176175 fmt .Sprintf ("COMPUTE_DOMAIN_NAMESPACE=%s" , cd .Namespace ),
177176 },
177+ },
178+ }
179+ return edits , nil
180+ }
181+
182+ func (s * ComputeDomainDaemonSettings ) GetDomainID () string {
183+ return s .domainID
184+ }
185+
186+ // GetCDIContainerEditsForImex() returns the CDI spec edits only required for
187+ // launching the CD Daemon when it actually wraps an IMEX daemon.
188+ func (s * ComputeDomainDaemonSettings ) GetCDIContainerEditsForImex (ctx context.Context , devRoot string , info * nvcapDeviceInfo ) * cdiapi.ContainerEdits {
189+ edits := & cdiapi.ContainerEdits {
190+ ContainerEdits : & cdispec.ContainerEdits {
178191 Mounts : []* cdispec.Mount {
179192 {
180193 ContainerPath : "/etc/nvidia-imex" ,
@@ -193,8 +206,7 @@ func (s *ComputeDomainDaemonSettings) GetCDIContainerEdits(ctx context.Context,
193206 },
194207 },
195208 }
196-
197- return edits , nil
209+ return edits
198210}
199211
200212func (s * ComputeDomainDaemonSettings ) Prepare (ctx context.Context ) error {
0 commit comments