@@ -29,7 +29,9 @@ import (
29
29
"k8s.io/apimachinery/pkg/runtime/schema"
30
30
"k8s.io/apimachinery/pkg/util/sets"
31
31
"k8s.io/apimachinery/pkg/util/wait"
32
+ "k8s.io/client-go/kubernetes/scheme"
32
33
"k8s.io/client-go/rest"
34
+ "sigs.k8s.io/controller-runtime/pkg/client/apiutil"
33
35
"sigs.k8s.io/yaml"
34
36
35
37
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -175,17 +177,29 @@ func WaitForWebhooks(config *rest.Config,
175
177
waitingFor := map [schema.GroupVersionKind ]* sets.String {}
176
178
177
179
for _ , hook := range mutatingWebhooks {
178
- if _ , ok := waitingFor [hook .GroupVersionKind ()]; ! ok {
179
- waitingFor [hook .GroupVersionKind ()] = & sets.String {}
180
+ h := hook
181
+ gvk , err := apiutil .GVKForObject (& h , scheme .Scheme )
182
+ if err != nil {
183
+ return fmt .Errorf ("unable to get gvk for MutatingWebhookConfiguration %s: %v" , hook .GetName (), err )
184
+ }
185
+
186
+ if _ , ok := waitingFor [gvk ]; ! ok {
187
+ waitingFor [gvk ] = & sets.String {}
180
188
}
181
- waitingFor [hook . GroupVersionKind () ].Insert (hook .GetName ())
189
+ waitingFor [gvk ].Insert (h .GetName ())
182
190
}
183
191
184
192
for _ , hook := range validatingWebhooks {
185
- if _ , ok := waitingFor [hook .GroupVersionKind ()]; ! ok {
186
- waitingFor [hook .GroupVersionKind ()] = & sets.String {}
193
+ h := hook
194
+ gvk , err := apiutil .GVKForObject (& h , scheme .Scheme )
195
+ if err != nil {
196
+ return fmt .Errorf ("unable to get gvk for ValidatingWebhookConfiguration %s: %v" , hook .GetName (), err )
197
+ }
198
+
199
+ if _ , ok := waitingFor [gvk ]; ! ok {
200
+ waitingFor [gvk ] = & sets.String {}
187
201
}
188
- waitingFor [hook . GroupVersionKind () ].Insert (hook .GetName ())
202
+ waitingFor [gvk ].Insert (hook .GetName ())
189
203
}
190
204
191
205
// Poll until all resources are found in discovery
0 commit comments