@@ -28,6 +28,10 @@ const (
28
28
resyncPeriod = time .Hour
29
29
)
30
30
31
+ type registryCheckerConfig struct {
32
+ defaultRegistry string
33
+ }
34
+
31
35
type RegistryChecker struct {
32
36
imageStore * store.ImageStore
33
37
@@ -44,14 +48,18 @@ type RegistryChecker struct {
44
48
registryTransport * http.Transport
45
49
46
50
kubeClient * kubernetes.Clientset
51
+
52
+ config registryCheckerConfig
47
53
}
48
54
49
55
func NewRegistryChecker (
50
56
kubeClient * kubernetes.Clientset ,
51
57
skipVerify bool ,
52
58
ignoredImages []string ,
53
59
specificNamespace string ,
60
+ defaultRegistry string ,
54
61
) * RegistryChecker {
62
+
55
63
informerFactory := informers .NewSharedInformerFactory (kubeClient , time .Hour )
56
64
if specificNamespace != "" {
57
65
informerFactory = informers .NewSharedInformerFactoryWithOptions (kubeClient , time .Hour , informers .WithNamespace (specificNamespace ))
@@ -76,6 +84,10 @@ func NewRegistryChecker(
76
84
registryTransport : customTransport ,
77
85
78
86
kubeClient : kubeClient ,
87
+
88
+ config : registryCheckerConfig {
89
+ defaultRegistry : defaultRegistry ,
90
+ },
79
91
}
80
92
81
93
for _ , image := range ignoredImages {
@@ -239,15 +251,33 @@ func (rc *RegistryChecker) Check() {
239
251
processingGroup .Wait ()
240
252
}
241
253
242
- func (rc * RegistryChecker ) checkImageAvailability (log * logrus.Entry , imageName string , kc * keychain ) (availMode store.AvailabilityMode ) {
243
- ref , err := name .ParseReference (imageName )
254
+ func checkImageNameParseErr (log * logrus.Entry , err error ) store.AvailabilityMode {
244
255
var parseErr * name.ErrBadName
245
256
if errors .As (err , & parseErr ) {
246
257
log .WithField ("availability_mode" , store .BadImageName .String ()).Error (err )
247
258
return store .BadImageName
248
- } else if err != nil {
249
- log .WithField ("availability_mode" , store .UnknownError .String ()).Error (err )
250
- return store .UnknownError
259
+ }
260
+
261
+ log .WithField ("availability_mode" , store .UnknownError .String ()).Error (err )
262
+ return store .UnknownError
263
+ }
264
+
265
+ func (rc * RegistryChecker ) checkImageAvailability (log * logrus.Entry , imageName string , kc * keychain ) (availMode store.AvailabilityMode ) {
266
+ var (
267
+ ref name.Reference
268
+ err error
269
+ )
270
+
271
+ ref , err = name .ParseReference (imageName )
272
+ if err != nil {
273
+ return checkImageNameParseErr (log , err )
274
+ }
275
+
276
+ if ref .Context ().RegistryStr () == name .DefaultRegistry && rc .config .defaultRegistry != "" {
277
+ ref , err = name .ParseReference (path .Join (rc .config .defaultRegistry , imageName ))
278
+ if err != nil {
279
+ return checkImageNameParseErr (log , err )
280
+ }
251
281
}
252
282
253
283
var imgErr error
0 commit comments