@@ -30,7 +30,6 @@ import (
30
30
31
31
"github.com/opencontainers/go-digest"
32
32
"gotest.tools/v3/assert"
33
- "gotest.tools/v3/icmd"
34
33
35
34
"github.com/containerd/containerd/v2/defaults"
36
35
"github.com/containerd/nerdctl/mod/tigron/require"
@@ -337,26 +336,24 @@ func TestUsernsMappingCreateCmd(t *testing.T) {
337
336
testCase := & test.Case {
338
337
Require : require .All (
339
338
nerdtest .AllowModifyUserns ,
340
- require .Not (nerdtest .ContainerdV1 ),
341
339
require .Not (nerdtest .Docker )),
342
340
SubTests : []* test.Case {
343
341
{
344
342
Description : "Test container start with valid Userns" ,
345
343
NoParallel : true , // Changes system config so running in non parallel mode
346
344
Setup : func (data test.Data , helpers test.Helpers ) {
347
- data .Set ("validUserns" , "nerdctltestuser" )
348
- data .Set ("expectedHostUID" , "123456789" )
349
- // need to be compiled with containerd version >2.0.2 to support multi uidmap and gidmap.
350
- if err := appendUsernsConfig (data .Get ("validUserns" ), data .Get ("expectedHostUID" )); err != nil {
345
+ data .Labels ().Set ("validUserns" , "nerdctltestuser" )
346
+ data .Labels ().Set ("expectedHostUID" , "123456789" )
347
+ if err := appendUsernsConfig (data .Labels ().Get ("validUserns" ), data .Labels ().Get ("expectedHostUID" )); err != nil {
351
348
t .Fatalf ("Failed to append Userns config: %v" , err )
352
349
}
353
350
},
354
351
Cleanup : func (data test.Data , helpers test.Helpers ) {
355
- removeUsernsConfig (t , data .Get ( "validUserns" ), data .Get ("expectedHostUID " ))
352
+ removeUsernsConfig (t , data .Labels () .Get ("validUserns " ))
356
353
helpers .Anyhow ("rm" , "-f" , data .Identifier ())
357
354
},
358
355
Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
359
- helpers .Ensure ("create" , "--tty" , "--userns" , data .Get ("validUserns" ), "--name" , data .Identifier (), testutil .NginxAlpineImage )
356
+ helpers .Ensure ("create" , "--tty" , "--userns" , data .Labels (). Get ("validUserns" ), "--name" , data .Identifier (), testutil .NginxAlpineImage )
360
357
return helpers .Command ("start" , data .Identifier ())
361
358
},
362
359
Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
@@ -367,7 +364,7 @@ func TestUsernsMappingCreateCmd(t *testing.T) {
367
364
if err != nil {
368
365
t .Fatalf ("Failed to get container host UID: %v" , err )
369
366
}
370
- assert .Assert (t , actualHostUID == data .Get ("expectedHostUID" ), info )
367
+ assert .Assert (t , actualHostUID == data .Labels (). Get ("expectedHostUID" ), info )
371
368
},
372
369
}
373
370
},
@@ -376,13 +373,13 @@ func TestUsernsMappingCreateCmd(t *testing.T) {
376
373
Description : "Test container start with invalid Userns" ,
377
374
NoParallel : true , // Changes system config so running in non parallel mode
378
375
Setup : func (data test.Data , helpers test.Helpers ) {
379
- data .Set ("invalidUserns" , "invaliduser" )
376
+ data .Labels (). Set ("invalidUserns" , "invaliduser" )
380
377
},
381
378
Cleanup : func (data test.Data , helpers test.Helpers ) {
382
379
helpers .Anyhow ("rm" , "-f" , data .Identifier ())
383
380
},
384
381
Command : func (data test.Data , helpers test.Helpers ) test.TestableCommand {
385
- return helpers .Command ("create" , "--tty" , "--userns" , data .Get ("invalidUserns" ), "--name" , data .Identifier (), testutil .NginxAlpineImage )
382
+ return helpers .Command ("create" , "--tty" , "--userns" , data .Labels (). Get ("invalidUserns" ), "--name" , data .Identifier (), testutil .NginxAlpineImage )
386
383
},
387
384
Expected : func (data test.Data , helpers test.Helpers ) * test.Expected {
388
385
return & test.Expected {
@@ -395,19 +392,6 @@ func TestUsernsMappingCreateCmd(t *testing.T) {
395
392
testCase .Run (t )
396
393
}
397
394
398
- func runUsernsContainer (t * testing.T , name , Userns , image , cmd string ) * icmd.Result {
399
- base := testutil .NewBase (t )
400
- removeContainerArgs := []string {
401
- "rm" , "-f" , name ,
402
- }
403
- base .Cmd (removeContainerArgs ... ).Run ()
404
-
405
- args := []string {
406
- "run" , "-d" , "--userns" , Userns , "--name" , name , image , "sh" , "-c" , cmd ,
407
- }
408
- return base .Cmd (args ... ).Run ()
409
- }
410
-
411
395
func getContainerHostUID (helpers test.Helpers , containerName string ) (string , error ) {
412
396
result := helpers .Capture ("inspect" , "--format" , "{{.State.Pid}}" , containerName )
413
397
pidStr := strings .TrimSpace (result )
@@ -425,12 +409,12 @@ func getContainerHostUID(helpers test.Helpers, containerName string) (string, er
425
409
return strconv .Itoa (uid ), nil
426
410
}
427
411
428
- func appendUsernsConfig (Userns string , hostUid string ) error {
429
- if err := addUser (Userns , hostUid ); err != nil {
430
- return fmt .Errorf ("failed to add user %s: %w" , Userns , err )
412
+ func appendUsernsConfig (userns string , hostUID string ) error {
413
+ if err := addUser (userns , hostUID ); err != nil {
414
+ return fmt .Errorf ("failed to add user %s: %w" , userns , err )
431
415
}
432
416
433
- entry := fmt .Sprintf ("%s:%s:65536\n " , Userns , hostUid )
417
+ entry := fmt .Sprintf ("%s:%s:65536\n " , userns , hostUID )
434
418
435
419
tempDir := os .TempDir ()
436
420
@@ -468,28 +452,27 @@ func appendUsernsConfig(Userns string, hostUid string) error {
468
452
return nil
469
453
}
470
454
471
- func addUser (username string , hostId string ) error {
472
- cmd := exec .Command ("groupadd" , "-g" , hostId , username )
455
+ func addUser (username string , hostID string ) error {
456
+ cmd := exec .Command ("groupadd" , "-g" , hostID , username )
473
457
output , err := cmd .CombinedOutput ()
474
458
if err != nil {
475
459
return fmt .Errorf ("groupadd failed: %s, %w" , string (output ), err )
476
460
}
477
- cmd = exec .Command ("useradd" , "-u" , hostId , "-g" , hostId , "-s" , "/bin/false" , username )
461
+ cmd = exec .Command ("useradd" , "-u" , hostID , "-g" , hostID , "-s" , "/bin/false" , username )
478
462
output , err = cmd .CombinedOutput ()
479
463
if err != nil {
480
464
return fmt .Errorf ("useradd failed: %s, %w" , string (output ), err )
481
465
}
482
466
return nil
483
467
}
484
468
485
- func removeUsernsConfig (t * testing.T , Userns string , hostUid string ) {
486
-
487
- if err := delUser (Userns ); err != nil {
488
- t .Logf ("failed to del user %s, Error: %s" , Userns , err )
469
+ func removeUsernsConfig (t * testing.T , userns string ) {
470
+ if err := delUser (userns ); err != nil {
471
+ t .Logf ("failed to del user %s, Error: %s" , userns , err )
489
472
}
490
473
491
- if err := delGroup (Userns ); err != nil {
492
- t .Logf ("failed to del group %s, Error: %s" , Userns , err )
474
+ if err := delGroup (userns ); err != nil {
475
+ t .Logf ("failed to del group %s, Error: %s" , userns , err )
493
476
}
494
477
495
478
tempDir := os .TempDir ()
@@ -521,7 +504,7 @@ func removeUsernsConfig(t *testing.T, Userns string, hostUid string) {
521
504
}
522
505
523
506
func delUser (username string ) error {
524
- cmd := exec .Command ("sudo" , " userdel" , username )
507
+ cmd := exec .Command ("userdel" , username )
525
508
output , err := cmd .CombinedOutput ()
526
509
if err != nil {
527
510
return fmt .Errorf ("userdel failed: %s, %w" , string (output ), err )
@@ -530,7 +513,7 @@ func delUser(username string) error {
530
513
}
531
514
532
515
func delGroup (groupname string ) error {
533
- cmd := exec .Command ("sudo" , " groupdel" , groupname )
516
+ cmd := exec .Command ("groupdel" , groupname )
534
517
output , err := cmd .CombinedOutput ()
535
518
if err != nil {
536
519
return fmt .Errorf ("groupdel failed: %s, %w" , string (output ), err )
0 commit comments