@@ -786,7 +786,7 @@ func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, cus
786
786
// Use newly configured custom images.
787
787
images = overrideDefaults (addonDefaultImages , newImages )
788
788
// Store custom addon images to be written.
789
- cc .CustomAddonImages = mergeMaps (cc .CustomAddonImages , images )
789
+ cc .CustomAddonImages = mergeMaps (cc .CustomAddonImages , newImages )
790
790
}
791
791
792
792
// Use previously configured custom registries.
@@ -819,8 +819,8 @@ func SelectAndPersistImages(addon *Addon, cc *config.ClusterConfig) (images, cus
819
819
}
820
820
821
821
// GenerateTemplateData generates template data for template assets
822
- func GenerateTemplateData (addon * Addon , cfg config.KubernetesConfig , netInfo NetworkInfo , images , customRegistries map [string ]string , enable bool ) interface {} {
823
-
822
+ func GenerateTemplateData (addon * Addon , cc * config.ClusterConfig , netInfo NetworkInfo , images , customRegistries map [string ]string , enable bool ) interface {} {
823
+ cfg := cc . KubernetesConfig
824
824
a := runtime .GOARCH
825
825
// Some legacy docker images still need the -arch suffix
826
826
// for less common architectures blank suffix for amd64
@@ -902,6 +902,15 @@ func GenerateTemplateData(addon *Addon, cfg config.KubernetesConfig, netInfo Net
902
902
opts .Registries [name ] = "" // Avoid nil access when rendering
903
903
}
904
904
905
+ // tl;dr If the user specified a custom image remove the default registry
906
+ // Without the line below, if you try to overwrite an image the default registry is still used in the templating
907
+ // Example - image name: MetricsScraper, default registry: docker.io, default image: kubernetesui/metrics-scraper
908
+ // Passed on addon enable: --images=MetricsScraper=k8s.gcr.io/echoserver:1.4
909
+ // Without this line the resulting image would be docker.io/k8s.gcr.io/echoserver:1.4
910
+ if _ , ok := cc .CustomAddonImages [name ]; ok {
911
+ opts .Registries [name ] = ""
912
+ }
913
+
905
914
if enable {
906
915
if override , ok := opts .CustomRegistries [name ]; ok {
907
916
out .Infof ("Using image {{.registry}}{{.image}}" , out.V {
0 commit comments