@@ -22,8 +22,6 @@ import (
22
22
"sync/atomic"
23
23
"time"
24
24
25
- "k8s.io/apimachinery/pkg/types"
26
-
27
25
. "github.com/onsi/ginkgo"
28
26
. "github.com/onsi/gomega"
29
27
appsv1 "k8s.io/api/apps/v1"
@@ -33,6 +31,7 @@ import (
33
31
"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
34
32
"k8s.io/apimachinery/pkg/runtime"
35
33
"k8s.io/apimachinery/pkg/runtime/schema"
34
+ "k8s.io/apimachinery/pkg/types"
36
35
kscheme "k8s.io/client-go/kubernetes/scheme"
37
36
38
37
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -3106,48 +3105,79 @@ var _ = Describe("DelegatingClient", func() {
3106
3105
Expect (1 ).To (Equal (cachedReader .Called ))
3107
3106
})
3108
3107
3109
- It ("should call client reader when unstructured object" , func () {
3110
- cachedReader := & fakeReader {}
3111
- cl , err := client .New (cfg , client.Options {})
3112
- Expect (err ).NotTo (HaveOccurred ())
3113
- dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3114
- CacheReader : cachedReader ,
3115
- Client : cl ,
3116
- })
3117
- Expect (err ).NotTo (HaveOccurred ())
3118
- dep := & appsv1.Deployment {
3119
- ObjectMeta : metav1.ObjectMeta {
3120
- Name : "deployment1" ,
3121
- Labels : map [string ]string {"app" : "frontend" },
3122
- },
3123
- Spec : appsv1.DeploymentSpec {
3124
- Selector : & metav1.LabelSelector {
3125
- MatchLabels : map [string ]string {"app" : "frontend" },
3108
+ When ("getting unstructured objects" , func () {
3109
+ var dep * appsv1.Deployment
3110
+
3111
+ BeforeEach (func () {
3112
+ dep = & appsv1.Deployment {
3113
+ ObjectMeta : metav1.ObjectMeta {
3114
+ Name : "deployment1" ,
3115
+ Labels : map [string ]string {"app" : "frontend" },
3126
3116
},
3127
- Template : corev1.PodTemplateSpec {
3128
- ObjectMeta : metav1.ObjectMeta {Labels : map [string ]string {"app" : "frontend" }},
3129
- Spec : corev1.PodSpec {Containers : []corev1.Container {{Name : "x" , Image : "x" }}},
3117
+ Spec : appsv1.DeploymentSpec {
3118
+ Selector : & metav1.LabelSelector {
3119
+ MatchLabels : map [string ]string {"app" : "frontend" },
3120
+ },
3121
+ Template : corev1.PodTemplateSpec {
3122
+ ObjectMeta : metav1.ObjectMeta {Labels : map [string ]string {"app" : "frontend" }},
3123
+ Spec : corev1.PodSpec {Containers : []corev1.Container {{Name : "x" , Image : "x" }}},
3124
+ },
3130
3125
},
3131
- },
3132
- }
3133
- dep , err = clientset .AppsV1 ().Deployments ("default" ).Create (context .Background (), dep , metav1.CreateOptions {})
3134
- Expect (err ).NotTo (HaveOccurred ())
3126
+ }
3127
+ var err error
3128
+ dep , err = clientset .AppsV1 ().Deployments ("default" ).Create (context .Background (), dep , metav1.CreateOptions {})
3129
+ Expect (err ).NotTo (HaveOccurred ())
3130
+ })
3131
+ AfterEach (func () {
3132
+ Expect (clientset .AppsV1 ().Deployments ("default" ).Delete (
3133
+ context .Background (),
3134
+ dep .Name ,
3135
+ metav1.DeleteOptions {},
3136
+ )).To (Succeed ())
3137
+ })
3138
+ It ("should call client reader when not cached" , func () {
3139
+ cachedReader := & fakeReader {}
3140
+ cl , err := client .New (cfg , client.Options {})
3141
+ Expect (err ).NotTo (HaveOccurred ())
3142
+ dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3143
+ CacheReader : cachedReader ,
3144
+ Client : cl ,
3145
+ })
3146
+ Expect (err ).NotTo (HaveOccurred ())
3147
+
3148
+ actual := & unstructured.Unstructured {}
3149
+ actual .SetGroupVersionKind (schema.GroupVersionKind {
3150
+ Group : "apps" ,
3151
+ Kind : "Deployment" ,
3152
+ Version : "v1" ,
3153
+ })
3154
+ actual .SetName (dep .Name )
3155
+ key := client.ObjectKey {Namespace : dep .Namespace , Name : dep .Name }
3156
+ Expect (dReader .Get (context .TODO (), key , actual )).To (Succeed ())
3157
+ Expect (0 ).To (Equal (cachedReader .Called ))
3158
+ })
3159
+ It ("should call cache reader when cached" , func () {
3160
+ cachedReader := & fakeReader {}
3161
+ cl , err := client .New (cfg , client.Options {})
3162
+ Expect (err ).NotTo (HaveOccurred ())
3163
+ dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3164
+ CacheReader : cachedReader ,
3165
+ Client : cl ,
3166
+ CacheUnstructured : true ,
3167
+ })
3168
+ Expect (err ).NotTo (HaveOccurred ())
3135
3169
3136
- actual := & unstructured.Unstructured {}
3137
- actual .SetGroupVersionKind (schema.GroupVersionKind {
3138
- Group : "apps" ,
3139
- Kind : "Deployment" ,
3140
- Version : "v1" ,
3141
- })
3142
- actual .SetName (dep .Name )
3143
- key := client.ObjectKey {Namespace : dep .Namespace , Name : dep .Name }
3144
- Expect (dReader .Get (context .TODO (), key , actual )).To (Succeed ())
3145
- Expect (0 ).To (Equal (cachedReader .Called ))
3146
- Expect (clientset .AppsV1 ().Deployments ("default" ).Delete (
3147
- context .Background (),
3148
- dep .Name ,
3149
- metav1.DeleteOptions {},
3150
- )).To (Succeed ())
3170
+ actual := & unstructured.Unstructured {}
3171
+ actual .SetGroupVersionKind (schema.GroupVersionKind {
3172
+ Group : "apps" ,
3173
+ Kind : "Deployment" ,
3174
+ Version : "v1" ,
3175
+ })
3176
+ actual .SetName (dep .Name )
3177
+ key := client.ObjectKey {Namespace : dep .Namespace , Name : dep .Name }
3178
+ Expect (dReader .Get (context .TODO (), key , actual )).To (Succeed ())
3179
+ Expect (1 ).To (Equal (cachedReader .Called ))
3180
+ })
3151
3181
})
3152
3182
})
3153
3183
Describe ("List" , func () {
@@ -3165,24 +3195,46 @@ var _ = Describe("DelegatingClient", func() {
3165
3195
Expect (1 ).To (Equal (cachedReader .Called ))
3166
3196
})
3167
3197
3168
- It ("should call client reader when unstructured object" , func () {
3169
- cachedReader := & fakeReader {}
3170
- cl , err := client .New (cfg , client.Options {})
3171
- Expect (err ).NotTo (HaveOccurred ())
3172
- dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3173
- CacheReader : cachedReader ,
3174
- Client : cl ,
3198
+ When ("listing unstructured objects" , func () {
3199
+ It ("should call client reader when not cached" , func () {
3200
+ cachedReader := & fakeReader {}
3201
+ cl , err := client .New (cfg , client.Options {})
3202
+ Expect (err ).NotTo (HaveOccurred ())
3203
+ dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3204
+ CacheReader : cachedReader ,
3205
+ Client : cl ,
3206
+ })
3207
+ Expect (err ).NotTo (HaveOccurred ())
3208
+
3209
+ actual := & unstructured.UnstructuredList {}
3210
+ actual .SetGroupVersionKind (schema.GroupVersionKind {
3211
+ Group : "apps" ,
3212
+ Kind : "DeploymentList" ,
3213
+ Version : "v1" ,
3214
+ })
3215
+ Expect (dReader .List (context .Background (), actual )).To (Succeed ())
3216
+ Expect (0 ).To (Equal (cachedReader .Called ))
3175
3217
})
3176
- Expect (err ).NotTo (HaveOccurred ())
3218
+ It ("should call cache reader when cached" , func () {
3219
+ cachedReader := & fakeReader {}
3220
+ cl , err := client .New (cfg , client.Options {})
3221
+ Expect (err ).NotTo (HaveOccurred ())
3222
+ dReader , err := client .NewDelegatingClient (client.NewDelegatingClientInput {
3223
+ CacheReader : cachedReader ,
3224
+ Client : cl ,
3225
+ CacheUnstructured : true ,
3226
+ })
3227
+ Expect (err ).NotTo (HaveOccurred ())
3177
3228
3178
- actual := & unstructured.UnstructuredList {}
3179
- actual .SetGroupVersionKind (schema.GroupVersionKind {
3180
- Group : "apps" ,
3181
- Kind : "DeploymentList" ,
3182
- Version : "v1" ,
3229
+ actual := & unstructured.UnstructuredList {}
3230
+ actual .SetGroupVersionKind (schema.GroupVersionKind {
3231
+ Group : "apps" ,
3232
+ Kind : "DeploymentList" ,
3233
+ Version : "v1" ,
3234
+ })
3235
+ Expect (dReader .List (context .Background (), actual )).To (Succeed ())
3236
+ Expect (1 ).To (Equal (cachedReader .Called ))
3183
3237
})
3184
- Expect (dReader .List (context .Background (), actual )).To (Succeed ())
3185
- Expect (0 ).To (Equal (cachedReader .Called ))
3186
3238
})
3187
3239
})
3188
3240
})
0 commit comments