Skip to content

Commit b5e554d

Browse files
committed
Fix mishandling of azure:// prefix on AzureMachine UserAssignedIdentities
1 parent 9b2fbc2 commit b5e554d

File tree

2 files changed

+13
-6
lines changed

2 files changed

+13
-6
lines changed

azure/services/virtualmachines/virtualmachines.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ func (s *Service) checkUserAssignedIdentities(specIdentities []infrav1.UserAssig
171171

172172
// Check if the expected identities are present in the vm.
173173
for _, expectedIdentity := range specIdentities {
174-
_, exists := actualMap[expectedIdentity.ProviderID]
174+
_, exists := actualMap[strings.TrimPrefix(expectedIdentity.ProviderID, azureutil.ProviderIDPrefix)]
175175
if !exists {
176176
s.Scope.SetConditionFalse(infrav1.VMIdentitiesReadyCondition, infrav1.UserAssignedIdentityMissingReason, clusterv1.ConditionSeverityWarning, vmMissingUAI+expectedIdentity.ProviderID)
177177
return

azure/services/virtualmachines/virtualmachines_test.go

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ import (
3838
"sigs.k8s.io/cluster-api-provider-azure/azure/services/publicips"
3939
"sigs.k8s.io/cluster-api-provider-azure/azure/services/virtualmachines/mock_virtualmachines"
4040
gomockinternal "sigs.k8s.io/cluster-api-provider-azure/internal/test/matchers/gomock"
41+
azureutil "sigs.k8s.io/cluster-api-provider-azure/util/azure"
4142
"sigs.k8s.io/cluster-api-provider-azure/util/reconciler"
4243
)
4344

@@ -113,10 +114,16 @@ var (
113114
},
114115
}
115116
fakeUserAssignedIdentity = infrav1.UserAssignedIdentity{
116-
ProviderID: "azure:///subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id",
117+
ProviderID: "/subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id",
118+
}
119+
fakeUserAssignedIdentityWithPrefix = infrav1.UserAssignedIdentity{
120+
ProviderID: azureutil.ProviderIDPrefix + fakeUserAssignedIdentity.ProviderID,
117121
}
118122
fakeUserAssignedIdentity2 = infrav1.UserAssignedIdentity{
119-
ProviderID: "azure:///subscriptions/123/resourceGroups/test-rg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/fake-provider-id-2",
123+
ProviderID: fakeUserAssignedIdentity.ProviderID + "-2",
124+
}
125+
fakeUserAssignedIdentity2WithPrefix = infrav1.UserAssignedIdentity{
126+
ProviderID: azureutil.ProviderIDPrefix + fakeUserAssignedIdentity2.ProviderID,
120127
}
121128
)
122129

@@ -324,14 +331,14 @@ func TestCheckUserAssignedIdentities(t *testing.T) {
324331
},
325332
{
326333
name: "matching user assigned identities",
327-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
334+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentityWithPrefix},
328335
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
329336
},
330337
{
331338
name: "less user assigned identities than expected",
332-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2},
339+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2WithPrefix},
333340
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
334-
expectedKey: fakeUserAssignedIdentity2.ProviderID,
341+
expectedKey: fakeUserAssignedIdentity2WithPrefix.ProviderID,
335342
},
336343
{
337344
name: "more user assigned identities than expected",

0 commit comments

Comments
 (0)