@@ -192,6 +192,7 @@ export default class HyperkitBackend extends events.EventEmitter implements K8s.
192192 const options : childProcess . SpawnOptions = { stdio : 'inherit' } ;
193193 const { driver, defaultArgs } = this . hyperkitArgs ;
194194
195+ process . stderr . write ( `\u001B[0;1m${ JSON . stringify ( [ driver ] . concat ( defaultArgs , args ) ) } \u001B[0m\n` ) ;
195196 await new Promise < void > ( ( resolve , reject ) => {
196197 const child = childProcess . spawn ( driver , defaultArgs . concat ( args ) , options ) ;
197198
@@ -346,15 +347,30 @@ export default class HyperkitBackend extends events.EventEmitter implements K8s.
346347 '--cpus' , `${ this . cfg . numberCPUs } ` ,
347348 '--memory' , `${ this . cfg . memoryInGB * 1024 } ` ,
348349 '--hyperkit' , resources . executable ( 'hyperkit' ) ,
349- '--volume' , `${ path . join ( paths . cache ( ) , 'k3s' ) } :/k3s-cache:ro` ,
350- '--volume' , `${ resources . get ( os . platform ( ) ) } :/opt/rd` ,
351350 ) ;
352351
352+ // Copy the k3s files over
353+ const cacheDir = '/home/docker/k3s-cache' ;
354+ const filesToCopy : Record < string , string > = {
355+ ...Object . fromEntries ( this . k3sHelper . filenames . map ( filename => [
356+ path . join ( paths . cache ( ) , 'k3s' , desiredVersion , filename ) ,
357+ `${ cacheDir } /${ desiredVersion } /${ filename } ` ] ) ) ,
358+ [ resources . get ( path . join ( os . platform ( ) , 'run-k3s' ) ) ] : `${ cacheDir } /run-k3s` ,
359+ [ resources . get ( path . join ( os . platform ( ) , 'kubeconfig' ) ) ] : `${ cacheDir } /kubeconfig` ,
360+ } ;
361+
362+ await this . hyperkit ( 'ssh' , '--' , 'mkdir' , '-p' , `${ cacheDir } /${ desiredVersion } ` ) ;
363+ await Promise . all ( Object . entries ( filesToCopy ) . map (
364+ ( [ src , dest ] ) => this . hyperkit ( 'cp' , src , `:${ dest } ` ) ) ) ;
365+
353366 // Ensure that the k3s binary is executable.
354- await this . hyperkit ( 'ssh' , '--' , 'chmod' , 'a+x' , `/k3s-cache/${ desiredVersion } /k3s` ) ;
367+ await this . hyperkit ( 'ssh' , '--' , 'chmod' , 'a+x' ,
368+ `${ cacheDir } /${ desiredVersion } /k3s` ,
369+ `${ cacheDir } /run-k3s` ,
370+ `${ cacheDir } /kubeconfig` ) ;
355371 // Run run-k3s with NORUN, to set up the environment.
356372 await this . hyperkit ( 'ssh' , '--' ,
357- 'sudo' , 'NORUN=1' , ' CACHE_DIR=/k3s-cache' , '/opt/rd/ run-k3s' , desiredVersion ) ;
373+ 'sudo' , 'NORUN=1' , ` CACHE_DIR=${ cacheDir } ` , ` ${ cacheDir } / run-k3s` , desiredVersion ) ;
358374
359375 // Actually run K3s
360376 this . process = childProcess . spawn (
@@ -397,7 +413,7 @@ export default class HyperkitBackend extends events.EventEmitter implements K8s.
397413 await this . k3sHelper . updateKubeconfig (
398414 resources . executable ( 'docker-machine-driver-hyperkit' ) ,
399415 '--storage-path' , path . join ( paths . state ( ) , 'driver' ) ,
400- 'ssh' , '--' , 'sudo' , '/opt/rd/ kubeconfig' ,
416+ 'ssh' , '--' , 'sudo' , ` ${ cacheDir } / kubeconfig` ,
401417 ) ;
402418 } catch ( e ) {
403419 console . error ( e ) ;
0 commit comments