@@ -10437,6 +10437,235 @@ func TestServicesDiff(t *testing.T) {
10437
10437
}
10438
10438
}
10439
10439
10440
+ func TestDiff_SidecarIdentities (t * testing.T ) {
10441
+ oldTask := & SidecarTask {
10442
+ Name : "old" ,
10443
+ Driver : "docker" ,
10444
+ User : "sidecar" ,
10445
+ Config : map [string ]any {"foo" : "bar" },
10446
+ Env : map [string ]string {"FOO" : "BAR" },
10447
+ Resources : & Resources {
10448
+ Cores : 2 ,
10449
+ NUMA : & NUMA {
10450
+ Affinity : "none" ,
10451
+ },
10452
+ },
10453
+ Meta : map [string ]string {"meta" : "val" },
10454
+ KillTimeout : pointer .Of (10 * time .Second ),
10455
+ LogConfig : & LogConfig {
10456
+ MaxFiles : 3 ,
10457
+ MaxFileSizeMB : 100 ,
10458
+ },
10459
+ ShutdownDelay : pointer .Of (20 * time .Second ),
10460
+ KillSignal : "SIGUSR1" ,
10461
+ Identities : []* WorkloadIdentity {
10462
+ {
10463
+ Name : "fooident" ,
10464
+ Audience : []string {"foo.bar" },
10465
+ ChangeMode : "signal" ,
10466
+ ChangeSignal : "SIGHUP2" ,
10467
+ },
10468
+ },
10469
+ }
10470
+ newTask := & SidecarTask {
10471
+ Name : "new" ,
10472
+ Driver : "podman" ,
10473
+ User : "proxy" ,
10474
+ Config : map [string ]any {"eggs" : "spam" },
10475
+ Env : map [string ]string {"EGGS" : "SPAM" },
10476
+ Resources : & Resources {
10477
+ Cores : 4 ,
10478
+ NUMA : & NUMA {
10479
+ Affinity : "prefer" ,
10480
+ },
10481
+ },
10482
+ Meta : map [string ]string {"meta" : "val" },
10483
+ KillTimeout : pointer .Of (10 * time .Second ),
10484
+ LogConfig : & LogConfig {
10485
+ MaxFiles : 3 ,
10486
+ MaxFileSizeMB : 100 ,
10487
+ },
10488
+ ShutdownDelay : pointer .Of (20 * time .Second ),
10489
+ KillSignal : "SIGUSR1" ,
10490
+ Identities : []* WorkloadIdentity {
10491
+ {
10492
+ Name : "fooident" ,
10493
+ Audience : []string {"foo.bar" , "new.foo.bar" },
10494
+ ChangeMode : "signal" ,
10495
+ ChangeSignal : "SIGHUP3" ,
10496
+ },
10497
+ {
10498
+ Name : "barident" ,
10499
+ Audience : []string {"bar.foo" },
10500
+ ChangeMode : "signal" ,
10501
+ ChangeSignal : "SIGHUP" ,
10502
+ },
10503
+ },
10504
+ }
10505
+ expected := & ObjectDiff {
10506
+ Type : DiffTypeEdited ,
10507
+ Name : "SidecarTask" ,
10508
+ Fields : []* FieldDiff {
10509
+ {
10510
+ Type : DiffTypeEdited ,
10511
+ Name : "Driver" ,
10512
+ Old : "docker" ,
10513
+ New : "podman" ,
10514
+ },
10515
+ {
10516
+ Type : DiffTypeAdded ,
10517
+ Name : "Env[EGGS]" ,
10518
+ Old : "" ,
10519
+ New : "SPAM" ,
10520
+ },
10521
+ {
10522
+ Type : DiffTypeDeleted ,
10523
+ Name : "Env[FOO]" ,
10524
+ Old : "BAR" ,
10525
+ New : "" ,
10526
+ },
10527
+ {
10528
+ Type : DiffTypeEdited ,
10529
+ Name : "Name" ,
10530
+ Old : "old" ,
10531
+ New : "new" ,
10532
+ },
10533
+ {
10534
+ Type : DiffTypeEdited ,
10535
+ Name : "User" ,
10536
+ Old : "sidecar" ,
10537
+ New : "proxy" ,
10538
+ },
10539
+ },
10540
+ Objects : []* ObjectDiff {
10541
+ {
10542
+ Type : DiffTypeEdited ,
10543
+ Name : "Config" ,
10544
+ Fields : []* FieldDiff {
10545
+ {
10546
+ Type : DiffTypeAdded ,
10547
+ Name : "eggs" ,
10548
+ Old : "" ,
10549
+ New : "spam" ,
10550
+ },
10551
+ {
10552
+ Type : DiffTypeDeleted ,
10553
+ Name : "foo" ,
10554
+ Old : "bar" ,
10555
+ New : "" ,
10556
+ },
10557
+ },
10558
+ },
10559
+ {
10560
+ Type : DiffTypeEdited ,
10561
+ Name : "Resources" ,
10562
+ Fields : []* FieldDiff {
10563
+ {
10564
+ Type : DiffTypeNone ,
10565
+ Name : "CPU" ,
10566
+ Old : "0" ,
10567
+ New : "0" ,
10568
+ },
10569
+ {
10570
+ Type : DiffTypeEdited ,
10571
+ Name : "Cores" ,
10572
+ Old : "2" ,
10573
+ New : "4" ,
10574
+ },
10575
+ {
10576
+ Type : DiffTypeNone ,
10577
+ Name : "DiskMB" ,
10578
+ Old : "0" ,
10579
+ New : "0" ,
10580
+ },
10581
+ {
10582
+ Type : DiffTypeNone ,
10583
+ Name : "IOPS" ,
10584
+ Old : "0" ,
10585
+ New : "0" ,
10586
+ },
10587
+ {
10588
+ Type : DiffTypeNone ,
10589
+ Name : "MemoryMB" ,
10590
+ Old : "0" ,
10591
+ New : "0" ,
10592
+ },
10593
+ {
10594
+ Type : DiffTypeNone ,
10595
+ Name : "MemoryMaxMB" ,
10596
+ Old : "0" ,
10597
+ New : "0" ,
10598
+ },
10599
+ {
10600
+ Type : DiffTypeNone ,
10601
+ Name : "SecretsMB" ,
10602
+ Old : "0" ,
10603
+ New : "0" ,
10604
+ },
10605
+ },
10606
+ Objects : []* ObjectDiff {
10607
+ {
10608
+ Type : DiffTypeEdited ,
10609
+ Name : "NUMA" ,
10610
+ Fields : []* FieldDiff {
10611
+ {
10612
+ Type : DiffTypeEdited ,
10613
+ Name : "Affinity" ,
10614
+ Old : "none" ,
10615
+ New : "prefer" ,
10616
+ },
10617
+ },
10618
+ },
10619
+ },
10620
+ },
10621
+ {
10622
+ Type : DiffTypeEdited ,
10623
+ Name : "Identity" ,
10624
+ Fields : []* FieldDiff {
10625
+ {Type : "None" , Name : "ChangeMode" , Old : "signal" , New : "signal" },
10626
+ {Type : "Edited" , Name : "ChangeSignal" , Old : "SIGHUP2" , New : "SIGHUP3" },
10627
+ {Type : "None" , Name : "Env" , Old : "false" , New : "false" },
10628
+ {Type : "None" , Name : "File" , Old : "false" , New : "false" },
10629
+ {Type : "None" , Name : "Filepath" },
10630
+ {Type : "None" , Name : "Name" , Old : "fooident" , New : "fooident" },
10631
+ {Type : "None" , Name : "ServiceName" },
10632
+ {Type : "None" , Name : "TTL" , Old : "0" , New : "0" },
10633
+ },
10634
+ Objects : []* ObjectDiff {
10635
+ {Type : "Added" , Name : "Audience" , Fields : []* FieldDiff {
10636
+ {Type : "Added" , Name : "Audience" , New : "new.foo.bar" },
10637
+ {Type : "None" , Name : "Audience" , Old : "foo.bar" , New : "foo.bar" },
10638
+ },
10639
+ },
10640
+ },
10641
+ },
10642
+ {
10643
+ Type : DiffTypeAdded ,
10644
+ Name : "Identity" ,
10645
+ Fields : []* FieldDiff {
10646
+ {Type : "Added" , Name : "ChangeMode" , New : "signal" },
10647
+ {Type : "Added" , Name : "ChangeSignal" , New : "SIGHUP" },
10648
+ {Type : "Added" , Name : "Env" , New : "false" },
10649
+ {Type : "Added" , Name : "File" , New : "false" },
10650
+ {Type : "None" , Name : "Filepath" },
10651
+ {Type : "Added" , Name : "Name" , New : "barident" },
10652
+ {Type : "None" , Name : "ServiceName" },
10653
+ {Type : "Added" , Name : "TTL" , New : "0" },
10654
+ },
10655
+ Objects : []* ObjectDiff {
10656
+ {Type : "Added" , Name : "Audience" , Fields : []* FieldDiff {
10657
+ {Type : "Added" , Name : "Audience" , New : "bar.foo" },
10658
+ },
10659
+ },
10660
+ },
10661
+ },
10662
+ },
10663
+ }
10664
+
10665
+ actual := sidecarTaskDiff (oldTask , newTask , true )
10666
+ must .Eq (t , expected , actual )
10667
+ }
10668
+
10440
10669
// TestDiff_SidecarVolumes asserts changes to sidecar task volumes are
10441
10670
// detected. See #25878
10442
10671
func TestDiff_SidecarVolumes (t * testing.T ) {
0 commit comments