Skip to content

Commit ab953c1

Browse files
committed
Fix mishandling of azure:// prefix on AzureMachine UserAssignedIdentities
1 parent 6062df0 commit ab953c1

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
@@ -37,6 +37,7 @@ import (
3737
"sigs.k8s.io/cluster-api-provider-azure/azure/services/publicips"
3838
"sigs.k8s.io/cluster-api-provider-azure/azure/services/virtualmachines/mock_virtualmachines"
3939
gomockinternal "sigs.k8s.io/cluster-api-provider-azure/internal/test/matchers/gomock"
40+
azureutil "sigs.k8s.io/cluster-api-provider-azure/util/azure"
4041
"sigs.k8s.io/cluster-api-provider-azure/util/reconciler"
4142
)
4243

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

@@ -323,14 +330,14 @@ func TestCheckUserAssignedIdentities(t *testing.T) {
323330
},
324331
{
325332
name: "matching user assigned identities",
326-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
333+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentityWithPrefix},
327334
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
328335
},
329336
{
330337
name: "less user assigned identities than expected",
331-
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2},
338+
specIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity, fakeUserAssignedIdentity2WithPrefix},
332339
actualIdentities: []infrav1.UserAssignedIdentity{fakeUserAssignedIdentity},
333-
expectedKey: fakeUserAssignedIdentity2.ProviderID,
340+
expectedKey: fakeUserAssignedIdentity2WithPrefix.ProviderID,
334341
},
335342
{
336343
name: "more user assigned identities than expected",

0 commit comments

Comments
 (0)