@@ -59,6 +59,12 @@ func TestBuildNginxResourceObjects(t *testing.T) {
59
59
{
60
60
Port : 80 ,
61
61
},
62
+ {
63
+ Port : 8888 ,
64
+ },
65
+ {
66
+ Port : 9999 ,
67
+ },
62
68
},
63
69
},
64
70
}
@@ -116,10 +122,24 @@ func TestBuildNginxResourceObjects(t *testing.T) {
116
122
validateMeta (svc )
117
123
g .Expect (svc .Spec .Type ).To (Equal (defaultServiceType ))
118
124
g .Expect (svc .Spec .ExternalTrafficPolicy ).To (Equal (defaultServicePolicy ))
119
- g .Expect (svc .Spec .Ports ).To (ContainElement (corev1.ServicePort {
120
- Port : 80 ,
121
- Name : "port-80" ,
122
- TargetPort : intstr .FromInt (80 ),
125
+
126
+ // service ports is sorted in ascending order by port number when we make the nginx object
127
+ g .Expect (svc .Spec .Ports ).To (Equal ([]corev1.ServicePort {
128
+ {
129
+ Port : 80 ,
130
+ Name : "port-80" ,
131
+ TargetPort : intstr .FromInt (80 ),
132
+ },
133
+ {
134
+ Port : 8888 ,
135
+ Name : "port-8888" ,
136
+ TargetPort : intstr .FromInt (8888 ),
137
+ },
138
+ {
139
+ Port : 9999 ,
140
+ Name : "port-9999" ,
141
+ TargetPort : intstr .FromInt (9999 ),
142
+ },
123
143
}))
124
144
125
145
depObj := objects [4 ]
@@ -132,13 +152,24 @@ func TestBuildNginxResourceObjects(t *testing.T) {
132
152
g .Expect (template .Spec .Containers ).To (HaveLen (1 ))
133
153
container := template .Spec .Containers [0 ]
134
154
135
- g .Expect (container .Ports ).To (ContainElement (corev1.ContainerPort {
136
- ContainerPort : config .DefaultNginxMetricsPort ,
137
- Name : "metrics" ,
138
- }))
139
- g .Expect (container .Ports ).To (ContainElement (corev1.ContainerPort {
140
- ContainerPort : 80 ,
141
- Name : "port-80" ,
155
+ // container ports is sorted in ascending order by port number when we make the nginx object
156
+ g .Expect (container .Ports ).To (Equal ([]corev1.ContainerPort {
157
+ {
158
+ ContainerPort : 80 ,
159
+ Name : "port-80" ,
160
+ },
161
+ {
162
+ ContainerPort : 8888 ,
163
+ Name : "port-8888" ,
164
+ },
165
+ {
166
+ ContainerPort : config .DefaultNginxMetricsPort ,
167
+ Name : "metrics" ,
168
+ },
169
+ {
170
+ ContainerPort : 9999 ,
171
+ Name : "port-9999" ,
172
+ },
142
173
}))
143
174
144
175
g .Expect (container .Image ).To (Equal (fmt .Sprintf ("%s:1.0.0" , defaultNginxImagePath )))
@@ -415,14 +446,32 @@ func TestBuildNginxResourceObjects_DockerSecrets(t *testing.T) {
415
446
},
416
447
Data : map [string ][]byte {"data" : []byte ("docker" )},
417
448
}
418
- fakeClient := fake .NewFakeClient (dockerSecret )
449
+
450
+ dockerSecretTeaName := dockerTestSecretName + "-Tea"
451
+ dockerSecretTea := & corev1.Secret {
452
+ ObjectMeta : metav1.ObjectMeta {
453
+ Name : dockerSecretTeaName ,
454
+ Namespace : ngfNamespace ,
455
+ },
456
+ Data : map [string ][]byte {"data" : []byte ("docker-Tea" )},
457
+ }
458
+
459
+ dockerSecretChaiName := dockerTestSecretName + "-Chai"
460
+ dockerSecretChai := & corev1.Secret {
461
+ ObjectMeta : metav1.ObjectMeta {
462
+ Name : dockerSecretChaiName ,
463
+ Namespace : ngfNamespace ,
464
+ },
465
+ Data : map [string ][]byte {"data" : []byte ("docker-Chai" )},
466
+ }
467
+ fakeClient := fake .NewFakeClient (dockerSecret , dockerSecretTea , dockerSecretChai )
419
468
420
469
provisioner := & NginxProvisioner {
421
470
cfg : Config {
422
471
GatewayPodConfig : & config.GatewayPodConfig {
423
472
Namespace : ngfNamespace ,
424
473
},
425
- NginxDockerSecretNames : []string {dockerTestSecretName },
474
+ NginxDockerSecretNames : []string {dockerTestSecretName , dockerSecretTeaName , dockerSecretChaiName },
426
475
},
427
476
k8sClient : fakeClient ,
428
477
baseLabelSelector : metav1.LabelSelector {
@@ -443,26 +492,49 @@ func TestBuildNginxResourceObjects_DockerSecrets(t *testing.T) {
443
492
objects , err := provisioner .buildNginxResourceObjects (resourceName , gateway , & graph.EffectiveNginxProxy {})
444
493
g .Expect (err ).ToNot (HaveOccurred ())
445
494
446
- g .Expect (objects ).To (HaveLen (6 ))
495
+ g .Expect (objects ).To (HaveLen (8 ))
447
496
448
497
expLabels := map [string ]string {
449
498
"app" : "nginx" ,
450
499
"gateway.networking.k8s.io/gateway-name" : "gw" ,
451
500
"app.kubernetes.io/name" : "gw-nginx" ,
452
501
}
453
502
503
+ // the (docker-only) secret order in the object list is sorted by secret name
504
+
454
505
secretObj := objects [0 ]
455
506
secret , ok := secretObj .(* corev1.Secret )
456
507
g .Expect (ok ).To (BeTrue ())
457
508
g .Expect (secret .GetName ()).To (Equal (controller .CreateNginxResourceName (resourceName , dockerTestSecretName )))
458
509
g .Expect (secret .GetLabels ()).To (Equal (expLabels ))
459
510
460
- depObj := objects [5 ]
511
+ chaiSecretObj := objects [1 ]
512
+ secret , ok = chaiSecretObj .(* corev1.Secret )
513
+ g .Expect (ok ).To (BeTrue ())
514
+ g .Expect (secret .GetName ()).To (Equal (controller .CreateNginxResourceName (resourceName , dockerSecretChaiName )))
515
+ g .Expect (secret .GetLabels ()).To (Equal (expLabels ))
516
+
517
+ teaSecretObj := objects [2 ]
518
+ secret , ok = teaSecretObj .(* corev1.Secret )
519
+ g .Expect (ok ).To (BeTrue ())
520
+ g .Expect (secret .GetName ()).To (Equal (controller .CreateNginxResourceName (resourceName , dockerSecretTeaName )))
521
+ g .Expect (secret .GetLabels ()).To (Equal (expLabels ))
522
+
523
+ depObj := objects [7 ]
461
524
dep , ok := depObj .(* appsv1.Deployment )
462
525
g .Expect (ok ).To (BeTrue ())
463
526
464
- g .Expect (dep .Spec .Template .Spec .ImagePullSecrets ).To (ContainElement (corev1.LocalObjectReference {
465
- Name : controller .CreateNginxResourceName (resourceName , dockerTestSecretName ),
527
+ // imagePullSecrets is sorted by name when we make the nginx object
528
+ g .Expect (dep .Spec .Template .Spec .ImagePullSecrets ).To (Equal ([]corev1.LocalObjectReference {
529
+ {
530
+ Name : controller .CreateNginxResourceName (resourceName , dockerTestSecretName ),
531
+ },
532
+ {
533
+ Name : controller .CreateNginxResourceName (resourceName , dockerSecretChaiName ),
534
+ },
535
+ {
536
+ Name : controller .CreateNginxResourceName (resourceName , dockerSecretTeaName ),
537
+ },
466
538
}))
467
539
}
468
540
0 commit comments