@@ -171,25 +171,38 @@ func (d *driverMgr) Build(ctx context.Context) error {
171171 // Mark build as incomplete at the start
172172 d .driverBuildIncomplete = true
173173
174- // Create inventory directory
175- if err := d .createInventoryDirectory (ctx , inventoryPath ); err != nil {
176- return fmt .Errorf ("failed to create inventory directory: %w" , err )
177- }
174+ // Check if DTK OCP driver build is enabled
175+ if d .cfg .DtkOcpDriverBuild {
176+ if err := d .buildDriverDTK (ctx , kernelVersion , inventoryPath ); err != nil {
177+ return err
178+ }
179+ } else {
180+ // Create inventory directory
181+ if err := d .createInventoryDirectory (ctx , inventoryPath ); err != nil {
182+ return fmt .Errorf ("failed to create inventory directory: %w" , err )
183+ }
178184
179- // Install OS-specific prerequisites
180- log .V (1 ).Info ("About to install prerequisites" , "os" , osType , "kernel" , kernelVersion )
181- if err := d .installPrerequisitesForOS (ctx , osType , kernelVersion ); err != nil {
182- return fmt .Errorf ("failed to install prerequisites: %w" , err )
183- }
185+ // Install OS-specific prerequisites
186+ log .V (1 ).Info ("About to install prerequisites" , "os" , osType , "kernel" , kernelVersion )
187+ if err := d .installPrerequisitesForOS (ctx , osType , kernelVersion ); err != nil {
188+ return fmt .Errorf ("failed to install prerequisites: %w" , err )
189+ }
184190
185- // Build driver from source
186- if err := d .buildDriverFromSource (ctx , d .cfg .NvidiaNicDriverPath , kernelVersion , osType ); err != nil {
187- return fmt .Errorf ("failed to build driver from source: %w" , err )
188- }
191+ // Build driver from source
192+ if err := d .buildDriverFromSource (ctx , d .cfg .NvidiaNicDriverPath , kernelVersion , osType ); err != nil {
193+ return fmt .Errorf ("failed to build driver from source: %w" , err )
194+ }
195+
196+ // Copy build artifacts to inventory
197+ if err := d .copyBuildArtifacts (ctx , d .cfg .NvidiaNicDriverPath , inventoryPath , osType ); err != nil {
198+ return fmt .Errorf ("failed to copy build artifacts: %w" , err )
199+ }
189200
190- // Copy build artifacts to inventory
191- if err := d .copyBuildArtifacts (ctx , d .cfg .NvidiaNicDriverPath , inventoryPath , osType ); err != nil {
192- return fmt .Errorf ("failed to copy build artifacts: %w" , err )
201+ // Fix source link if needed
202+ if err := d .fixSourceLink (ctx , kernelVersion ); err != nil {
203+ log .V (1 ).Info ("Failed to fix source link" , "error" , err )
204+ // Non-fatal error, continue
205+ }
193206 }
194207
195208 // Calculate and store checksum
@@ -199,12 +212,6 @@ func (d *driverMgr) Build(ctx context.Context) error {
199212 }
200213 }
201214
202- // Fix source link if needed
203- if err := d .fixSourceLink (ctx , kernelVersion ); err != nil {
204- log .V (1 ).Info ("Failed to fix source link" , "error" , err )
205- // Non-fatal error, continue
206- }
207-
208215 // Mark build as complete after successful build
209216 d .driverBuildIncomplete = false
210217
0 commit comments