@@ -31,6 +31,7 @@ import (
31
31
32
32
stsv2 "github.com/aws/aws-sdk-go-v2/service/sts"
33
33
sts "github.com/aws/aws-sdk-go/service/sts"
34
+ "github.com/aws/aws-sdk-go/service/sts/stsiface"
34
35
"github.com/google/go-cmp/cmp"
35
36
idputils "github.com/openshift-online/ocm-common/pkg/idp/utils"
36
37
cmv1 "github.com/openshift-online/ocm-sdk-go/clustersmgmt/v1"
@@ -40,6 +41,7 @@ import (
40
41
corev1 "k8s.io/api/core/v1"
41
42
apierrors "k8s.io/apimachinery/pkg/api/errors"
42
43
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
44
+ "k8s.io/apimachinery/pkg/runtime"
43
45
"k8s.io/apimachinery/pkg/types"
44
46
kerrors "k8s.io/apimachinery/pkg/util/errors"
45
47
"k8s.io/apiserver/pkg/storage/names"
@@ -58,6 +60,7 @@ import (
58
60
rosacontrolplanev1 "sigs.k8s.io/cluster-api-provider-aws/v2/controlplane/rosa/api/v1beta2"
59
61
expinfrav1 "sigs.k8s.io/cluster-api-provider-aws/v2/exp/api/v1beta2"
60
62
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/annotations"
63
+ "sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud"
61
64
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/cloud/scope"
62
65
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/logger"
63
66
"sigs.k8s.io/cluster-api-provider-aws/v2/pkg/rosa"
@@ -89,6 +92,8 @@ type ROSAControlPlaneReconciler struct {
89
92
WatchFilterValue string
90
93
WaitInfraPeriod time.Duration
91
94
Endpoints []scope.ServiceEndpoint
95
+ NewStsClient func (cloud.ScopeUsage , cloud.Session , logger.Wrapper , runtime.Object ) stsiface.STSAPI
96
+ NewOCMClient func (ctx context.Context , rosaScope * scope.ROSAControlPlaneScope ) (rosa.OCMClient , error )
92
97
}
93
98
94
99
// SetupWithManager is used to setup the controller.
@@ -173,6 +178,7 @@ func (r *ROSAControlPlaneReconciler) Reconcile(ctx context.Context, req ctrl.Req
173
178
ControllerName : strings .ToLower (rosaControlPlaneKind ),
174
179
Endpoints : r .Endpoints ,
175
180
Logger : log ,
181
+ NewStsClient : r .NewStsClient ,
176
182
})
177
183
if err != nil {
178
184
return ctrl.Result {}, fmt .Errorf ("failed to create scope: %w" , err )
@@ -203,7 +209,7 @@ func (r *ROSAControlPlaneReconciler) reconcileNormal(ctx context.Context, rosaSc
203
209
}
204
210
}
205
211
206
- ocmClient , err := rosa .NewOCMClient (ctx , rosaScope )
212
+ ocmClient , err := r .NewOCMClient (ctx , rosaScope )
207
213
if err != nil {
208
214
// TODO: need to expose in status, as likely the credentials are invalid
209
215
return ctrl.Result {}, fmt .Errorf ("failed to create OCM client: %w" , err )
@@ -406,7 +412,7 @@ func (r *ROSAControlPlaneReconciler) deleteMachinePools(ctx context.Context, ros
406
412
return len (machinePools ) == 0 , nil
407
413
}
408
414
409
- func (r * ROSAControlPlaneReconciler ) reconcileClusterVersion (rosaScope * scope.ROSAControlPlaneScope , ocmClient * ocm. Client , cluster * cmv1.Cluster ) error {
415
+ func (r * ROSAControlPlaneReconciler ) reconcileClusterVersion (rosaScope * scope.ROSAControlPlaneScope , ocmClient rosa. OCMClient , cluster * cmv1.Cluster ) error {
410
416
version := rosaScope .ControlPlane .Spec .Version
411
417
if version == rosa .RawVersionID (cluster .Version ()) {
412
418
conditions .MarkFalse (rosaScope .ControlPlane , rosacontrolplanev1 .ROSAControlPlaneUpgradingCondition , "upgraded" , clusterv1 .ConditionSeverityInfo , "" )
@@ -461,7 +467,7 @@ func (r *ROSAControlPlaneReconciler) reconcileClusterVersion(rosaScope *scope.RO
461
467
return nil
462
468
}
463
469
464
- func (r * ROSAControlPlaneReconciler ) updateOCMCluster (rosaScope * scope.ROSAControlPlaneScope , ocmClient * ocm. Client , cluster * cmv1.Cluster , creator * rosaaws.Creator ) error {
470
+ func (r * ROSAControlPlaneReconciler ) updateOCMCluster (rosaScope * scope.ROSAControlPlaneScope , ocmClient rosa. OCMClient , cluster * cmv1.Cluster , creator * rosaaws.Creator ) error {
465
471
ocmClusterSpec , updated := r .updateOCMClusterSpec (rosaScope .ControlPlane , cluster )
466
472
467
473
if updated {
@@ -758,7 +764,7 @@ func (r *ROSAControlPlaneReconciler) reconcileExternalAuthBootstrapKubeconfig(ct
758
764
return nil
759
765
}
760
766
761
- func (r * ROSAControlPlaneReconciler ) reconcileKubeconfig (ctx context.Context , rosaScope * scope.ROSAControlPlaneScope , ocmClient * ocm. Client , cluster * cmv1.Cluster ) error {
767
+ func (r * ROSAControlPlaneReconciler ) reconcileKubeconfig (ctx context.Context , rosaScope * scope.ROSAControlPlaneScope , ocmClient rosa. OCMClient , cluster * cmv1.Cluster ) error {
762
768
rosaScope .Debug ("Reconciling ROSA kubeconfig for cluster" , "cluster-name" , rosaScope .RosaClusterName ())
763
769
764
770
clusterRef := client .ObjectKeyFromObject (rosaScope .Cluster )
@@ -870,7 +876,7 @@ func (r *ROSAControlPlaneReconciler) reconcileClusterAdminPassword(ctx context.C
870
876
return password , nil
871
877
}
872
878
873
- func validateControlPlaneSpec (ocmClient * ocm. Client , rosaScope * scope.ROSAControlPlaneScope ) (string , error ) {
879
+ func validateControlPlaneSpec (ocmClient rosa. OCMClient , rosaScope * scope.ROSAControlPlaneScope ) (string , error ) {
874
880
version := rosaScope .ControlPlane .Spec .Version
875
881
valid , err := ocmClient .ValidateHypershiftVersion (version , ocm .DefaultChannelGroup )
876
882
if err != nil {
0 commit comments