Skip to content

Commit ad2e479

Browse files
committed
Fix up tests
1 parent 792c6f5 commit ad2e479

File tree

106 files changed

+6996
-68
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

106 files changed

+6996
-68
lines changed

cmd/nginx-ingress/main_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ func TestK8sVersionValidation(t *testing.T) {
8888
ctx := nl.ContextWithLogger(context.Background(), l)
8989

9090
// setup kube client with version
91-
clientset := fake.NewSimpleClientset()
91+
clientset := fake.NewClientset()
9292
fakeDiscovery, _ := clientset.Discovery().(*fakediscovery.FakeDiscovery)
9393
fakeDiscovery.FakedServerVersion = &pkgversion.Info{GitVersion: tc.kubeVersion}
9494

@@ -127,7 +127,7 @@ func TestK8sVersionValidationBad(t *testing.T) {
127127
ctx := nl.ContextWithLogger(context.Background(), l)
128128

129129
// setup kube client with version
130-
clientset := fake.NewSimpleClientset()
130+
clientset := fake.NewClientset()
131131
fakeDiscovery, _ := clientset.Discovery().(*fakediscovery.FakeDiscovery)
132132
fakeDiscovery.FakedServerVersion = &pkgversion.Info{GitVersion: tc.kubeVersion}
133133

@@ -354,7 +354,7 @@ func TestCreateHeadlessService(t *testing.T) {
354354
if tc.existingService != nil {
355355
clientObjects = append(clientObjects, tc.existingService)
356356
}
357-
clientset := fake.NewSimpleClientset(clientObjects...)
357+
clientset := fake.NewClientset(clientObjects...)
358358

359359
err := createHeadlessService(logger, clientset, controllerNamespace, svcName, configMapNamespacedName, pod)
360360
assert.NoError(t, err)

hack/update-codegen.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ kube::codegen::gen_helpers \
3737

3838
kube::codegen::gen_client \
3939
--with-watch \
40+
--with-applyconfig \
4041
--output-dir "${SCRIPT_ROOT}/pkg/client" \
4142
--output-pkg "${THIS_PKG}/pkg/client" \
4243
--boilerplate "${SCRIPT_ROOT}/hack/boilerplate.go.txt" \

internal/certmanager/cm_controller_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ func Test_controller_Register(t *testing.T) {
4949
name: "virtualserver is re-queued when an 'Added' event is received for this virtualserver",
5050
givenCall: func(t *testing.T, _ cmclient.Interface, c k8s_nginx.Interface) {
5151
_, err := c.K8sV1().VirtualServers("namespace-1").Create(context.Background(), &vsapi.VirtualServer{ObjectMeta: metav1.ObjectMeta{
52-
Namespace: "namespace-1", Name: "vs-1",
52+
Namespace: "namespace-1", Name: "vs-1", UID: "vs-uid-1",
5353
}}, metav1.CreateOptions{})
5454
require.NoError(t, err)
5555
},
@@ -58,11 +58,11 @@ func Test_controller_Register(t *testing.T) {
5858
{
5959
name: "virtualserver is re-queued when an 'Updated' event is received for this virtualserver",
6060
existingVsObjects: []runtime.Object{&vsapi.VirtualServer{ObjectMeta: metav1.ObjectMeta{
61-
Namespace: "namespace-1", Name: "vs-1",
61+
Namespace: "namespace-1", Name: "vs-1", UID: "vs-uid-1",
6262
}}},
6363
givenCall: func(t *testing.T, _ cmclient.Interface, c k8s_nginx.Interface) {
6464
_, err := c.K8sV1().VirtualServers("namespace-1").Update(context.Background(), &vsapi.VirtualServer{ObjectMeta: metav1.ObjectMeta{
65-
Namespace: "namespace-1", Name: "vs-1",
65+
Namespace: "namespace-1", Name: "vs-1", UID: "vs-uid-1",
6666
}}, metav1.UpdateOptions{})
6767
require.NoError(t, err)
6868
},

internal/certmanager/test_files/context_builder.go

Lines changed: 40 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,9 @@ import (
2626

2727
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2828
"k8s.io/apimachinery/pkg/runtime"
29+
"k8s.io/apimachinery/pkg/runtime/serializer"
2930
utilerrors "k8s.io/apimachinery/pkg/util/errors"
31+
"k8s.io/apimachinery/pkg/watch"
3032
kubeinformers "k8s.io/client-go/informers"
3133
kubefake "k8s.io/client-go/kubernetes/fake"
3234
"k8s.io/client-go/rest"
@@ -38,9 +40,13 @@ import (
3840
cmfake "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned/fake"
3941
informers "github.com/cert-manager/cert-manager/pkg/client/informers/externalversions"
4042
"github.com/cert-manager/cert-manager/pkg/util"
43+
confv1 "github.com/nginx/kubernetes-ingress/pkg/apis/configuration/v1"
4144
k8s_nginx "github.com/nginx/kubernetes-ingress/pkg/client/clientset/versioned"
4245
vsfake "github.com/nginx/kubernetes-ingress/pkg/client/clientset/versioned/fake"
4346
vsinformers "github.com/nginx/kubernetes-ingress/pkg/client/informers/externalversions"
47+
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
48+
clientfeatures "k8s.io/client-go/features"
49+
clienttesting "k8s.io/client-go/features/testing"
4450
)
4551

4652
// Builder is a structure used to construct new Contexts for use during tests.
@@ -101,13 +107,44 @@ func (b *Builder) Init() {
101107
b.StringGenerator = RandStringBytes
102108
}
103109
b.requiredReactors = make(map[string]bool)
104-
b.Client = kubefake.NewSimpleClientset(b.KubeObjects...)
105-
b.CMClient = cmfake.NewSimpleClientset(b.CertManagerObjects...)
106-
b.VSClient = vsfake.NewSimpleClientset(b.VSObjects...)
110+
b.Client = kubefake.NewClientset(b.KubeObjects...)
111+
b.CMClient = cmfake.NewClientset(b.CertManagerObjects...)
112+
b.VSClient = vsfake.NewClientset()
107113
b.Recorder = new(FakeRecorder)
108114
b.FakeKubeClient().PrependReactor("create", "*", b.generateNameReactor)
109115
b.FakeCMClient().PrependReactor("create", "*", b.generateNameReactor)
110116
b.FakeVSClient().PrependReactor("create", "*", b.generateNameReactor)
117+
// Build a scheme/codecs for VS CRD and use a simple tracker to avoid typed SMD conversion
118+
scheme := runtime.NewScheme()
119+
utilruntime.Must(confv1.AddToScheme(scheme))
120+
codecs := serializer.NewCodecFactory(scheme)
121+
122+
st := coretesting.NewObjectTracker(scheme, codecs.UniversalDecoder())
123+
for _, obj := range b.VSObjects {
124+
_ = st.Add(obj)
125+
}
126+
127+
// Intercept VirtualServer CRUD via simple tracker
128+
b.FakeVSClient().PrependReactor("*", "virtualservers", coretesting.ObjectReaction(st))
129+
130+
// Intercept VirtualServer watch via simple tracker
131+
b.FakeVSClient().PrependWatchReactor("virtualservers", func(action coretesting.Action) (bool, watch.Interface, error) {
132+
var opts metav1.ListOptions
133+
if wa, ok := action.(coretesting.WatchActionImpl); ok {
134+
opts = wa.ListOptions
135+
}
136+
gvr := action.GetResource()
137+
ns := action.GetNamespace()
138+
w, err := st.Watch(gvr, ns, opts)
139+
if err != nil {
140+
return false, nil, err
141+
}
142+
return true, w, nil
143+
})
144+
145+
// Borrowed from cert-manager to disable WatchListClient feature gate
146+
// FIXME: It seems like we need to disable the WatchListClient feature gate until our gateway-api dependency is bumped to K8s 1.35
147+
clienttesting.SetFeatureDuringTest(b.T, clientfeatures.WatchListClient, false)
111148
b.KubeSharedInformerFactory = kubeinformers.NewSharedInformerFactory(b.Client, informerResyncPeriod)
112149
b.SharedInformerFactory = informers.NewSharedInformerFactory(b.CMClient, informerResyncPeriod)
113150
b.VsSharedInformerFactory = vsinformers.NewSharedInformerFactory(b.VSClient, informerResyncPeriod)

internal/k8s/controller_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -431,7 +431,7 @@ func TestFindProbeForPods(t *testing.T) {
431431

432432
func TestGetServicePortForIngressPort(t *testing.T) {
433433
t.Parallel()
434-
fakeClient := fake.NewSimpleClientset()
434+
fakeClient := fake.NewClientset()
435435

436436
cnf := configs.NewConfigurator(configs.ConfiguratorParams{
437437
NginxManager: &nginx.LocalManager{},
@@ -3476,7 +3476,7 @@ func TestNewTelemetryCollector(t *testing.T) {
34763476
{
34773477
testCase: "New Telemetry Collector with default values",
34783478
input: NewLoadBalancerControllerInput{
3479-
KubeClient: fake.NewSimpleClientset(),
3479+
KubeClient: fake.NewClientset(),
34803480
EnableTelemetryReporting: true,
34813481
LoggerContext: context.Background(),
34823482
},
@@ -3490,7 +3490,7 @@ func TestNewTelemetryCollector(t *testing.T) {
34903490
{
34913491
testCase: "New Telemetry Collector with Telemetry Reporting set to false",
34923492
input: NewLoadBalancerControllerInput{
3493-
KubeClient: fake.NewSimpleClientset(),
3493+
KubeClient: fake.NewClientset(),
34943494
EnableTelemetryReporting: false,
34953495
LoggerContext: context.Background(),
34963496
},
@@ -3548,7 +3548,7 @@ func TestCreateVirtualServerExWithZoneSync(t *testing.T) {
35483548
{
35493549
testCase: "VirtualServerEx without Zone sync",
35503550
input: NewLoadBalancerControllerInput{
3551-
KubeClient: fake.NewSimpleClientset(),
3551+
KubeClient: fake.NewClientset(),
35523552
EnableTelemetryReporting: false,
35533553
LoggerContext: context.Background(),
35543554
},
@@ -3564,7 +3564,7 @@ func TestCreateVirtualServerExWithZoneSync(t *testing.T) {
35643564
{
35653565
testCase: "VirtualServerEx with Zone sync",
35663566
input: NewLoadBalancerControllerInput{
3567-
KubeClient: fake.NewSimpleClientset(),
3567+
KubeClient: fake.NewClientset(),
35683568
EnableTelemetryReporting: false,
35693569
LoggerContext: context.Background(),
35703570
NginxConfigurator: &configs.Configurator{
@@ -3607,7 +3607,7 @@ func TestCreateIngressExWithZoneSync(t *testing.T) {
36073607
{
36083608
testCase: "IngressEx without Zone sync",
36093609
input: NewLoadBalancerControllerInput{
3610-
KubeClient: fake.NewSimpleClientset(),
3610+
KubeClient: fake.NewClientset(),
36113611
EnableTelemetryReporting: false,
36123612
LoggerContext: context.Background(),
36133613
},
@@ -3619,7 +3619,7 @@ func TestCreateIngressExWithZoneSync(t *testing.T) {
36193619
{
36203620
testCase: "IngressEx with Zone sync",
36213621
input: NewLoadBalancerControllerInput{
3622-
KubeClient: fake.NewSimpleClientset(),
3622+
KubeClient: fake.NewClientset(),
36233623
EnableTelemetryReporting: false,
36243624
LoggerContext: context.Background(),
36253625
},
@@ -3680,7 +3680,7 @@ func TestIsPodMarkedForDeletion(t *testing.T) {
36803680
for _, test := range tests {
36813681
test := test
36823682
t.Run(test.name, func(t *testing.T) {
3683-
client := fake.NewSimpleClientset()
3683+
client := fake.NewClientset()
36843684
if test.podExists {
36853685
pod := &api_v1.Pod{
36863686
ObjectMeta: meta_v1.ObjectMeta{

internal/k8s/status_test.go

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ func TestUpdateTransportServerStatus(t *testing.T) {
2828
ObjectMeta: meta_v1.ObjectMeta{
2929
Name: "ts-1",
3030
Namespace: "default",
31+
UID: "ts-uid-1",
3132
},
3233
Status: conf_v1.TransportServerStatus{
3334
State: "before status",
@@ -36,7 +37,7 @@ func TestUpdateTransportServerStatus(t *testing.T) {
3637
},
3738
}
3839

39-
fakeClient := fake_v1.NewSimpleClientset(
40+
fakeClient := fake_v1.NewClientset(
4041
&conf_v1.TransportServerList{
4142
Items: []conf_v1.TransportServer{
4243
*ts,
@@ -55,6 +56,7 @@ func TestUpdateTransportServerStatus(t *testing.T) {
5556
namespacedInformers: nsi,
5657
confClient: fakeClient,
5758
keyFunc: cache.DeletionHandlingMetaNamespaceKeyFunc,
59+
logger: slog.New(nic_glog.New(io.Discard, &nic_glog.Options{Level: levels.LevelInfo})),
5860
}
5961

6062
err = su.UpdateTransportServerStatus(ts, "after status", "after reason", "after message")
@@ -88,7 +90,7 @@ func TestUpdateTransportServerStatusIgnoreNoChange(t *testing.T) {
8890
},
8991
}
9092

91-
fakeClient := fake_v1.NewSimpleClientset(
93+
fakeClient := fake_v1.NewClientset(
9294
&conf_v1.TransportServerList{
9395
Items: []conf_v1.TransportServer{
9496
*ts,
@@ -154,7 +156,7 @@ func TestUpdateTransportServerStatusMissingTransportServer(t *testing.T) {
154156
},
155157
}
156158

157-
fakeClient := fake_v1.NewSimpleClientset(
159+
fakeClient := fake_v1.NewClientset(
158160
&conf_v1.TransportServerList{
159161
Items: []conf_v1.TransportServer{},
160162
})
@@ -218,7 +220,7 @@ func TestStatusUpdateWithExternalStatusAndExternalService(t *testing.T) {
218220
},
219221
},
220222
}
221-
fakeClient := fake.NewSimpleClientset(
223+
fakeClient := fake.NewClientset(
222224
&networking.IngressList{Items: []networking.Ingress{
223225
ing,
224226
}},
@@ -337,7 +339,7 @@ func TestStatusUpdateWithExternalStatusAndIngressLink(t *testing.T) {
337339
},
338340
},
339341
}
340-
fakeClient := fake.NewSimpleClientset(
342+
fakeClient := fake.NewClientset(
341343
&networking.IngressList{Items: []networking.Ingress{
342344
ing,
343345
}},

internal/license_reporting/license_reporting_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ func TestWriteLicenseInfo(t *testing.T) {
6868
}
6969

7070
func TestNewLicenseReporter(t *testing.T) {
71-
reporter := NewLicenseReporter(fake.NewSimpleClientset(), record.NewFakeRecorder(2048), &v1.Pod{})
71+
reporter := NewLicenseReporter(fake.NewClientset(), record.NewFakeRecorder(2048), &v1.Pod{})
7272
if reporter == nil {
7373
t.Fatal("NewLicenseReporter() returned nil")
7474
}

internal/metadata/metadata_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ func TestCollectAndWrite(t *testing.T) {
5656
t.Errorf("unable to set POD_NAME: %v", err)
5757
}
5858

59-
client := fake.NewSimpleClientset(
59+
client := fake.NewClientset(
6060
&api_v1.Namespace{
6161
ObjectMeta: metav1.ObjectMeta{
6262
Name: "kube-system",
@@ -82,7 +82,7 @@ func TestCollectAndWrite(t *testing.T) {
8282

8383
func TestNewMetadataReporter(t *testing.T) {
8484
reporter := NewMetadataReporter(
85-
fake.NewSimpleClientset(),
85+
fake.NewClientset(),
8686
&api_v1.Pod{},
8787
"5.0.0",
8888
)

internal/telemetry/collector_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2700,7 +2700,7 @@ func newSecretStore(t *testing.T) *secrets.LocalSecretStore {
27002700
// Platform string
27012701
// }
27022702
func newTestClientset(objects ...k8sruntime.Object) *testClient.Clientset {
2703-
client := testClient.NewSimpleClientset(objects...)
2703+
client := testClient.NewClientset(objects...)
27042704
client.Discovery().(*fakediscovery.FakeDiscovery).FakedServerVersion = &version.Info{
27052705
GitVersion: "v1.30.0",
27062706
}

pkg/client/applyconfiguration/configuration/v1/accesscontrol.go

Lines changed: 38 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)