Skip to content

Commit 0202a23

Browse files
committed
reduce to one credential provider implementation
1 parent 160a5c8 commit 0202a23

File tree

5 files changed

+15
-70
lines changed

5 files changed

+15
-70
lines changed

azure/scope/cluster.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ func NewClusterScope(ctx context.Context, params ClusterScopeParams) (*ClusterSc
7777
return nil, errors.New("failed to generate new scope from nil AzureCluster")
7878
}
7979

80-
credentialsProvider, err := NewAzureClusterCredentialsProvider(ctx, params.Client, params.AzureCluster)
80+
credentialsProvider, err := NewAzureCredentialsProvider(ctx, params.Client, params.AzureCluster.Spec.IdentityRef, params.AzureCluster.Namespace)
8181
if err != nil {
8282
return nil, errors.Wrap(err, "failed to init credentials provider")
8383
}

azure/scope/cluster_test.go

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3642,7 +3642,8 @@ func TestVNetPeerings(t *testing.T) {
36423642
AzureClusterClassSpec: infrav1.AzureClusterClassSpec{
36433643
SubscriptionID: tc.subscriptionID,
36443644
IdentityRef: &corev1.ObjectReference{
3645-
Kind: infrav1.AzureClusterIdentityKind,
3645+
Kind: infrav1.AzureClusterIdentityKind,
3646+
Namespace: clusterNamespace,
36463647
},
36473648
},
36483649
NetworkSpec: infrav1.NetworkSpec{

azure/scope/identity.go

Lines changed: 10 additions & 66 deletions
Original file line numberDiff line numberDiff line change
@@ -50,87 +50,31 @@ type AzureCredentialsProvider struct {
5050
Identity *infrav1.AzureClusterIdentity
5151
}
5252

53-
// AzureClusterCredentialsProvider wraps AzureCredentialsProvider with AzureCluster.
54-
type AzureClusterCredentialsProvider struct {
55-
AzureCredentialsProvider
56-
AzureCluster *infrav1.AzureCluster
57-
}
58-
59-
// ManagedControlPlaneCredentialsProvider wraps AzureCredentialsProvider with AzureManagedControlPlane.
60-
type ManagedControlPlaneCredentialsProvider struct {
61-
AzureCredentialsProvider
62-
AzureManagedControlPlane *infrav1.AzureManagedControlPlane
63-
}
64-
65-
var _ CredentialsProvider = (*AzureClusterCredentialsProvider)(nil)
66-
var _ CredentialsProvider = (*ManagedControlPlaneCredentialsProvider)(nil)
67-
68-
// NewAzureClusterCredentialsProvider creates a new AzureClusterCredentialsProvider from the supplied inputs.
69-
func NewAzureClusterCredentialsProvider(ctx context.Context, kubeClient client.Client, azureCluster *infrav1.AzureCluster) (*AzureClusterCredentialsProvider, error) {
70-
if azureCluster.Spec.IdentityRef == nil {
53+
// NewAzureCredentialsProvider creates a new AzureClusterCredentialsProvider from the supplied inputs.
54+
func NewAzureCredentialsProvider(ctx context.Context, kubeClient client.Client, identityRef *corev1.ObjectReference, defaultNamespace string) (*AzureCredentialsProvider, error) {
55+
if identityRef == nil {
7156
return nil, errors.New("failed to generate new AzureClusterCredentialsProvider from empty identityName")
7257
}
7358

74-
ref := azureCluster.Spec.IdentityRef
7559
// if the namespace isn't specified then assume it's in the same namespace as the AzureCluster
76-
namespace := ref.Namespace
60+
namespace := identityRef.Namespace
7761
if namespace == "" {
78-
namespace = azureCluster.Namespace
62+
namespace = defaultNamespace
7963
}
8064
identity := &infrav1.AzureClusterIdentity{}
81-
key := client.ObjectKey{Name: ref.Name, Namespace: namespace}
65+
key := client.ObjectKey{Name: identityRef.Name, Namespace: namespace}
8266
if err := kubeClient.Get(ctx, key, identity); err != nil {
8367
return nil, errors.Errorf("failed to retrieve AzureClusterIdentity external object %q/%q: %v", key.Namespace, key.Name, err)
8468
}
8569

86-
return &AzureClusterCredentialsProvider{
87-
AzureCredentialsProvider{
88-
Client: kubeClient,
89-
Identity: identity,
90-
},
91-
azureCluster,
70+
return &AzureCredentialsProvider{
71+
Client: kubeClient,
72+
Identity: identity,
9273
}, nil
9374
}
9475

9576
// GetTokenCredential returns an Azure TokenCredential based on the provided azure identity.
96-
func (p *AzureClusterCredentialsProvider) GetTokenCredential(ctx context.Context, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience string) (azcore.TokenCredential, error) {
97-
return p.AzureCredentialsProvider.GetTokenCredential(ctx, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience, p.AzureCluster.ObjectMeta)
98-
}
99-
100-
// NewManagedControlPlaneCredentialsProvider creates a new ManagedControlPlaneCredentialsProvider from the supplied inputs.
101-
func NewManagedControlPlaneCredentialsProvider(ctx context.Context, kubeClient client.Client, managedControlPlane *infrav1.AzureManagedControlPlane) (*ManagedControlPlaneCredentialsProvider, error) {
102-
if managedControlPlane.Spec.IdentityRef == nil {
103-
return nil, errors.New("failed to generate new ManagedControlPlaneCredentialsProvider from empty identityName")
104-
}
105-
106-
ref := managedControlPlane.Spec.IdentityRef
107-
// if the namespace isn't specified then assume it's in the same namespace as the AzureManagedControlPlane
108-
namespace := ref.Namespace
109-
if namespace == "" {
110-
namespace = managedControlPlane.Namespace
111-
}
112-
identity := &infrav1.AzureClusterIdentity{}
113-
key := client.ObjectKey{Name: ref.Name, Namespace: namespace}
114-
if err := kubeClient.Get(ctx, key, identity); err != nil {
115-
return nil, errors.Errorf("failed to retrieve AzureClusterIdentity external object %q/%q: %v", key.Namespace, key.Name, err)
116-
}
117-
118-
return &ManagedControlPlaneCredentialsProvider{
119-
AzureCredentialsProvider{
120-
Client: kubeClient,
121-
Identity: identity,
122-
},
123-
managedControlPlane,
124-
}, nil
125-
}
126-
127-
// GetTokenCredential returns an Azure TokenCredential based on the provided azure identity.
128-
func (p *ManagedControlPlaneCredentialsProvider) GetTokenCredential(ctx context.Context, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience string) (azcore.TokenCredential, error) {
129-
return p.AzureCredentialsProvider.GetTokenCredential(ctx, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience, p.AzureManagedControlPlane.ObjectMeta)
130-
}
131-
132-
// GetTokenCredential returns an Azure TokenCredential based on the provided azure identity.
133-
func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience string, clusterMeta metav1.ObjectMeta) (azcore.TokenCredential, error) {
77+
func (p *AzureCredentialsProvider) GetTokenCredential(ctx context.Context, resourceManagerEndpoint, activeDirectoryEndpoint, tokenAudience string) (azcore.TokenCredential, error) {
13478
ctx, log, done := tele.StartSpanWithLogger(ctx, "azure.scope.AzureCredentialsProvider.GetTokenCredential")
13579
defer done()
13680

azure/scope/identity_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ func TestGetTokenCredential(t *testing.T) {
351351
initObjects = append(initObjects, tt.secret)
352352
}
353353
fakeClient := fake.NewClientBuilder().WithScheme(scheme).WithRuntimeObjects(initObjects...).Build()
354-
provider, err := NewAzureClusterCredentialsProvider(context.Background(), fakeClient, tt.cluster)
354+
provider, err := NewAzureCredentialsProvider(context.Background(), fakeClient, tt.cluster.Spec.IdentityRef, "")
355355
g.Expect(err).NotTo(HaveOccurred())
356356
cred, err := provider.GetTokenCredential(context.Background(), "", tt.ActiveDirectoryAuthorityHost, "")
357357
g.Expect(err).NotTo(HaveOccurred())

azure/scope/managedcontrolplane.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ func NewManagedControlPlaneScope(ctx context.Context, params ManagedControlPlane
9090
return nil, errors.New("failed to generate new scope from nil ControlPlane")
9191
}
9292

93-
credentialsProvider, err := NewManagedControlPlaneCredentialsProvider(ctx, params.Client, params.ControlPlane)
93+
credentialsProvider, err := NewAzureCredentialsProvider(ctx, params.Client, params.ControlPlane.Spec.IdentityRef, params.ControlPlane.Namespace)
9494
if err != nil {
9595
return nil, errors.Wrap(err, "failed to init credentials provider")
9696
}

0 commit comments

Comments
 (0)