@@ -22,6 +22,8 @@ import (
2222
2323 . "github.com/onsi/gomega"
2424 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
25+ clusterctlv1 "sigs.k8s.io/cluster-api/cmd/clusterctl/api/v1alpha3"
26+ configclient "sigs.k8s.io/cluster-api/cmd/clusterctl/client/config"
2527 "sigs.k8s.io/controller-runtime/pkg/client/fake"
2628
2729 operatorv1 "sigs.k8s.io/cluster-api-operator/api/v1alpha2"
@@ -34,14 +36,12 @@ func TestManifestsDownloader(t *testing.T) {
3436
3537 fakeclient := fake .NewClientBuilder ().WithObjects ().Build ()
3638
37- namespace := "test-namespace"
38-
3939 p := & phaseReconciler {
4040 ctrlClient : fakeclient ,
4141 provider : & operatorv1.CoreProvider {
4242 ObjectMeta : metav1.ObjectMeta {
4343 Name : "cluster-api" ,
44- Namespace : namespace ,
44+ Namespace : "test- namespace" ,
4545 },
4646 Spec : operatorv1.CoreProviderSpec {
4747 ProviderSpec : operatorv1.ProviderSpec {
@@ -67,3 +67,52 @@ func TestManifestsDownloader(t *testing.T) {
6767
6868 g .Expect (exists ).To (BeTrue ())
6969}
70+
71+ func TestProviderDownloadWithOverrides (t * testing.T ) {
72+ g := NewWithT (t )
73+
74+ ctx := context .Background ()
75+
76+ fakeclient := fake .NewClientBuilder ().WithObjects ().Build ()
77+
78+ namespace := "test-namespace"
79+
80+ reader := configclient .NewMemoryReader ()
81+ _ , err := reader .AddProvider ("cluster-api" , clusterctlv1 .CoreProviderType , "https://github.com/kubernetes-sigs/cluster-api/releases/v1.4.3/core-components.yaml" )
82+ g .Expect (err ).ToNot (HaveOccurred ())
83+
84+ overridesClient , err := configclient .New (ctx , "" , configclient .InjectReader (reader ))
85+ g .Expect (err ).ToNot (HaveOccurred ())
86+
87+ overridesClient .Variables ().Set ("images" , `
88+ all:
89+ repository: "myorg.io/local-repo"
90+ ` )
91+
92+ p := & phaseReconciler {
93+ ctrlClient : fakeclient ,
94+ provider : & operatorv1.CoreProvider {
95+ ObjectMeta : metav1.ObjectMeta {
96+ Name : "cluster-api" ,
97+ Namespace : namespace ,
98+ },
99+ Spec : operatorv1.CoreProviderSpec {},
100+ },
101+ overridesClient : overridesClient ,
102+ }
103+
104+ _ , err = p .initializePhaseReconciler (ctx )
105+ g .Expect (err ).ToNot (HaveOccurred ())
106+
107+ _ , err = p .downloadManifests (ctx )
108+ g .Expect (err ).ToNot (HaveOccurred ())
109+
110+ _ , err = p .load (ctx )
111+ g .Expect (err ).ToNot (HaveOccurred ())
112+
113+ _ , err = p .fetch (ctx )
114+ g .Expect (err ).ToNot (HaveOccurred ())
115+
116+ g .Expect (p .components .Images ()).To (HaveExactElements ([]string {"myorg.io/local-repo/cluster-api-controller:v1.4.3" }))
117+ g .Expect (p .components .Version ()).To (Equal ("v1.4.3" ))
118+ }
0 commit comments