@@ -22,6 +22,7 @@ import (
2222 "testing"
2323 "time"
2424
25+ cmapi "github.com/cert-manager/cert-manager/pkg/apis/certmanager/v1"
2526 cmclient "github.com/cert-manager/cert-manager/pkg/client/clientset/versioned"
2627 controllerpkg "github.com/cert-manager/cert-manager/pkg/controller"
2728 testpkg "github.com/nginx/kubernetes-ingress/internal/certmanager/test_files"
@@ -44,6 +45,16 @@ func Test_controller_Register(t *testing.T) {
4445 givenCall func (* testing.T , cmclient.Interface , k8s_nginx.Interface )
4546 expectRequeueKey string
4647 }{
48+ {
49+ name : "virtualserver is re-queued when an 'Added' event is received for this virtualserver" ,
50+ givenCall : func (t * testing.T , _ cmclient.Interface , c k8s_nginx.Interface ) {
51+ _ , err := c .K8sV1 ().VirtualServers ("namespace-1" ).Create (context .Background (), & vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
52+ Namespace : "namespace-1" , Name : "vs-1" , UID : "vs-uid-1" ,
53+ }}, metav1.CreateOptions {})
54+ require .NoError (t , err )
55+ },
56+ expectRequeueKey : "namespace-1/vs-1" ,
57+ },
4758 {
4859 name : "virtualserver is re-queued when an 'Updated' event is received for this virtualserver" ,
4960 existingVsObjects : []runtime.Object {& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
@@ -57,6 +68,63 @@ func Test_controller_Register(t *testing.T) {
5768 },
5869 expectRequeueKey : "namespace-1/vs-1" ,
5970 },
71+ {
72+ name : "virtualserver is re-queued when a 'Deleted' event is received for this ingress" ,
73+ existingVsObjects : []runtime.Object {& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
74+ Namespace : "namespace-1" , Name : "vs-1" ,
75+ }}},
76+ givenCall : func (t * testing.T , _ cmclient.Interface , c k8s_nginx.Interface ) {
77+ err := c .K8sV1 ().VirtualServers ("namespace-1" ).Delete (context .Background (), "vs-1" , metav1.DeleteOptions {})
78+ require .NoError (t , err )
79+ },
80+ expectRequeueKey : "namespace-1/vs-1" ,
81+ },
82+ {
83+ name : "virtualserver is re-queued when an 'Added' event is received for its child Certificate" ,
84+ givenCall : func (t * testing.T , c cmclient.Interface , _ k8s_nginx.Interface ) {
85+ _ , err := c .CertmanagerV1 ().Certificates ("namespace-1" ).Create (context .Background (), & cmapi.Certificate {ObjectMeta : metav1.ObjectMeta {
86+ Namespace : "namespace-1" , Name : "cert-1" ,
87+ OwnerReferences : []metav1.OwnerReference {* metav1 .NewControllerRef (& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
88+ Namespace : "namespace-1" , Name : "vs-2" ,
89+ }}, vsGVK )},
90+ }}, metav1.CreateOptions {})
91+ require .NoError (t , err )
92+ },
93+ expectRequeueKey : "namespace-1/vs-2" ,
94+ },
95+ {
96+ name : "virtualserver is re-queued when an 'Updated' event is received for its child Certificate" ,
97+ existingCMObjects : []runtime.Object {& cmapi.Certificate {ObjectMeta : metav1.ObjectMeta {
98+ Namespace : "namespace-1" , Name : "cert-1" ,
99+ OwnerReferences : []metav1.OwnerReference {* metav1 .NewControllerRef (& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
100+ Namespace : "namespace-1" , Name : "vs-2" ,
101+ }}, vsGVK )},
102+ }}},
103+ givenCall : func (t * testing.T , c cmclient.Interface , _ k8s_nginx.Interface ) {
104+ _ , err := c .CertmanagerV1 ().Certificates ("namespace-1" ).Update (context .Background (), & cmapi.Certificate {ObjectMeta : metav1.ObjectMeta {
105+ Namespace : "namespace-1" , Name : "cert-1" ,
106+ OwnerReferences : []metav1.OwnerReference {* metav1 .NewControllerRef (& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
107+ Namespace : "namespace-1" , Name : "vs-2" ,
108+ }}, vsGVK )},
109+ }}, metav1.UpdateOptions {})
110+ require .NoError (t , err )
111+ },
112+ expectRequeueKey : "namespace-1/vs-2" ,
113+ },
114+ {
115+ name : "virtualserver is re-queued when a 'Deleted' event is received for its child Certificate" ,
116+ existingCMObjects : []runtime.Object {& cmapi.Certificate {ObjectMeta : metav1.ObjectMeta {
117+ Namespace : "namespace-1" , Name : "cert-1" ,
118+ OwnerReferences : []metav1.OwnerReference {* metav1 .NewControllerRef (& vsapi.VirtualServer {ObjectMeta : metav1.ObjectMeta {
119+ Namespace : "namespace-1" , Name : "vs-2" ,
120+ }}, vsGVK )},
121+ }}},
122+ givenCall : func (t * testing.T , c cmclient.Interface , _ k8s_nginx.Interface ) {
123+ err := c .CertmanagerV1 ().Certificates ("namespace-1" ).Delete (context .Background (), "cert-1" , metav1.DeleteOptions {})
124+ require .NoError (t , err )
125+ },
126+ expectRequeueKey : "namespace-1/vs-2" ,
127+ },
60128 }
61129
62130 for _ , test := range tests {
0 commit comments